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/v1"
16//   ...
17//   ctx := context.Background()
18//   computeService, err := compute.NewService(ctx)
19//
20// In this example, Google Application Default Credentials are used for authentication.
21//
22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
23//
24// Other authentication options
25//
26// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
27//
28//   computeService, err := compute.NewService(ctx, option.WithScopes(compute.DevstorageReadWriteScope))
29//
30// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
31//
32//   computeService, err := compute.NewService(ctx, option.WithAPIKey("AIza..."))
33//
34// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
35//
36//   config := &oauth2.Config{...}
37//   // ...
38//   token, err := config.Exchange(ctx, ...)
39//   computeService, err := compute.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
40//
41// See https://godoc.org/google.golang.org/api/option/ for details on options.
42package compute // import "google.golang.org/api/compute/v1"
43
44import (
45	"bytes"
46	"context"
47	"encoding/json"
48	"errors"
49	"fmt"
50	"io"
51	"net/http"
52	"net/url"
53	"strconv"
54	"strings"
55
56	gensupport "google.golang.org/api/gensupport"
57	googleapi "google.golang.org/api/googleapi"
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:v1"
77const apiName = "compute"
78const apiVersion = "v1"
79const basePath = "https://www.googleapis.com/compute/v1/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.Firewalls = NewFirewallsService(s)
146	s.ForwardingRules = NewForwardingRulesService(s)
147	s.GlobalAddresses = NewGlobalAddressesService(s)
148	s.GlobalForwardingRules = NewGlobalForwardingRulesService(s)
149	s.GlobalOperations = NewGlobalOperationsService(s)
150	s.HealthChecks = NewHealthChecksService(s)
151	s.HttpHealthChecks = NewHttpHealthChecksService(s)
152	s.HttpsHealthChecks = NewHttpsHealthChecksService(s)
153	s.Images = NewImagesService(s)
154	s.InstanceGroupManagers = NewInstanceGroupManagersService(s)
155	s.InstanceGroups = NewInstanceGroupsService(s)
156	s.InstanceTemplates = NewInstanceTemplatesService(s)
157	s.Instances = NewInstancesService(s)
158	s.InterconnectAttachments = NewInterconnectAttachmentsService(s)
159	s.InterconnectLocations = NewInterconnectLocationsService(s)
160	s.Interconnects = NewInterconnectsService(s)
161	s.LicenseCodes = NewLicenseCodesService(s)
162	s.Licenses = NewLicensesService(s)
163	s.MachineTypes = NewMachineTypesService(s)
164	s.NetworkEndpointGroups = NewNetworkEndpointGroupsService(s)
165	s.Networks = NewNetworksService(s)
166	s.NodeGroups = NewNodeGroupsService(s)
167	s.NodeTemplates = NewNodeTemplatesService(s)
168	s.NodeTypes = NewNodeTypesService(s)
169	s.Projects = NewProjectsService(s)
170	s.RegionAutoscalers = NewRegionAutoscalersService(s)
171	s.RegionBackendServices = NewRegionBackendServicesService(s)
172	s.RegionCommitments = NewRegionCommitmentsService(s)
173	s.RegionDiskTypes = NewRegionDiskTypesService(s)
174	s.RegionDisks = NewRegionDisksService(s)
175	s.RegionInstanceGroupManagers = NewRegionInstanceGroupManagersService(s)
176	s.RegionInstanceGroups = NewRegionInstanceGroupsService(s)
177	s.RegionOperations = NewRegionOperationsService(s)
178	s.Regions = NewRegionsService(s)
179	s.Routers = NewRoutersService(s)
180	s.Routes = NewRoutesService(s)
181	s.SecurityPolicies = NewSecurityPoliciesService(s)
182	s.Snapshots = NewSnapshotsService(s)
183	s.SslCertificates = NewSslCertificatesService(s)
184	s.SslPolicies = NewSslPoliciesService(s)
185	s.Subnetworks = NewSubnetworksService(s)
186	s.TargetHttpProxies = NewTargetHttpProxiesService(s)
187	s.TargetHttpsProxies = NewTargetHttpsProxiesService(s)
188	s.TargetInstances = NewTargetInstancesService(s)
189	s.TargetPools = NewTargetPoolsService(s)
190	s.TargetSslProxies = NewTargetSslProxiesService(s)
191	s.TargetTcpProxies = NewTargetTcpProxiesService(s)
192	s.TargetVpnGateways = NewTargetVpnGatewaysService(s)
193	s.UrlMaps = NewUrlMapsService(s)
194	s.VpnTunnels = NewVpnTunnelsService(s)
195	s.ZoneOperations = NewZoneOperationsService(s)
196	s.Zones = NewZonesService(s)
197	return s, nil
198}
199
200type Service struct {
201	client    *http.Client
202	BasePath  string // API endpoint base URL
203	UserAgent string // optional additional User-Agent fragment
204
205	AcceleratorTypes *AcceleratorTypesService
206
207	Addresses *AddressesService
208
209	Autoscalers *AutoscalersService
210
211	BackendBuckets *BackendBucketsService
212
213	BackendServices *BackendServicesService
214
215	DiskTypes *DiskTypesService
216
217	Disks *DisksService
218
219	Firewalls *FirewallsService
220
221	ForwardingRules *ForwardingRulesService
222
223	GlobalAddresses *GlobalAddressesService
224
225	GlobalForwardingRules *GlobalForwardingRulesService
226
227	GlobalOperations *GlobalOperationsService
228
229	HealthChecks *HealthChecksService
230
231	HttpHealthChecks *HttpHealthChecksService
232
233	HttpsHealthChecks *HttpsHealthChecksService
234
235	Images *ImagesService
236
237	InstanceGroupManagers *InstanceGroupManagersService
238
239	InstanceGroups *InstanceGroupsService
240
241	InstanceTemplates *InstanceTemplatesService
242
243	Instances *InstancesService
244
245	InterconnectAttachments *InterconnectAttachmentsService
246
247	InterconnectLocations *InterconnectLocationsService
248
249	Interconnects *InterconnectsService
250
251	LicenseCodes *LicenseCodesService
252
253	Licenses *LicensesService
254
255	MachineTypes *MachineTypesService
256
257	NetworkEndpointGroups *NetworkEndpointGroupsService
258
259	Networks *NetworksService
260
261	NodeGroups *NodeGroupsService
262
263	NodeTemplates *NodeTemplatesService
264
265	NodeTypes *NodeTypesService
266
267	Projects *ProjectsService
268
269	RegionAutoscalers *RegionAutoscalersService
270
271	RegionBackendServices *RegionBackendServicesService
272
273	RegionCommitments *RegionCommitmentsService
274
275	RegionDiskTypes *RegionDiskTypesService
276
277	RegionDisks *RegionDisksService
278
279	RegionInstanceGroupManagers *RegionInstanceGroupManagersService
280
281	RegionInstanceGroups *RegionInstanceGroupsService
282
283	RegionOperations *RegionOperationsService
284
285	Regions *RegionsService
286
287	Routers *RoutersService
288
289	Routes *RoutesService
290
291	SecurityPolicies *SecurityPoliciesService
292
293	Snapshots *SnapshotsService
294
295	SslCertificates *SslCertificatesService
296
297	SslPolicies *SslPoliciesService
298
299	Subnetworks *SubnetworksService
300
301	TargetHttpProxies *TargetHttpProxiesService
302
303	TargetHttpsProxies *TargetHttpsProxiesService
304
305	TargetInstances *TargetInstancesService
306
307	TargetPools *TargetPoolsService
308
309	TargetSslProxies *TargetSslProxiesService
310
311	TargetTcpProxies *TargetTcpProxiesService
312
313	TargetVpnGateways *TargetVpnGatewaysService
314
315	UrlMaps *UrlMapsService
316
317	VpnTunnels *VpnTunnelsService
318
319	ZoneOperations *ZoneOperationsService
320
321	Zones *ZonesService
322}
323
324func (s *Service) userAgent() string {
325	if s.UserAgent == "" {
326		return googleapi.UserAgent
327	}
328	return googleapi.UserAgent + " " + s.UserAgent
329}
330
331func NewAcceleratorTypesService(s *Service) *AcceleratorTypesService {
332	rs := &AcceleratorTypesService{s: s}
333	return rs
334}
335
336type AcceleratorTypesService struct {
337	s *Service
338}
339
340func NewAddressesService(s *Service) *AddressesService {
341	rs := &AddressesService{s: s}
342	return rs
343}
344
345type AddressesService struct {
346	s *Service
347}
348
349func NewAutoscalersService(s *Service) *AutoscalersService {
350	rs := &AutoscalersService{s: s}
351	return rs
352}
353
354type AutoscalersService struct {
355	s *Service
356}
357
358func NewBackendBucketsService(s *Service) *BackendBucketsService {
359	rs := &BackendBucketsService{s: s}
360	return rs
361}
362
363type BackendBucketsService struct {
364	s *Service
365}
366
367func NewBackendServicesService(s *Service) *BackendServicesService {
368	rs := &BackendServicesService{s: s}
369	return rs
370}
371
372type BackendServicesService struct {
373	s *Service
374}
375
376func NewDiskTypesService(s *Service) *DiskTypesService {
377	rs := &DiskTypesService{s: s}
378	return rs
379}
380
381type DiskTypesService struct {
382	s *Service
383}
384
385func NewDisksService(s *Service) *DisksService {
386	rs := &DisksService{s: s}
387	return rs
388}
389
390type DisksService struct {
391	s *Service
392}
393
394func NewFirewallsService(s *Service) *FirewallsService {
395	rs := &FirewallsService{s: s}
396	return rs
397}
398
399type FirewallsService struct {
400	s *Service
401}
402
403func NewForwardingRulesService(s *Service) *ForwardingRulesService {
404	rs := &ForwardingRulesService{s: s}
405	return rs
406}
407
408type ForwardingRulesService struct {
409	s *Service
410}
411
412func NewGlobalAddressesService(s *Service) *GlobalAddressesService {
413	rs := &GlobalAddressesService{s: s}
414	return rs
415}
416
417type GlobalAddressesService struct {
418	s *Service
419}
420
421func NewGlobalForwardingRulesService(s *Service) *GlobalForwardingRulesService {
422	rs := &GlobalForwardingRulesService{s: s}
423	return rs
424}
425
426type GlobalForwardingRulesService struct {
427	s *Service
428}
429
430func NewGlobalOperationsService(s *Service) *GlobalOperationsService {
431	rs := &GlobalOperationsService{s: s}
432	return rs
433}
434
435type GlobalOperationsService struct {
436	s *Service
437}
438
439func NewHealthChecksService(s *Service) *HealthChecksService {
440	rs := &HealthChecksService{s: s}
441	return rs
442}
443
444type HealthChecksService struct {
445	s *Service
446}
447
448func NewHttpHealthChecksService(s *Service) *HttpHealthChecksService {
449	rs := &HttpHealthChecksService{s: s}
450	return rs
451}
452
453type HttpHealthChecksService struct {
454	s *Service
455}
456
457func NewHttpsHealthChecksService(s *Service) *HttpsHealthChecksService {
458	rs := &HttpsHealthChecksService{s: s}
459	return rs
460}
461
462type HttpsHealthChecksService struct {
463	s *Service
464}
465
466func NewImagesService(s *Service) *ImagesService {
467	rs := &ImagesService{s: s}
468	return rs
469}
470
471type ImagesService struct {
472	s *Service
473}
474
475func NewInstanceGroupManagersService(s *Service) *InstanceGroupManagersService {
476	rs := &InstanceGroupManagersService{s: s}
477	return rs
478}
479
480type InstanceGroupManagersService struct {
481	s *Service
482}
483
484func NewInstanceGroupsService(s *Service) *InstanceGroupsService {
485	rs := &InstanceGroupsService{s: s}
486	return rs
487}
488
489type InstanceGroupsService struct {
490	s *Service
491}
492
493func NewInstanceTemplatesService(s *Service) *InstanceTemplatesService {
494	rs := &InstanceTemplatesService{s: s}
495	return rs
496}
497
498type InstanceTemplatesService struct {
499	s *Service
500}
501
502func NewInstancesService(s *Service) *InstancesService {
503	rs := &InstancesService{s: s}
504	return rs
505}
506
507type InstancesService struct {
508	s *Service
509}
510
511func NewInterconnectAttachmentsService(s *Service) *InterconnectAttachmentsService {
512	rs := &InterconnectAttachmentsService{s: s}
513	return rs
514}
515
516type InterconnectAttachmentsService struct {
517	s *Service
518}
519
520func NewInterconnectLocationsService(s *Service) *InterconnectLocationsService {
521	rs := &InterconnectLocationsService{s: s}
522	return rs
523}
524
525type InterconnectLocationsService struct {
526	s *Service
527}
528
529func NewInterconnectsService(s *Service) *InterconnectsService {
530	rs := &InterconnectsService{s: s}
531	return rs
532}
533
534type InterconnectsService struct {
535	s *Service
536}
537
538func NewLicenseCodesService(s *Service) *LicenseCodesService {
539	rs := &LicenseCodesService{s: s}
540	return rs
541}
542
543type LicenseCodesService struct {
544	s *Service
545}
546
547func NewLicensesService(s *Service) *LicensesService {
548	rs := &LicensesService{s: s}
549	return rs
550}
551
552type LicensesService struct {
553	s *Service
554}
555
556func NewMachineTypesService(s *Service) *MachineTypesService {
557	rs := &MachineTypesService{s: s}
558	return rs
559}
560
561type MachineTypesService struct {
562	s *Service
563}
564
565func NewNetworkEndpointGroupsService(s *Service) *NetworkEndpointGroupsService {
566	rs := &NetworkEndpointGroupsService{s: s}
567	return rs
568}
569
570type NetworkEndpointGroupsService struct {
571	s *Service
572}
573
574func NewNetworksService(s *Service) *NetworksService {
575	rs := &NetworksService{s: s}
576	return rs
577}
578
579type NetworksService struct {
580	s *Service
581}
582
583func NewNodeGroupsService(s *Service) *NodeGroupsService {
584	rs := &NodeGroupsService{s: s}
585	return rs
586}
587
588type NodeGroupsService struct {
589	s *Service
590}
591
592func NewNodeTemplatesService(s *Service) *NodeTemplatesService {
593	rs := &NodeTemplatesService{s: s}
594	return rs
595}
596
597type NodeTemplatesService struct {
598	s *Service
599}
600
601func NewNodeTypesService(s *Service) *NodeTypesService {
602	rs := &NodeTypesService{s: s}
603	return rs
604}
605
606type NodeTypesService struct {
607	s *Service
608}
609
610func NewProjectsService(s *Service) *ProjectsService {
611	rs := &ProjectsService{s: s}
612	return rs
613}
614
615type ProjectsService struct {
616	s *Service
617}
618
619func NewRegionAutoscalersService(s *Service) *RegionAutoscalersService {
620	rs := &RegionAutoscalersService{s: s}
621	return rs
622}
623
624type RegionAutoscalersService struct {
625	s *Service
626}
627
628func NewRegionBackendServicesService(s *Service) *RegionBackendServicesService {
629	rs := &RegionBackendServicesService{s: s}
630	return rs
631}
632
633type RegionBackendServicesService struct {
634	s *Service
635}
636
637func NewRegionCommitmentsService(s *Service) *RegionCommitmentsService {
638	rs := &RegionCommitmentsService{s: s}
639	return rs
640}
641
642type RegionCommitmentsService struct {
643	s *Service
644}
645
646func NewRegionDiskTypesService(s *Service) *RegionDiskTypesService {
647	rs := &RegionDiskTypesService{s: s}
648	return rs
649}
650
651type RegionDiskTypesService struct {
652	s *Service
653}
654
655func NewRegionDisksService(s *Service) *RegionDisksService {
656	rs := &RegionDisksService{s: s}
657	return rs
658}
659
660type RegionDisksService struct {
661	s *Service
662}
663
664func NewRegionInstanceGroupManagersService(s *Service) *RegionInstanceGroupManagersService {
665	rs := &RegionInstanceGroupManagersService{s: s}
666	return rs
667}
668
669type RegionInstanceGroupManagersService struct {
670	s *Service
671}
672
673func NewRegionInstanceGroupsService(s *Service) *RegionInstanceGroupsService {
674	rs := &RegionInstanceGroupsService{s: s}
675	return rs
676}
677
678type RegionInstanceGroupsService struct {
679	s *Service
680}
681
682func NewRegionOperationsService(s *Service) *RegionOperationsService {
683	rs := &RegionOperationsService{s: s}
684	return rs
685}
686
687type RegionOperationsService struct {
688	s *Service
689}
690
691func NewRegionsService(s *Service) *RegionsService {
692	rs := &RegionsService{s: s}
693	return rs
694}
695
696type RegionsService struct {
697	s *Service
698}
699
700func NewRoutersService(s *Service) *RoutersService {
701	rs := &RoutersService{s: s}
702	return rs
703}
704
705type RoutersService struct {
706	s *Service
707}
708
709func NewRoutesService(s *Service) *RoutesService {
710	rs := &RoutesService{s: s}
711	return rs
712}
713
714type RoutesService struct {
715	s *Service
716}
717
718func NewSecurityPoliciesService(s *Service) *SecurityPoliciesService {
719	rs := &SecurityPoliciesService{s: s}
720	return rs
721}
722
723type SecurityPoliciesService struct {
724	s *Service
725}
726
727func NewSnapshotsService(s *Service) *SnapshotsService {
728	rs := &SnapshotsService{s: s}
729	return rs
730}
731
732type SnapshotsService struct {
733	s *Service
734}
735
736func NewSslCertificatesService(s *Service) *SslCertificatesService {
737	rs := &SslCertificatesService{s: s}
738	return rs
739}
740
741type SslCertificatesService struct {
742	s *Service
743}
744
745func NewSslPoliciesService(s *Service) *SslPoliciesService {
746	rs := &SslPoliciesService{s: s}
747	return rs
748}
749
750type SslPoliciesService struct {
751	s *Service
752}
753
754func NewSubnetworksService(s *Service) *SubnetworksService {
755	rs := &SubnetworksService{s: s}
756	return rs
757}
758
759type SubnetworksService struct {
760	s *Service
761}
762
763func NewTargetHttpProxiesService(s *Service) *TargetHttpProxiesService {
764	rs := &TargetHttpProxiesService{s: s}
765	return rs
766}
767
768type TargetHttpProxiesService struct {
769	s *Service
770}
771
772func NewTargetHttpsProxiesService(s *Service) *TargetHttpsProxiesService {
773	rs := &TargetHttpsProxiesService{s: s}
774	return rs
775}
776
777type TargetHttpsProxiesService struct {
778	s *Service
779}
780
781func NewTargetInstancesService(s *Service) *TargetInstancesService {
782	rs := &TargetInstancesService{s: s}
783	return rs
784}
785
786type TargetInstancesService struct {
787	s *Service
788}
789
790func NewTargetPoolsService(s *Service) *TargetPoolsService {
791	rs := &TargetPoolsService{s: s}
792	return rs
793}
794
795type TargetPoolsService struct {
796	s *Service
797}
798
799func NewTargetSslProxiesService(s *Service) *TargetSslProxiesService {
800	rs := &TargetSslProxiesService{s: s}
801	return rs
802}
803
804type TargetSslProxiesService struct {
805	s *Service
806}
807
808func NewTargetTcpProxiesService(s *Service) *TargetTcpProxiesService {
809	rs := &TargetTcpProxiesService{s: s}
810	return rs
811}
812
813type TargetTcpProxiesService struct {
814	s *Service
815}
816
817func NewTargetVpnGatewaysService(s *Service) *TargetVpnGatewaysService {
818	rs := &TargetVpnGatewaysService{s: s}
819	return rs
820}
821
822type TargetVpnGatewaysService struct {
823	s *Service
824}
825
826func NewUrlMapsService(s *Service) *UrlMapsService {
827	rs := &UrlMapsService{s: s}
828	return rs
829}
830
831type UrlMapsService struct {
832	s *Service
833}
834
835func NewVpnTunnelsService(s *Service) *VpnTunnelsService {
836	rs := &VpnTunnelsService{s: s}
837	return rs
838}
839
840type VpnTunnelsService struct {
841	s *Service
842}
843
844func NewZoneOperationsService(s *Service) *ZoneOperationsService {
845	rs := &ZoneOperationsService{s: s}
846	return rs
847}
848
849type ZoneOperationsService struct {
850	s *Service
851}
852
853func NewZonesService(s *Service) *ZonesService {
854	rs := &ZonesService{s: s}
855	return rs
856}
857
858type ZonesService struct {
859	s *Service
860}
861
862// AcceleratorConfig: A specification of the type and number of
863// accelerator cards attached to the instance.
864type AcceleratorConfig struct {
865	// AcceleratorCount: The number of the guest accelerator cards exposed
866	// to this instance.
867	AcceleratorCount int64 `json:"acceleratorCount,omitempty"`
868
869	// AcceleratorType: Full or partial URL of the accelerator type resource
870	// to attach to this instance. For example:
871	// projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-
872	// p100 If you are creating an instance template, specify only the
873	// accelerator name. See GPUs on Compute Engine for a full list of
874	// accelerator types.
875	AcceleratorType string `json:"acceleratorType,omitempty"`
876
877	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
878	// unconditionally include in API requests. By default, fields with
879	// empty values are omitted from API requests. However, any non-pointer,
880	// non-interface field appearing in ForceSendFields will be sent to the
881	// server regardless of whether the field is empty or not. This may be
882	// used to include empty fields in Patch requests.
883	ForceSendFields []string `json:"-"`
884
885	// NullFields is a list of field names (e.g. "AcceleratorCount") to
886	// include in API requests with the JSON null value. By default, fields
887	// with empty values are omitted from API requests. However, any field
888	// with an empty value appearing in NullFields will be sent to the
889	// server as null. It is an error if a field in this list has a
890	// non-empty value. This may be used to include null fields in Patch
891	// requests.
892	NullFields []string `json:"-"`
893}
894
895func (s *AcceleratorConfig) MarshalJSON() ([]byte, error) {
896	type NoMethod AcceleratorConfig
897	raw := NoMethod(*s)
898	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
899}
900
901// AcceleratorType: An Accelerator Type resource. (== resource_for
902// beta.acceleratorTypes ==) (== resource_for v1.acceleratorTypes ==)
903type AcceleratorType struct {
904	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
905	// format.
906	CreationTimestamp string `json:"creationTimestamp,omitempty"`
907
908	// Deprecated: [Output Only] The deprecation status associated with this
909	// accelerator type.
910	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
911
912	// Description: [Output Only] An optional textual description of the
913	// resource.
914	Description string `json:"description,omitempty"`
915
916	// Id: [Output Only] The unique identifier for the resource. This
917	// identifier is defined by the server.
918	Id uint64 `json:"id,omitempty,string"`
919
920	// Kind: [Output Only] The type of the resource. Always
921	// compute#acceleratorType for accelerator types.
922	Kind string `json:"kind,omitempty"`
923
924	// MaximumCardsPerInstance: [Output Only] Maximum accelerator cards
925	// allowed per instance.
926	MaximumCardsPerInstance int64 `json:"maximumCardsPerInstance,omitempty"`
927
928	// Name: [Output Only] Name of the resource.
929	Name string `json:"name,omitempty"`
930
931	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
932	// resource.
933	SelfLink string `json:"selfLink,omitempty"`
934
935	// Zone: [Output Only] The name of the zone where the accelerator type
936	// resides, such as us-central1-a. You must specify this field as part
937	// of the HTTP request URL. It is not settable as a field in the request
938	// body.
939	Zone string `json:"zone,omitempty"`
940
941	// ServerResponse contains the HTTP response code and headers from the
942	// server.
943	googleapi.ServerResponse `json:"-"`
944
945	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
946	// to unconditionally include in API requests. By default, fields with
947	// empty values are omitted from API requests. However, any non-pointer,
948	// non-interface field appearing in ForceSendFields will be sent to the
949	// server regardless of whether the field is empty or not. This may be
950	// used to include empty fields in Patch requests.
951	ForceSendFields []string `json:"-"`
952
953	// NullFields is a list of field names (e.g. "CreationTimestamp") to
954	// include in API requests with the JSON null value. By default, fields
955	// with empty values are omitted from API requests. However, any field
956	// with an empty value appearing in NullFields will be sent to the
957	// server as null. It is an error if a field in this list has a
958	// non-empty value. This may be used to include null fields in Patch
959	// requests.
960	NullFields []string `json:"-"`
961}
962
963func (s *AcceleratorType) MarshalJSON() ([]byte, error) {
964	type NoMethod AcceleratorType
965	raw := NoMethod(*s)
966	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
967}
968
969type AcceleratorTypeAggregatedList struct {
970	// Id: [Output Only] Unique identifier for the resource; defined by the
971	// server.
972	Id string `json:"id,omitempty"`
973
974	// Items: A list of AcceleratorTypesScopedList resources.
975	Items map[string]AcceleratorTypesScopedList `json:"items,omitempty"`
976
977	// Kind: [Output Only] Type of resource. Always
978	// compute#acceleratorTypeAggregatedList for aggregated lists of
979	// accelerator types.
980	Kind string `json:"kind,omitempty"`
981
982	// NextPageToken: [Output Only] This token allows you to get the next
983	// page of results for list requests. If the number of results is larger
984	// than maxResults, use the nextPageToken as a value for the query
985	// parameter pageToken in the next list request. Subsequent list
986	// requests will have their own nextPageToken to continue paging through
987	// the results.
988	NextPageToken string `json:"nextPageToken,omitempty"`
989
990	// SelfLink: [Output Only] Server-defined URL for this resource.
991	SelfLink string `json:"selfLink,omitempty"`
992
993	// Warning: [Output Only] Informational warning message.
994	Warning *AcceleratorTypeAggregatedListWarning `json:"warning,omitempty"`
995
996	// ServerResponse contains the HTTP response code and headers from the
997	// server.
998	googleapi.ServerResponse `json:"-"`
999
1000	// ForceSendFields is a list of field names (e.g. "Id") to
1001	// unconditionally include in API requests. By default, fields with
1002	// empty values are omitted from API requests. However, any non-pointer,
1003	// non-interface field appearing in ForceSendFields will be sent to the
1004	// server regardless of whether the field is empty or not. This may be
1005	// used to include empty fields in Patch requests.
1006	ForceSendFields []string `json:"-"`
1007
1008	// NullFields is a list of field names (e.g. "Id") to include in API
1009	// requests with the JSON null value. By default, fields with empty
1010	// values are omitted from API requests. However, any field with an
1011	// empty value appearing in NullFields will be sent to the server as
1012	// null. It is an error if a field in this list has a non-empty value.
1013	// This may be used to include null fields in Patch requests.
1014	NullFields []string `json:"-"`
1015}
1016
1017func (s *AcceleratorTypeAggregatedList) MarshalJSON() ([]byte, error) {
1018	type NoMethod AcceleratorTypeAggregatedList
1019	raw := NoMethod(*s)
1020	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1021}
1022
1023// AcceleratorTypeAggregatedListWarning: [Output Only] Informational
1024// warning message.
1025type AcceleratorTypeAggregatedListWarning struct {
1026	// Code: [Output Only] A warning code, if applicable. For example,
1027	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1028	// the response.
1029	//
1030	// Possible values:
1031	//   "CLEANUP_FAILED"
1032	//   "DEPRECATED_RESOURCE_USED"
1033	//   "DEPRECATED_TYPE_USED"
1034	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1035	//   "EXPERIMENTAL_TYPE_USED"
1036	//   "EXTERNAL_API_WARNING"
1037	//   "FIELD_VALUE_OVERRIDEN"
1038	//   "INJECTED_KERNELS_DEPRECATED"
1039	//   "MISSING_TYPE_DEPENDENCY"
1040	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1041	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1042	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1043	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1044	//   "NEXT_HOP_NOT_RUNNING"
1045	//   "NOT_CRITICAL_ERROR"
1046	//   "NO_RESULTS_ON_PAGE"
1047	//   "REQUIRED_TOS_AGREEMENT"
1048	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1049	//   "RESOURCE_NOT_DELETED"
1050	//   "SCHEMA_VALIDATION_IGNORED"
1051	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1052	//   "UNDECLARED_PROPERTIES"
1053	//   "UNREACHABLE"
1054	Code string `json:"code,omitempty"`
1055
1056	// Data: [Output Only] Metadata about this warning in key: value format.
1057	// For example:
1058	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1059	Data []*AcceleratorTypeAggregatedListWarningData `json:"data,omitempty"`
1060
1061	// Message: [Output Only] A human-readable description of the warning
1062	// code.
1063	Message string `json:"message,omitempty"`
1064
1065	// ForceSendFields is a list of field names (e.g. "Code") to
1066	// unconditionally include in API requests. By default, fields with
1067	// empty values are omitted from API requests. However, any non-pointer,
1068	// non-interface field appearing in ForceSendFields will be sent to the
1069	// server regardless of whether the field is empty or not. This may be
1070	// used to include empty fields in Patch requests.
1071	ForceSendFields []string `json:"-"`
1072
1073	// NullFields is a list of field names (e.g. "Code") to include in API
1074	// requests with the JSON null value. By default, fields with empty
1075	// values are omitted from API requests. However, any field with an
1076	// empty value appearing in NullFields will be sent to the server as
1077	// null. It is an error if a field in this list has a non-empty value.
1078	// This may be used to include null fields in Patch requests.
1079	NullFields []string `json:"-"`
1080}
1081
1082func (s *AcceleratorTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
1083	type NoMethod AcceleratorTypeAggregatedListWarning
1084	raw := NoMethod(*s)
1085	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1086}
1087
1088type AcceleratorTypeAggregatedListWarningData struct {
1089	// Key: [Output Only] A key that provides more detail on the warning
1090	// being returned. For example, for warnings where there are no results
1091	// in a list request for a particular zone, this key might be scope and
1092	// the key value might be the zone name. Other examples might be a key
1093	// indicating a deprecated resource and a suggested replacement, or a
1094	// warning about invalid network settings (for example, if an instance
1095	// attempts to perform IP forwarding but is not enabled for IP
1096	// forwarding).
1097	Key string `json:"key,omitempty"`
1098
1099	// Value: [Output Only] A warning data value corresponding to the key.
1100	Value string `json:"value,omitempty"`
1101
1102	// ForceSendFields is a list of field names (e.g. "Key") to
1103	// unconditionally include in API requests. By default, fields with
1104	// empty values are omitted from API requests. However, any non-pointer,
1105	// non-interface field appearing in ForceSendFields will be sent to the
1106	// server regardless of whether the field is empty or not. This may be
1107	// used to include empty fields in Patch requests.
1108	ForceSendFields []string `json:"-"`
1109
1110	// NullFields is a list of field names (e.g. "Key") to include in API
1111	// requests with the JSON null value. By default, fields with empty
1112	// values are omitted from API requests. However, any field with an
1113	// empty value appearing in NullFields will be sent to the server as
1114	// null. It is an error if a field in this list has a non-empty value.
1115	// This may be used to include null fields in Patch requests.
1116	NullFields []string `json:"-"`
1117}
1118
1119func (s *AcceleratorTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
1120	type NoMethod AcceleratorTypeAggregatedListWarningData
1121	raw := NoMethod(*s)
1122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1123}
1124
1125// AcceleratorTypeList: Contains a list of accelerator types.
1126type AcceleratorTypeList struct {
1127	// Id: [Output Only] Unique identifier for the resource; defined by the
1128	// server.
1129	Id string `json:"id,omitempty"`
1130
1131	// Items: A list of AcceleratorType resources.
1132	Items []*AcceleratorType `json:"items,omitempty"`
1133
1134	// Kind: [Output Only] Type of resource. Always
1135	// compute#acceleratorTypeList for lists of accelerator types.
1136	Kind string `json:"kind,omitempty"`
1137
1138	// NextPageToken: [Output Only] This token allows you to get the next
1139	// page of results for list requests. If the number of results is larger
1140	// than maxResults, use the nextPageToken as a value for the query
1141	// parameter pageToken in the next list request. Subsequent list
1142	// requests will have their own nextPageToken to continue paging through
1143	// the results.
1144	NextPageToken string `json:"nextPageToken,omitempty"`
1145
1146	// SelfLink: [Output Only] Server-defined URL for this resource.
1147	SelfLink string `json:"selfLink,omitempty"`
1148
1149	// Warning: [Output Only] Informational warning message.
1150	Warning *AcceleratorTypeListWarning `json:"warning,omitempty"`
1151
1152	// ServerResponse contains the HTTP response code and headers from the
1153	// server.
1154	googleapi.ServerResponse `json:"-"`
1155
1156	// ForceSendFields is a list of field names (e.g. "Id") to
1157	// unconditionally include in API requests. By default, fields with
1158	// empty values are omitted from API requests. However, any non-pointer,
1159	// non-interface field appearing in ForceSendFields will be sent to the
1160	// server regardless of whether the field is empty or not. This may be
1161	// used to include empty fields in Patch requests.
1162	ForceSendFields []string `json:"-"`
1163
1164	// NullFields is a list of field names (e.g. "Id") to include in API
1165	// requests with the JSON null value. By default, fields with empty
1166	// values are omitted from API requests. However, any field with an
1167	// empty value appearing in NullFields will be sent to the server as
1168	// null. It is an error if a field in this list has a non-empty value.
1169	// This may be used to include null fields in Patch requests.
1170	NullFields []string `json:"-"`
1171}
1172
1173func (s *AcceleratorTypeList) MarshalJSON() ([]byte, error) {
1174	type NoMethod AcceleratorTypeList
1175	raw := NoMethod(*s)
1176	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1177}
1178
1179// AcceleratorTypeListWarning: [Output Only] Informational warning
1180// message.
1181type AcceleratorTypeListWarning struct {
1182	// Code: [Output Only] A warning code, if applicable. For example,
1183	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1184	// the response.
1185	//
1186	// Possible values:
1187	//   "CLEANUP_FAILED"
1188	//   "DEPRECATED_RESOURCE_USED"
1189	//   "DEPRECATED_TYPE_USED"
1190	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1191	//   "EXPERIMENTAL_TYPE_USED"
1192	//   "EXTERNAL_API_WARNING"
1193	//   "FIELD_VALUE_OVERRIDEN"
1194	//   "INJECTED_KERNELS_DEPRECATED"
1195	//   "MISSING_TYPE_DEPENDENCY"
1196	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1197	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1198	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1199	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1200	//   "NEXT_HOP_NOT_RUNNING"
1201	//   "NOT_CRITICAL_ERROR"
1202	//   "NO_RESULTS_ON_PAGE"
1203	//   "REQUIRED_TOS_AGREEMENT"
1204	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1205	//   "RESOURCE_NOT_DELETED"
1206	//   "SCHEMA_VALIDATION_IGNORED"
1207	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1208	//   "UNDECLARED_PROPERTIES"
1209	//   "UNREACHABLE"
1210	Code string `json:"code,omitempty"`
1211
1212	// Data: [Output Only] Metadata about this warning in key: value format.
1213	// For example:
1214	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1215	Data []*AcceleratorTypeListWarningData `json:"data,omitempty"`
1216
1217	// Message: [Output Only] A human-readable description of the warning
1218	// code.
1219	Message string `json:"message,omitempty"`
1220
1221	// ForceSendFields is a list of field names (e.g. "Code") to
1222	// unconditionally include in API requests. By default, fields with
1223	// empty values are omitted from API requests. However, any non-pointer,
1224	// non-interface field appearing in ForceSendFields will be sent to the
1225	// server regardless of whether the field is empty or not. This may be
1226	// used to include empty fields in Patch requests.
1227	ForceSendFields []string `json:"-"`
1228
1229	// NullFields is a list of field names (e.g. "Code") to include in API
1230	// requests with the JSON null value. By default, fields with empty
1231	// values are omitted from API requests. However, any field with an
1232	// empty value appearing in NullFields will be sent to the server as
1233	// null. It is an error if a field in this list has a non-empty value.
1234	// This may be used to include null fields in Patch requests.
1235	NullFields []string `json:"-"`
1236}
1237
1238func (s *AcceleratorTypeListWarning) MarshalJSON() ([]byte, error) {
1239	type NoMethod AcceleratorTypeListWarning
1240	raw := NoMethod(*s)
1241	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1242}
1243
1244type AcceleratorTypeListWarningData struct {
1245	// Key: [Output Only] A key that provides more detail on the warning
1246	// being returned. For example, for warnings where there are no results
1247	// in a list request for a particular zone, this key might be scope and
1248	// the key value might be the zone name. Other examples might be a key
1249	// indicating a deprecated resource and a suggested replacement, or a
1250	// warning about invalid network settings (for example, if an instance
1251	// attempts to perform IP forwarding but is not enabled for IP
1252	// forwarding).
1253	Key string `json:"key,omitempty"`
1254
1255	// Value: [Output Only] A warning data value corresponding to the key.
1256	Value string `json:"value,omitempty"`
1257
1258	// ForceSendFields is a list of field names (e.g. "Key") to
1259	// unconditionally include in API requests. By default, fields with
1260	// empty values are omitted from API requests. However, any non-pointer,
1261	// non-interface field appearing in ForceSendFields will be sent to the
1262	// server regardless of whether the field is empty or not. This may be
1263	// used to include empty fields in Patch requests.
1264	ForceSendFields []string `json:"-"`
1265
1266	// NullFields is a list of field names (e.g. "Key") to include in API
1267	// requests with the JSON null value. By default, fields with empty
1268	// values are omitted from API requests. However, any field with an
1269	// empty value appearing in NullFields will be sent to the server as
1270	// null. It is an error if a field in this list has a non-empty value.
1271	// This may be used to include null fields in Patch requests.
1272	NullFields []string `json:"-"`
1273}
1274
1275func (s *AcceleratorTypeListWarningData) MarshalJSON() ([]byte, error) {
1276	type NoMethod AcceleratorTypeListWarningData
1277	raw := NoMethod(*s)
1278	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1279}
1280
1281type AcceleratorTypesScopedList struct {
1282	// AcceleratorTypes: [Output Only] A list of accelerator types contained
1283	// in this scope.
1284	AcceleratorTypes []*AcceleratorType `json:"acceleratorTypes,omitempty"`
1285
1286	// Warning: [Output Only] An informational warning that appears when the
1287	// accelerator types list is empty.
1288	Warning *AcceleratorTypesScopedListWarning `json:"warning,omitempty"`
1289
1290	// ForceSendFields is a list of field names (e.g. "AcceleratorTypes") to
1291	// unconditionally include in API requests. By default, fields with
1292	// empty values are omitted from API requests. However, any non-pointer,
1293	// non-interface field appearing in ForceSendFields will be sent to the
1294	// server regardless of whether the field is empty or not. This may be
1295	// used to include empty fields in Patch requests.
1296	ForceSendFields []string `json:"-"`
1297
1298	// NullFields is a list of field names (e.g. "AcceleratorTypes") to
1299	// include in API requests with the JSON null value. By default, fields
1300	// with empty values are omitted from API requests. However, any field
1301	// with an empty value appearing in NullFields will be sent to the
1302	// server as null. It is an error if a field in this list has a
1303	// non-empty value. This may be used to include null fields in Patch
1304	// requests.
1305	NullFields []string `json:"-"`
1306}
1307
1308func (s *AcceleratorTypesScopedList) MarshalJSON() ([]byte, error) {
1309	type NoMethod AcceleratorTypesScopedList
1310	raw := NoMethod(*s)
1311	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1312}
1313
1314// AcceleratorTypesScopedListWarning: [Output Only] An informational
1315// warning that appears when the accelerator types list is empty.
1316type AcceleratorTypesScopedListWarning struct {
1317	// Code: [Output Only] A warning code, if applicable. For example,
1318	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1319	// the response.
1320	//
1321	// Possible values:
1322	//   "CLEANUP_FAILED"
1323	//   "DEPRECATED_RESOURCE_USED"
1324	//   "DEPRECATED_TYPE_USED"
1325	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1326	//   "EXPERIMENTAL_TYPE_USED"
1327	//   "EXTERNAL_API_WARNING"
1328	//   "FIELD_VALUE_OVERRIDEN"
1329	//   "INJECTED_KERNELS_DEPRECATED"
1330	//   "MISSING_TYPE_DEPENDENCY"
1331	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1332	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1333	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1334	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1335	//   "NEXT_HOP_NOT_RUNNING"
1336	//   "NOT_CRITICAL_ERROR"
1337	//   "NO_RESULTS_ON_PAGE"
1338	//   "REQUIRED_TOS_AGREEMENT"
1339	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1340	//   "RESOURCE_NOT_DELETED"
1341	//   "SCHEMA_VALIDATION_IGNORED"
1342	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1343	//   "UNDECLARED_PROPERTIES"
1344	//   "UNREACHABLE"
1345	Code string `json:"code,omitempty"`
1346
1347	// Data: [Output Only] Metadata about this warning in key: value format.
1348	// For example:
1349	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1350	Data []*AcceleratorTypesScopedListWarningData `json:"data,omitempty"`
1351
1352	// Message: [Output Only] A human-readable description of the warning
1353	// code.
1354	Message string `json:"message,omitempty"`
1355
1356	// ForceSendFields is a list of field names (e.g. "Code") to
1357	// unconditionally include in API requests. By default, fields with
1358	// empty values are omitted from API requests. However, any non-pointer,
1359	// non-interface field appearing in ForceSendFields will be sent to the
1360	// server regardless of whether the field is empty or not. This may be
1361	// used to include empty fields in Patch requests.
1362	ForceSendFields []string `json:"-"`
1363
1364	// NullFields is a list of field names (e.g. "Code") to include in API
1365	// requests with the JSON null value. By default, fields with empty
1366	// values are omitted from API requests. However, any field with an
1367	// empty value appearing in NullFields will be sent to the server as
1368	// null. It is an error if a field in this list has a non-empty value.
1369	// This may be used to include null fields in Patch requests.
1370	NullFields []string `json:"-"`
1371}
1372
1373func (s *AcceleratorTypesScopedListWarning) MarshalJSON() ([]byte, error) {
1374	type NoMethod AcceleratorTypesScopedListWarning
1375	raw := NoMethod(*s)
1376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1377}
1378
1379type AcceleratorTypesScopedListWarningData struct {
1380	// Key: [Output Only] A key that provides more detail on the warning
1381	// being returned. For example, for warnings where there are no results
1382	// in a list request for a particular zone, this key might be scope and
1383	// the key value might be the zone name. Other examples might be a key
1384	// indicating a deprecated resource and a suggested replacement, or a
1385	// warning about invalid network settings (for example, if an instance
1386	// attempts to perform IP forwarding but is not enabled for IP
1387	// forwarding).
1388	Key string `json:"key,omitempty"`
1389
1390	// Value: [Output Only] A warning data value corresponding to the key.
1391	Value string `json:"value,omitempty"`
1392
1393	// ForceSendFields is a list of field names (e.g. "Key") 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. "Key") 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 *AcceleratorTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
1411	type NoMethod AcceleratorTypesScopedListWarningData
1412	raw := NoMethod(*s)
1413	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1414}
1415
1416// AccessConfig: An access configuration attached to an instance's
1417// network interface. Only one access config per instance is supported.
1418type AccessConfig struct {
1419	// Kind: [Output Only] Type of the resource. Always compute#accessConfig
1420	// for access configs.
1421	Kind string `json:"kind,omitempty"`
1422
1423	// Name: The name of this access configuration. The default and
1424	// recommended name is External NAT but you can use any arbitrary string
1425	// you would like. For example, My external IP or Network Access.
1426	Name string `json:"name,omitempty"`
1427
1428	// NatIP: An external IP address associated with this instance. Specify
1429	// an unused static external IP address available to the project or
1430	// leave this field undefined to use an IP from a shared ephemeral IP
1431	// address pool. If you specify a static external IP address, it must
1432	// live in the same region as the zone of the instance.
1433	NatIP string `json:"natIP,omitempty"`
1434
1435	// NetworkTier: This signifies the networking tier used for configuring
1436	// this access configuration and can only take the following values:
1437	// PREMIUM, STANDARD.
1438	//
1439	// If an AccessConfig is specified without a valid external IP address,
1440	// an ephemeral IP will be created with this networkTier.
1441	//
1442	// If an AccessConfig with a valid external IP address is specified, it
1443	// must match that of the networkTier associated with the Address
1444	// resource owning that IP.
1445	//
1446	// Possible values:
1447	//   "PREMIUM"
1448	//   "STANDARD"
1449	NetworkTier string `json:"networkTier,omitempty"`
1450
1451	// PublicPtrDomainName: The DNS domain name for the public PTR record.
1452	// This field can only be set when the set_public_ptr field is enabled.
1453	PublicPtrDomainName string `json:"publicPtrDomainName,omitempty"`
1454
1455	// SetPublicPtr: Specifies whether a public DNS ?PTR? record should be
1456	// created to map the external IP address of the instance to a DNS
1457	// domain name.
1458	SetPublicPtr bool `json:"setPublicPtr,omitempty"`
1459
1460	// Type: The type of configuration. The default and only option is
1461	// ONE_TO_ONE_NAT.
1462	//
1463	// Possible values:
1464	//   "ONE_TO_ONE_NAT" (default)
1465	Type string `json:"type,omitempty"`
1466
1467	// ForceSendFields is a list of field names (e.g. "Kind") to
1468	// unconditionally include in API requests. By default, fields with
1469	// empty values are omitted from API requests. However, any non-pointer,
1470	// non-interface field appearing in ForceSendFields will be sent to the
1471	// server regardless of whether the field is empty or not. This may be
1472	// used to include empty fields in Patch requests.
1473	ForceSendFields []string `json:"-"`
1474
1475	// NullFields is a list of field names (e.g. "Kind") to include in API
1476	// requests with the JSON null value. By default, fields with empty
1477	// values are omitted from API requests. However, any field with an
1478	// empty value appearing in NullFields will be sent to the server as
1479	// null. It is an error if a field in this list has a non-empty value.
1480	// This may be used to include null fields in Patch requests.
1481	NullFields []string `json:"-"`
1482}
1483
1484func (s *AccessConfig) MarshalJSON() ([]byte, error) {
1485	type NoMethod AccessConfig
1486	raw := NoMethod(*s)
1487	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1488}
1489
1490// Address: A reserved address resource. (== resource_for beta.addresses
1491// ==) (== resource_for v1.addresses ==) (== resource_for
1492// beta.globalAddresses ==) (== resource_for v1.globalAddresses ==)
1493type Address struct {
1494	// Address: The static IP address represented by this resource.
1495	Address string `json:"address,omitempty"`
1496
1497	// AddressType: The type of address to reserve, either INTERNAL or
1498	// EXTERNAL. If unspecified, defaults to EXTERNAL.
1499	//
1500	// Possible values:
1501	//   "EXTERNAL"
1502	//   "INTERNAL"
1503	//   "UNSPECIFIED_TYPE"
1504	AddressType string `json:"addressType,omitempty"`
1505
1506	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1507	// format.
1508	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1509
1510	// Description: An optional description of this resource. Provide this
1511	// property when you create the resource.
1512	Description string `json:"description,omitempty"`
1513
1514	// Id: [Output Only] The unique identifier for the resource. This
1515	// identifier is defined by the server.
1516	Id uint64 `json:"id,omitempty,string"`
1517
1518	// IpVersion: The IP Version that will be used by this address. Valid
1519	// options are IPV4 or IPV6. This can only be specified for a global
1520	// address.
1521	//
1522	// Possible values:
1523	//   "IPV4"
1524	//   "IPV6"
1525	//   "UNSPECIFIED_VERSION"
1526	IpVersion string `json:"ipVersion,omitempty"`
1527
1528	// Kind: [Output Only] Type of the resource. Always compute#address for
1529	// addresses.
1530	Kind string `json:"kind,omitempty"`
1531
1532	// Name: Name of the resource. Provided by the client when the resource
1533	// is created. The name must be 1-63 characters long, and comply with
1534	// RFC1035. Specifically, the name must be 1-63 characters long and
1535	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
1536	// the first character must be a lowercase letter, and all following
1537	// characters must be a dash, lowercase letter, or digit, except the
1538	// last character, which cannot be a dash.
1539	Name string `json:"name,omitempty"`
1540
1541	// Network: The URL of the network in which to reserve the address. This
1542	// field can only be used with INTERNAL type with VPC_PEERING purpose.
1543	Network string `json:"network,omitempty"`
1544
1545	// NetworkTier: This signifies the networking tier used for configuring
1546	// this Address and can only take the following values: PREMIUM,
1547	// STANDARD. Global forwarding rules can only be Premium Tier. Regional
1548	// forwarding rules can be either Premium or Standard Tier. Standard
1549	// Tier addresses applied to regional forwarding rules can be used with
1550	// any external load balancer. Regional forwarding rules in Premium Tier
1551	// can only be used with a Network load balancer.
1552	//
1553	// If this field is not specified, it is assumed to be PREMIUM.
1554	//
1555	// Possible values:
1556	//   "PREMIUM"
1557	//   "STANDARD"
1558	NetworkTier string `json:"networkTier,omitempty"`
1559
1560	// PrefixLength: The prefix length if the resource reprensents an IP
1561	// range.
1562	PrefixLength int64 `json:"prefixLength,omitempty"`
1563
1564	// Purpose: The purpose of resource, only used with INTERNAL type.
1565	//
1566	// Possible values:
1567	//   "DNS_RESOLVER"
1568	//   "GCE_ENDPOINT"
1569	//   "NAT_AUTO"
1570	//   "VPC_PEERING"
1571	Purpose string `json:"purpose,omitempty"`
1572
1573	// Region: [Output Only] URL of the region where the regional address
1574	// resides. This field is not applicable to global addresses. You must
1575	// specify this field as part of the HTTP request URL. You cannot set
1576	// this field in the request body.
1577	Region string `json:"region,omitempty"`
1578
1579	// SelfLink: [Output Only] Server-defined URL for the resource.
1580	SelfLink string `json:"selfLink,omitempty"`
1581
1582	// Status: [Output Only] The status of the address, which can be one of
1583	// RESERVING, RESERVED, or IN_USE. An address that is RESERVING is
1584	// currently in the process of being reserved. A RESERVED address is
1585	// currently reserved and available to use. An IN_USE address is
1586	// currently being used by another resource and is not available.
1587	//
1588	// Possible values:
1589	//   "IN_USE"
1590	//   "RESERVED"
1591	//   "RESERVING"
1592	Status string `json:"status,omitempty"`
1593
1594	// Subnetwork: The URL of the subnetwork in which to reserve the
1595	// address. If an IP address is specified, it must be within the
1596	// subnetwork's IP range. This field can only be used with INTERNAL type
1597	// with GCE_ENDPOINT/DNS_RESOLVER purposes.
1598	Subnetwork string `json:"subnetwork,omitempty"`
1599
1600	// Users: [Output Only] The URLs of the resources that are using this
1601	// address.
1602	Users []string `json:"users,omitempty"`
1603
1604	// ServerResponse contains the HTTP response code and headers from the
1605	// server.
1606	googleapi.ServerResponse `json:"-"`
1607
1608	// ForceSendFields is a list of field names (e.g. "Address") to
1609	// unconditionally include in API requests. By default, fields with
1610	// empty values are omitted from API requests. However, any non-pointer,
1611	// non-interface field appearing in ForceSendFields will be sent to the
1612	// server regardless of whether the field is empty or not. This may be
1613	// used to include empty fields in Patch requests.
1614	ForceSendFields []string `json:"-"`
1615
1616	// NullFields is a list of field names (e.g. "Address") to include in
1617	// API requests with the JSON null value. By default, fields with empty
1618	// values are omitted from API requests. However, any field with an
1619	// empty value appearing in NullFields will be sent to the server as
1620	// null. It is an error if a field in this list has a non-empty value.
1621	// This may be used to include null fields in Patch requests.
1622	NullFields []string `json:"-"`
1623}
1624
1625func (s *Address) MarshalJSON() ([]byte, error) {
1626	type NoMethod Address
1627	raw := NoMethod(*s)
1628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1629}
1630
1631type AddressAggregatedList struct {
1632	// Id: [Output Only] Unique identifier for the resource; defined by the
1633	// server.
1634	Id string `json:"id,omitempty"`
1635
1636	// Items: A list of AddressesScopedList resources.
1637	Items map[string]AddressesScopedList `json:"items,omitempty"`
1638
1639	// Kind: [Output Only] Type of resource. Always
1640	// compute#addressAggregatedList for aggregated lists of addresses.
1641	Kind string `json:"kind,omitempty"`
1642
1643	// NextPageToken: [Output Only] This token allows you to get the next
1644	// page of results for list requests. If the number of results is larger
1645	// than maxResults, use the nextPageToken as a value for the query
1646	// parameter pageToken in the next list request. Subsequent list
1647	// requests will have their own nextPageToken to continue paging through
1648	// the results.
1649	NextPageToken string `json:"nextPageToken,omitempty"`
1650
1651	// SelfLink: [Output Only] Server-defined URL for this resource.
1652	SelfLink string `json:"selfLink,omitempty"`
1653
1654	// Warning: [Output Only] Informational warning message.
1655	Warning *AddressAggregatedListWarning `json:"warning,omitempty"`
1656
1657	// ServerResponse contains the HTTP response code and headers from the
1658	// server.
1659	googleapi.ServerResponse `json:"-"`
1660
1661	// ForceSendFields is a list of field names (e.g. "Id") to
1662	// unconditionally include in API requests. By default, fields with
1663	// empty values are omitted from API requests. However, any non-pointer,
1664	// non-interface field appearing in ForceSendFields will be sent to the
1665	// server regardless of whether the field is empty or not. This may be
1666	// used to include empty fields in Patch requests.
1667	ForceSendFields []string `json:"-"`
1668
1669	// NullFields is a list of field names (e.g. "Id") to include in API
1670	// requests with the JSON null value. By default, fields with empty
1671	// values are omitted from API requests. However, any field with an
1672	// empty value appearing in NullFields will be sent to the server as
1673	// null. It is an error if a field in this list has a non-empty value.
1674	// This may be used to include null fields in Patch requests.
1675	NullFields []string `json:"-"`
1676}
1677
1678func (s *AddressAggregatedList) MarshalJSON() ([]byte, error) {
1679	type NoMethod AddressAggregatedList
1680	raw := NoMethod(*s)
1681	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1682}
1683
1684// AddressAggregatedListWarning: [Output Only] Informational warning
1685// message.
1686type AddressAggregatedListWarning struct {
1687	// Code: [Output Only] A warning code, if applicable. For example,
1688	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1689	// the response.
1690	//
1691	// Possible values:
1692	//   "CLEANUP_FAILED"
1693	//   "DEPRECATED_RESOURCE_USED"
1694	//   "DEPRECATED_TYPE_USED"
1695	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1696	//   "EXPERIMENTAL_TYPE_USED"
1697	//   "EXTERNAL_API_WARNING"
1698	//   "FIELD_VALUE_OVERRIDEN"
1699	//   "INJECTED_KERNELS_DEPRECATED"
1700	//   "MISSING_TYPE_DEPENDENCY"
1701	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1702	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1703	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1704	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1705	//   "NEXT_HOP_NOT_RUNNING"
1706	//   "NOT_CRITICAL_ERROR"
1707	//   "NO_RESULTS_ON_PAGE"
1708	//   "REQUIRED_TOS_AGREEMENT"
1709	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1710	//   "RESOURCE_NOT_DELETED"
1711	//   "SCHEMA_VALIDATION_IGNORED"
1712	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1713	//   "UNDECLARED_PROPERTIES"
1714	//   "UNREACHABLE"
1715	Code string `json:"code,omitempty"`
1716
1717	// Data: [Output Only] Metadata about this warning in key: value format.
1718	// For example:
1719	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1720	Data []*AddressAggregatedListWarningData `json:"data,omitempty"`
1721
1722	// Message: [Output Only] A human-readable description of the warning
1723	// code.
1724	Message string `json:"message,omitempty"`
1725
1726	// ForceSendFields is a list of field names (e.g. "Code") to
1727	// unconditionally include in API requests. By default, fields with
1728	// empty values are omitted from API requests. However, any non-pointer,
1729	// non-interface field appearing in ForceSendFields will be sent to the
1730	// server regardless of whether the field is empty or not. This may be
1731	// used to include empty fields in Patch requests.
1732	ForceSendFields []string `json:"-"`
1733
1734	// NullFields is a list of field names (e.g. "Code") to include in API
1735	// requests with the JSON null value. By default, fields with empty
1736	// values are omitted from API requests. However, any field with an
1737	// empty value appearing in NullFields will be sent to the server as
1738	// null. It is an error if a field in this list has a non-empty value.
1739	// This may be used to include null fields in Patch requests.
1740	NullFields []string `json:"-"`
1741}
1742
1743func (s *AddressAggregatedListWarning) MarshalJSON() ([]byte, error) {
1744	type NoMethod AddressAggregatedListWarning
1745	raw := NoMethod(*s)
1746	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1747}
1748
1749type AddressAggregatedListWarningData struct {
1750	// Key: [Output Only] A key that provides more detail on the warning
1751	// being returned. For example, for warnings where there are no results
1752	// in a list request for a particular zone, this key might be scope and
1753	// the key value might be the zone name. Other examples might be a key
1754	// indicating a deprecated resource and a suggested replacement, or a
1755	// warning about invalid network settings (for example, if an instance
1756	// attempts to perform IP forwarding but is not enabled for IP
1757	// forwarding).
1758	Key string `json:"key,omitempty"`
1759
1760	// Value: [Output Only] A warning data value corresponding to the key.
1761	Value string `json:"value,omitempty"`
1762
1763	// ForceSendFields is a list of field names (e.g. "Key") to
1764	// unconditionally include in API requests. By default, fields with
1765	// empty values are omitted from API requests. However, any non-pointer,
1766	// non-interface field appearing in ForceSendFields will be sent to the
1767	// server regardless of whether the field is empty or not. This may be
1768	// used to include empty fields in Patch requests.
1769	ForceSendFields []string `json:"-"`
1770
1771	// NullFields is a list of field names (e.g. "Key") to include in API
1772	// requests with the JSON null value. By default, fields with empty
1773	// values are omitted from API requests. However, any field with an
1774	// empty value appearing in NullFields will be sent to the server as
1775	// null. It is an error if a field in this list has a non-empty value.
1776	// This may be used to include null fields in Patch requests.
1777	NullFields []string `json:"-"`
1778}
1779
1780func (s *AddressAggregatedListWarningData) MarshalJSON() ([]byte, error) {
1781	type NoMethod AddressAggregatedListWarningData
1782	raw := NoMethod(*s)
1783	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1784}
1785
1786// AddressList: Contains a list of addresses.
1787type AddressList struct {
1788	// Id: [Output Only] Unique identifier for the resource; defined by the
1789	// server.
1790	Id string `json:"id,omitempty"`
1791
1792	// Items: A list of Address resources.
1793	Items []*Address `json:"items,omitempty"`
1794
1795	// Kind: [Output Only] Type of resource. Always compute#addressList for
1796	// lists of addresses.
1797	Kind string `json:"kind,omitempty"`
1798
1799	// NextPageToken: [Output Only] This token allows you to get the next
1800	// page of results for list requests. If the number of results is larger
1801	// than maxResults, use the nextPageToken as a value for the query
1802	// parameter pageToken in the next list request. Subsequent list
1803	// requests will have their own nextPageToken to continue paging through
1804	// the results.
1805	NextPageToken string `json:"nextPageToken,omitempty"`
1806
1807	// SelfLink: [Output Only] Server-defined URL for this resource.
1808	SelfLink string `json:"selfLink,omitempty"`
1809
1810	// Warning: [Output Only] Informational warning message.
1811	Warning *AddressListWarning `json:"warning,omitempty"`
1812
1813	// ServerResponse contains the HTTP response code and headers from the
1814	// server.
1815	googleapi.ServerResponse `json:"-"`
1816
1817	// ForceSendFields is a list of field names (e.g. "Id") to
1818	// unconditionally include in API requests. By default, fields with
1819	// empty values are omitted from API requests. However, any non-pointer,
1820	// non-interface field appearing in ForceSendFields will be sent to the
1821	// server regardless of whether the field is empty or not. This may be
1822	// used to include empty fields in Patch requests.
1823	ForceSendFields []string `json:"-"`
1824
1825	// NullFields is a list of field names (e.g. "Id") to include in API
1826	// requests with the JSON null value. By default, fields with empty
1827	// values are omitted from API requests. However, any field with an
1828	// empty value appearing in NullFields will be sent to the server as
1829	// null. It is an error if a field in this list has a non-empty value.
1830	// This may be used to include null fields in Patch requests.
1831	NullFields []string `json:"-"`
1832}
1833
1834func (s *AddressList) MarshalJSON() ([]byte, error) {
1835	type NoMethod AddressList
1836	raw := NoMethod(*s)
1837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1838}
1839
1840// AddressListWarning: [Output Only] Informational warning message.
1841type AddressListWarning struct {
1842	// Code: [Output Only] A warning code, if applicable. For example,
1843	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1844	// the response.
1845	//
1846	// Possible values:
1847	//   "CLEANUP_FAILED"
1848	//   "DEPRECATED_RESOURCE_USED"
1849	//   "DEPRECATED_TYPE_USED"
1850	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1851	//   "EXPERIMENTAL_TYPE_USED"
1852	//   "EXTERNAL_API_WARNING"
1853	//   "FIELD_VALUE_OVERRIDEN"
1854	//   "INJECTED_KERNELS_DEPRECATED"
1855	//   "MISSING_TYPE_DEPENDENCY"
1856	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1857	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1858	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1859	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1860	//   "NEXT_HOP_NOT_RUNNING"
1861	//   "NOT_CRITICAL_ERROR"
1862	//   "NO_RESULTS_ON_PAGE"
1863	//   "REQUIRED_TOS_AGREEMENT"
1864	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1865	//   "RESOURCE_NOT_DELETED"
1866	//   "SCHEMA_VALIDATION_IGNORED"
1867	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1868	//   "UNDECLARED_PROPERTIES"
1869	//   "UNREACHABLE"
1870	Code string `json:"code,omitempty"`
1871
1872	// Data: [Output Only] Metadata about this warning in key: value format.
1873	// For example:
1874	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1875	Data []*AddressListWarningData `json:"data,omitempty"`
1876
1877	// Message: [Output Only] A human-readable description of the warning
1878	// code.
1879	Message string `json:"message,omitempty"`
1880
1881	// ForceSendFields is a list of field names (e.g. "Code") to
1882	// unconditionally include in API requests. By default, fields with
1883	// empty values are omitted from API requests. However, any non-pointer,
1884	// non-interface field appearing in ForceSendFields will be sent to the
1885	// server regardless of whether the field is empty or not. This may be
1886	// used to include empty fields in Patch requests.
1887	ForceSendFields []string `json:"-"`
1888
1889	// NullFields is a list of field names (e.g. "Code") to include in API
1890	// requests with the JSON null value. By default, fields with empty
1891	// values are omitted from API requests. However, any field with an
1892	// empty value appearing in NullFields will be sent to the server as
1893	// null. It is an error if a field in this list has a non-empty value.
1894	// This may be used to include null fields in Patch requests.
1895	NullFields []string `json:"-"`
1896}
1897
1898func (s *AddressListWarning) MarshalJSON() ([]byte, error) {
1899	type NoMethod AddressListWarning
1900	raw := NoMethod(*s)
1901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1902}
1903
1904type AddressListWarningData struct {
1905	// Key: [Output Only] A key that provides more detail on the warning
1906	// being returned. For example, for warnings where there are no results
1907	// in a list request for a particular zone, this key might be scope and
1908	// the key value might be the zone name. Other examples might be a key
1909	// indicating a deprecated resource and a suggested replacement, or a
1910	// warning about invalid network settings (for example, if an instance
1911	// attempts to perform IP forwarding but is not enabled for IP
1912	// forwarding).
1913	Key string `json:"key,omitempty"`
1914
1915	// Value: [Output Only] A warning data value corresponding to the key.
1916	Value string `json:"value,omitempty"`
1917
1918	// ForceSendFields is a list of field names (e.g. "Key") to
1919	// unconditionally include in API requests. By default, fields with
1920	// empty values are omitted from API requests. However, any non-pointer,
1921	// non-interface field appearing in ForceSendFields will be sent to the
1922	// server regardless of whether the field is empty or not. This may be
1923	// used to include empty fields in Patch requests.
1924	ForceSendFields []string `json:"-"`
1925
1926	// NullFields is a list of field names (e.g. "Key") to include in API
1927	// requests with the JSON null value. By default, fields with empty
1928	// values are omitted from API requests. However, any field with an
1929	// empty value appearing in NullFields will be sent to the server as
1930	// null. It is an error if a field in this list has a non-empty value.
1931	// This may be used to include null fields in Patch requests.
1932	NullFields []string `json:"-"`
1933}
1934
1935func (s *AddressListWarningData) MarshalJSON() ([]byte, error) {
1936	type NoMethod AddressListWarningData
1937	raw := NoMethod(*s)
1938	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1939}
1940
1941type AddressesScopedList struct {
1942	// Addresses: [Output Only] A list of addresses contained in this scope.
1943	Addresses []*Address `json:"addresses,omitempty"`
1944
1945	// Warning: [Output Only] Informational warning which replaces the list
1946	// of addresses when the list is empty.
1947	Warning *AddressesScopedListWarning `json:"warning,omitempty"`
1948
1949	// ForceSendFields is a list of field names (e.g. "Addresses") to
1950	// unconditionally include in API requests. By default, fields with
1951	// empty values are omitted from API requests. However, any non-pointer,
1952	// non-interface field appearing in ForceSendFields will be sent to the
1953	// server regardless of whether the field is empty or not. This may be
1954	// used to include empty fields in Patch requests.
1955	ForceSendFields []string `json:"-"`
1956
1957	// NullFields is a list of field names (e.g. "Addresses") to include in
1958	// API requests with the JSON null value. By default, fields with empty
1959	// values are omitted from API requests. However, any field with an
1960	// empty value appearing in NullFields will be sent to the server as
1961	// null. It is an error if a field in this list has a non-empty value.
1962	// This may be used to include null fields in Patch requests.
1963	NullFields []string `json:"-"`
1964}
1965
1966func (s *AddressesScopedList) MarshalJSON() ([]byte, error) {
1967	type NoMethod AddressesScopedList
1968	raw := NoMethod(*s)
1969	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1970}
1971
1972// AddressesScopedListWarning: [Output Only] Informational warning which
1973// replaces the list of addresses when the list is empty.
1974type AddressesScopedListWarning struct {
1975	// Code: [Output Only] A warning code, if applicable. For example,
1976	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1977	// the response.
1978	//
1979	// Possible values:
1980	//   "CLEANUP_FAILED"
1981	//   "DEPRECATED_RESOURCE_USED"
1982	//   "DEPRECATED_TYPE_USED"
1983	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1984	//   "EXPERIMENTAL_TYPE_USED"
1985	//   "EXTERNAL_API_WARNING"
1986	//   "FIELD_VALUE_OVERRIDEN"
1987	//   "INJECTED_KERNELS_DEPRECATED"
1988	//   "MISSING_TYPE_DEPENDENCY"
1989	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1990	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1991	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1992	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1993	//   "NEXT_HOP_NOT_RUNNING"
1994	//   "NOT_CRITICAL_ERROR"
1995	//   "NO_RESULTS_ON_PAGE"
1996	//   "REQUIRED_TOS_AGREEMENT"
1997	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1998	//   "RESOURCE_NOT_DELETED"
1999	//   "SCHEMA_VALIDATION_IGNORED"
2000	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2001	//   "UNDECLARED_PROPERTIES"
2002	//   "UNREACHABLE"
2003	Code string `json:"code,omitempty"`
2004
2005	// Data: [Output Only] Metadata about this warning in key: value format.
2006	// For example:
2007	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2008	Data []*AddressesScopedListWarningData `json:"data,omitempty"`
2009
2010	// Message: [Output Only] A human-readable description of the warning
2011	// code.
2012	Message string `json:"message,omitempty"`
2013
2014	// ForceSendFields is a list of field names (e.g. "Code") to
2015	// unconditionally include in API requests. By default, fields with
2016	// empty values are omitted from API requests. However, any non-pointer,
2017	// non-interface field appearing in ForceSendFields will be sent to the
2018	// server regardless of whether the field is empty or not. This may be
2019	// used to include empty fields in Patch requests.
2020	ForceSendFields []string `json:"-"`
2021
2022	// NullFields is a list of field names (e.g. "Code") to include in API
2023	// requests with the JSON null value. By default, fields with empty
2024	// values are omitted from API requests. However, any field with an
2025	// empty value appearing in NullFields will be sent to the server as
2026	// null. It is an error if a field in this list has a non-empty value.
2027	// This may be used to include null fields in Patch requests.
2028	NullFields []string `json:"-"`
2029}
2030
2031func (s *AddressesScopedListWarning) MarshalJSON() ([]byte, error) {
2032	type NoMethod AddressesScopedListWarning
2033	raw := NoMethod(*s)
2034	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2035}
2036
2037type AddressesScopedListWarningData struct {
2038	// Key: [Output Only] A key that provides more detail on the warning
2039	// being returned. For example, for warnings where there are no results
2040	// in a list request for a particular zone, this key might be scope and
2041	// the key value might be the zone name. Other examples might be a key
2042	// indicating a deprecated resource and a suggested replacement, or a
2043	// warning about invalid network settings (for example, if an instance
2044	// attempts to perform IP forwarding but is not enabled for IP
2045	// forwarding).
2046	Key string `json:"key,omitempty"`
2047
2048	// Value: [Output Only] A warning data value corresponding to the key.
2049	Value string `json:"value,omitempty"`
2050
2051	// ForceSendFields is a list of field names (e.g. "Key") to
2052	// unconditionally include in API requests. By default, fields with
2053	// empty values are omitted from API requests. However, any non-pointer,
2054	// non-interface field appearing in ForceSendFields will be sent to the
2055	// server regardless of whether the field is empty or not. This may be
2056	// used to include empty fields in Patch requests.
2057	ForceSendFields []string `json:"-"`
2058
2059	// NullFields is a list of field names (e.g. "Key") to include in API
2060	// requests with the JSON null value. By default, fields with empty
2061	// values are omitted from API requests. However, any field with an
2062	// empty value appearing in NullFields will be sent to the server as
2063	// null. It is an error if a field in this list has a non-empty value.
2064	// This may be used to include null fields in Patch requests.
2065	NullFields []string `json:"-"`
2066}
2067
2068func (s *AddressesScopedListWarningData) MarshalJSON() ([]byte, error) {
2069	type NoMethod AddressesScopedListWarningData
2070	raw := NoMethod(*s)
2071	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2072}
2073
2074// AliasIpRange: An alias IP range attached to an instance's network
2075// interface.
2076type AliasIpRange struct {
2077	// IpCidrRange: The IP CIDR range represented by this alias IP range.
2078	// This IP CIDR range must belong to the specified subnetwork and cannot
2079	// contain IP addresses reserved by system or used by other network
2080	// interfaces. This range may be a single IP address (e.g. 10.2.3.4), a
2081	// netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
2082	IpCidrRange string `json:"ipCidrRange,omitempty"`
2083
2084	// SubnetworkRangeName: Optional subnetwork secondary range name
2085	// specifying the secondary range from which to allocate the IP CIDR
2086	// range for this alias IP range. If left unspecified, the primary range
2087	// of the subnetwork will be used.
2088	SubnetworkRangeName string `json:"subnetworkRangeName,omitempty"`
2089
2090	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
2091	// unconditionally include in API requests. By default, fields with
2092	// empty values are omitted from API requests. However, any non-pointer,
2093	// non-interface field appearing in ForceSendFields will be sent to the
2094	// server regardless of whether the field is empty or not. This may be
2095	// used to include empty fields in Patch requests.
2096	ForceSendFields []string `json:"-"`
2097
2098	// NullFields is a list of field names (e.g. "IpCidrRange") to include
2099	// in API requests with the JSON null value. By default, fields with
2100	// empty values are omitted from API requests. However, any field with
2101	// an empty value appearing in NullFields will be sent to the server as
2102	// null. It is an error if a field in this list has a non-empty value.
2103	// This may be used to include null fields in Patch requests.
2104	NullFields []string `json:"-"`
2105}
2106
2107func (s *AliasIpRange) MarshalJSON() ([]byte, error) {
2108	type NoMethod AliasIpRange
2109	raw := NoMethod(*s)
2110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2111}
2112
2113// AttachedDisk: An instance-attached disk resource.
2114type AttachedDisk struct {
2115	// AutoDelete: Specifies whether the disk will be auto-deleted when the
2116	// instance is deleted (but not when the disk is detached from the
2117	// instance).
2118	AutoDelete bool `json:"autoDelete,omitempty"`
2119
2120	// Boot: Indicates that this is a boot disk. The virtual machine will
2121	// use the first partition of the disk for its root filesystem.
2122	Boot bool `json:"boot,omitempty"`
2123
2124	// DeviceName: Specifies a unique device name of your choice that is
2125	// reflected into the /dev/disk/by-id/google-* tree of a Linux operating
2126	// system running within the instance. This name can be used to
2127	// reference the device for mounting, resizing, and so on, from within
2128	// the instance.
2129	//
2130	// If not specified, the server chooses a default device name to apply
2131	// to this disk, in the form persistent-disk-x, where x is a number
2132	// assigned by Google Compute Engine. This field is only applicable for
2133	// persistent disks.
2134	DeviceName string `json:"deviceName,omitempty"`
2135
2136	// DiskEncryptionKey: Encrypts or decrypts a disk using a
2137	// customer-supplied encryption key.
2138	//
2139	// If you are creating a new disk, this field encrypts the new disk
2140	// using an encryption key that you provide. If you are attaching an
2141	// existing disk that is already encrypted, this field decrypts the disk
2142	// using the customer-supplied encryption key.
2143	//
2144	// If you encrypt a disk using a customer-supplied key, you must provide
2145	// the same key again when you attempt to use this resource at a later
2146	// time. For example, you must provide the key when you create a
2147	// snapshot or an image from the disk or when you attach the disk to a
2148	// virtual machine instance.
2149	//
2150	// If you do not provide an encryption key, then the disk will be
2151	// encrypted using an automatically generated key and you do not need to
2152	// provide a key to use the disk later.
2153	//
2154	// Instance templates do not store customer-supplied encryption keys, so
2155	// you cannot use your own keys to encrypt disks in a managed instance
2156	// group.
2157	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
2158
2159	// GuestOsFeatures: A list of features to enable on the guest operating
2160	// system. Applicable only for bootable images. Read  Enabling guest
2161	// operating system features to see a list of available options.
2162	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
2163
2164	// Index: [Output Only] A zero-based index to this disk, where 0 is
2165	// reserved for the boot disk. If you have many disks attached to an
2166	// instance, each disk would have a unique index number.
2167	Index int64 `json:"index,omitempty"`
2168
2169	// InitializeParams: [Input Only] Specifies the parameters for a new
2170	// disk that will be created alongside the new instance. Use
2171	// initialization parameters to create boot disks or local SSDs attached
2172	// to the new instance.
2173	//
2174	// This property is mutually exclusive with the source property; you can
2175	// only define one or the other, but not both.
2176	InitializeParams *AttachedDiskInitializeParams `json:"initializeParams,omitempty"`
2177
2178	// Interface: Specifies the disk interface to use for attaching this
2179	// disk, which is either SCSI or NVME. The default is SCSI. Persistent
2180	// disks must always use SCSI and the request will fail if you attempt
2181	// to attach a persistent disk in any other format than SCSI. Local SSDs
2182	// can use either NVME or SCSI. For performance characteristics of SCSI
2183	// over NVMe, see Local SSD performance.
2184	//
2185	// Possible values:
2186	//   "NVME"
2187	//   "SCSI"
2188	Interface string `json:"interface,omitempty"`
2189
2190	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk
2191	// for attached disks.
2192	Kind string `json:"kind,omitempty"`
2193
2194	// Licenses: [Output Only] Any valid publicly visible licenses.
2195	Licenses []string `json:"licenses,omitempty"`
2196
2197	// Mode: The mode in which to attach this disk, either READ_WRITE or
2198	// READ_ONLY. If not specified, the default is to attach the disk in
2199	// READ_WRITE mode.
2200	//
2201	// Possible values:
2202	//   "READ_ONLY"
2203	//   "READ_WRITE"
2204	Mode string `json:"mode,omitempty"`
2205
2206	// Source: Specifies a valid partial or full URL to an existing
2207	// Persistent Disk resource. When creating a new instance, one of
2208	// initializeParams.sourceImage or disks.source is required except for
2209	// local SSD.
2210	//
2211	// If desired, you can also attach existing non-root persistent disks
2212	// using this property. This field is only applicable for persistent
2213	// disks.
2214	//
2215	// Note that for InstanceTemplate, specify the disk name, not the URL
2216	// for the disk.
2217	Source string `json:"source,omitempty"`
2218
2219	// Type: Specifies the type of the disk, either SCRATCH or PERSISTENT.
2220	// If not specified, the default is PERSISTENT.
2221	//
2222	// Possible values:
2223	//   "PERSISTENT"
2224	//   "SCRATCH"
2225	Type string `json:"type,omitempty"`
2226
2227	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
2228	// unconditionally include in API requests. By default, fields with
2229	// empty values are omitted from API requests. However, any non-pointer,
2230	// non-interface field appearing in ForceSendFields will be sent to the
2231	// server regardless of whether the field is empty or not. This may be
2232	// used to include empty fields in Patch requests.
2233	ForceSendFields []string `json:"-"`
2234
2235	// NullFields is a list of field names (e.g. "AutoDelete") to include in
2236	// API requests with the JSON null value. By default, fields with empty
2237	// values are omitted from API requests. However, any field with an
2238	// empty value appearing in NullFields will be sent to the server as
2239	// null. It is an error if a field in this list has a non-empty value.
2240	// This may be used to include null fields in Patch requests.
2241	NullFields []string `json:"-"`
2242}
2243
2244func (s *AttachedDisk) MarshalJSON() ([]byte, error) {
2245	type NoMethod AttachedDisk
2246	raw := NoMethod(*s)
2247	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2248}
2249
2250// AttachedDiskInitializeParams: [Input Only] Specifies the parameters
2251// for a new disk that will be created alongside the new instance. Use
2252// initialization parameters to create boot disks or local SSDs attached
2253// to the new instance.
2254//
2255// This property is mutually exclusive with the source property; you can
2256// only define one or the other, but not both.
2257type AttachedDiskInitializeParams struct {
2258	// Description: An optional description. Provide this property when
2259	// creating the disk.
2260	Description string `json:"description,omitempty"`
2261
2262	// DiskName: Specifies the disk name. If not specified, the default is
2263	// to use the name of the instance. If the disk with the instance name
2264	// exists already in the given zone/region, a new name will be
2265	// automatically generated.
2266	DiskName string `json:"diskName,omitempty"`
2267
2268	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
2269	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2270
2271	// DiskType: Specifies the disk type to use to create the instance. If
2272	// not specified, the default is pd-standard, specified using the full
2273	// URL. For
2274	// example:
2275	// https://www.googleapis.com/compute/v1/projects/project/zones/
2276	// zone/diskTypes/pd-standard
2277	//
2278	//
2279	// Other values include pd-ssd and local-ssd. If you define this field,
2280	// you can provide either the full or partial URL. For example, the
2281	// following are valid values:
2282	// -
2283	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
2284	// - projects/project/zones/zone/diskTypes/diskType
2285	// - zones/zone/diskTypes/diskType  Note that for InstanceTemplate, this
2286	// is the name of the disk type, not URL.
2287	DiskType string `json:"diskType,omitempty"`
2288
2289	// Labels: Labels to apply to this disk. These can be later modified by
2290	// the disks.setLabels method. This field is only applicable for
2291	// persistent disks.
2292	Labels map[string]string `json:"labels,omitempty"`
2293
2294	// SourceImage: The source image to create this disk. When creating a
2295	// new instance, one of initializeParams.sourceImage or disks.source is
2296	// required except for local SSD.
2297	//
2298	// To create a disk with one of the public operating system images,
2299	// specify the image by its family name. For example, specify
2300	// family/debian-9 to use the latest Debian 9
2301	// image:
2302	// projects/debian-cloud/global/images/family/debian-9
2303	//
2304	//
2305	// Alternati
2306	// vely, use a specific version of a public operating system
2307	// image:
2308	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
2309	//
2310	//
2311	//
2312	// To create a disk with a custom image that you created, specify the
2313	// image name in the following
2314	// format:
2315	// global/images/my-custom-image
2316	//
2317	//
2318	// You can also specify a custom image by its image family, which
2319	// returns the latest version of the image in that family. Replace the
2320	// image name with
2321	// family/family-name:
2322	// global/images/family/my-image-family
2323	//
2324	//
2325	// If the source image is deleted later, this field will not be set.
2326	SourceImage string `json:"sourceImage,omitempty"`
2327
2328	// SourceImageEncryptionKey: The customer-supplied encryption key of the
2329	// source image. Required if the source image is protected by a
2330	// customer-supplied encryption key.
2331	//
2332	// Instance templates do not store customer-supplied encryption keys, so
2333	// you cannot create disks for instances in a managed instance group if
2334	// the source images are encrypted with your own keys.
2335	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
2336
2337	// ForceSendFields is a list of field names (e.g. "Description") to
2338	// unconditionally include in API requests. By default, fields with
2339	// empty values are omitted from API requests. However, any non-pointer,
2340	// non-interface field appearing in ForceSendFields will be sent to the
2341	// server regardless of whether the field is empty or not. This may be
2342	// used to include empty fields in Patch requests.
2343	ForceSendFields []string `json:"-"`
2344
2345	// NullFields is a list of field names (e.g. "Description") to include
2346	// in API requests with the JSON null value. By default, fields with
2347	// empty values are omitted from API requests. However, any field with
2348	// an empty value appearing in NullFields will be sent to the server as
2349	// null. It is an error if a field in this list has a non-empty value.
2350	// This may be used to include null fields in Patch requests.
2351	NullFields []string `json:"-"`
2352}
2353
2354func (s *AttachedDiskInitializeParams) MarshalJSON() ([]byte, error) {
2355	type NoMethod AttachedDiskInitializeParams
2356	raw := NoMethod(*s)
2357	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2358}
2359
2360// AuditConfig: Specifies the audit configuration for a service. The
2361// configuration determines which permission types are logged, and what
2362// identities, if any, are exempted from logging. An AuditConfig must
2363// have one or more AuditLogConfigs.
2364//
2365// If there are AuditConfigs for both `allServices` and a specific
2366// service, the union of the two AuditConfigs is used for that service:
2367// the log_types specified in each AuditConfig are enabled, and the
2368// exempted_members in each AuditLogConfig are exempted.
2369//
2370// Example Policy with multiple AuditConfigs:
2371//
2372// { "audit_configs": [ { "service": "allServices" "audit_log_configs":
2373// [ { "log_type": "DATA_READ", "exempted_members": [
2374// "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, {
2375// "log_type": "ADMIN_READ", } ] }, { "service":
2376// "fooservice.googleapis.com" "audit_log_configs": [ { "log_type":
2377// "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [
2378// "user:bar@gmail.com" ] } ] } ] }
2379//
2380// For fooservice, this policy enables DATA_READ, DATA_WRITE and
2381// ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ
2382// logging, and bar@gmail.com from DATA_WRITE logging.
2383type AuditConfig struct {
2384	// AuditLogConfigs: The configuration for logging of each type of
2385	// permission.
2386	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
2387
2388	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
2389
2390	// Service: Specifies a service that will be enabled for audit logging.
2391	// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
2392	// `allServices` is a special value that covers all services.
2393	Service string `json:"service,omitempty"`
2394
2395	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
2396	// unconditionally include in API requests. By default, fields with
2397	// empty values are omitted from API requests. However, any non-pointer,
2398	// non-interface field appearing in ForceSendFields will be sent to the
2399	// server regardless of whether the field is empty or not. This may be
2400	// used to include empty fields in Patch requests.
2401	ForceSendFields []string `json:"-"`
2402
2403	// NullFields is a list of field names (e.g. "AuditLogConfigs") to
2404	// include in API requests with the JSON null value. By default, fields
2405	// with empty values are omitted from API requests. However, any field
2406	// with an empty value appearing in NullFields will be sent to the
2407	// server as null. It is an error if a field in this list has a
2408	// non-empty value. This may be used to include null fields in Patch
2409	// requests.
2410	NullFields []string `json:"-"`
2411}
2412
2413func (s *AuditConfig) MarshalJSON() ([]byte, error) {
2414	type NoMethod AuditConfig
2415	raw := NoMethod(*s)
2416	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2417}
2418
2419// AuditLogConfig: Provides the configuration for logging a type of
2420// permissions. Example:
2421//
2422// { "audit_log_configs": [ { "log_type": "DATA_READ",
2423// "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type":
2424// "DATA_WRITE", } ] }
2425//
2426// This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
2427// foo@gmail.com from DATA_READ logging.
2428type AuditLogConfig struct {
2429	// ExemptedMembers: Specifies the identities that do not cause logging
2430	// for this type of permission. Follows the same format of
2431	// [Binding.members][].
2432	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
2433
2434	// LogType: The log type that this config enables.
2435	//
2436	// Possible values:
2437	//   "ADMIN_READ"
2438	//   "DATA_READ"
2439	//   "DATA_WRITE"
2440	//   "LOG_TYPE_UNSPECIFIED"
2441	LogType string `json:"logType,omitempty"`
2442
2443	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
2444	// unconditionally include in API requests. By default, fields with
2445	// empty values are omitted from API requests. However, any non-pointer,
2446	// non-interface field appearing in ForceSendFields will be sent to the
2447	// server regardless of whether the field is empty or not. This may be
2448	// used to include empty fields in Patch requests.
2449	ForceSendFields []string `json:"-"`
2450
2451	// NullFields is a list of field names (e.g. "ExemptedMembers") to
2452	// include in API requests with the JSON null value. By default, fields
2453	// with empty values are omitted from API requests. However, any field
2454	// with an empty value appearing in NullFields will be sent to the
2455	// server as null. It is an error if a field in this list has a
2456	// non-empty value. This may be used to include null fields in Patch
2457	// requests.
2458	NullFields []string `json:"-"`
2459}
2460
2461func (s *AuditLogConfig) MarshalJSON() ([]byte, error) {
2462	type NoMethod AuditLogConfig
2463	raw := NoMethod(*s)
2464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2465}
2466
2467// AuthorizationLoggingOptions: Authorization-related information used
2468// by Cloud Audit Logging.
2469type AuthorizationLoggingOptions struct {
2470	// PermissionType: The type of the permission that was checked.
2471	//
2472	// Possible values:
2473	//   "ADMIN_READ"
2474	//   "ADMIN_WRITE"
2475	//   "DATA_READ"
2476	//   "DATA_WRITE"
2477	//   "PERMISSION_TYPE_UNSPECIFIED"
2478	PermissionType string `json:"permissionType,omitempty"`
2479
2480	// ForceSendFields is a list of field names (e.g. "PermissionType") to
2481	// unconditionally include in API requests. By default, fields with
2482	// empty values are omitted from API requests. However, any non-pointer,
2483	// non-interface field appearing in ForceSendFields will be sent to the
2484	// server regardless of whether the field is empty or not. This may be
2485	// used to include empty fields in Patch requests.
2486	ForceSendFields []string `json:"-"`
2487
2488	// NullFields is a list of field names (e.g. "PermissionType") to
2489	// include in API requests with the JSON null value. By default, fields
2490	// with empty values are omitted from API requests. However, any field
2491	// with an empty value appearing in NullFields will be sent to the
2492	// server as null. It is an error if a field in this list has a
2493	// non-empty value. This may be used to include null fields in Patch
2494	// requests.
2495	NullFields []string `json:"-"`
2496}
2497
2498func (s *AuthorizationLoggingOptions) MarshalJSON() ([]byte, error) {
2499	type NoMethod AuthorizationLoggingOptions
2500	raw := NoMethod(*s)
2501	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2502}
2503
2504// Autoscaler: Represents an Autoscaler resource. Autoscalers allow you
2505// to automatically scale virtual machine instances in managed instance
2506// groups according to an autoscaling policy that you define. For more
2507// information, read Autoscaling Groups of Instances. (== resource_for
2508// beta.autoscalers ==) (== resource_for v1.autoscalers ==) (==
2509// resource_for beta.regionAutoscalers ==) (== resource_for
2510// v1.regionAutoscalers ==)
2511type Autoscaler struct {
2512	// AutoscalingPolicy: The configuration parameters for the autoscaling
2513	// algorithm. You can define one or more of the policies for an
2514	// autoscaler: cpuUtilization, customMetricUtilizations, and
2515	// loadBalancingUtilization.
2516	//
2517	// If none of these are specified, the default will be to autoscale
2518	// based on cpuUtilization to 0.6 or 60%.
2519	AutoscalingPolicy *AutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
2520
2521	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
2522	// format.
2523	CreationTimestamp string `json:"creationTimestamp,omitempty"`
2524
2525	// Description: An optional description of this resource. Provide this
2526	// property when you create the resource.
2527	Description string `json:"description,omitempty"`
2528
2529	// Id: [Output Only] The unique identifier for the resource. This
2530	// identifier is defined by the server.
2531	Id uint64 `json:"id,omitempty,string"`
2532
2533	// Kind: [Output Only] Type of the resource. Always compute#autoscaler
2534	// for autoscalers.
2535	Kind string `json:"kind,omitempty"`
2536
2537	// Name: Name of the resource. Provided by the client when the resource
2538	// is created. The name must be 1-63 characters long, and comply with
2539	// RFC1035. Specifically, the name must be 1-63 characters long and
2540	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
2541	// the first character must be a lowercase letter, and all following
2542	// characters must be a dash, lowercase letter, or digit, except the
2543	// last character, which cannot be a dash.
2544	Name string `json:"name,omitempty"`
2545
2546	// Region: [Output Only] URL of the region where the instance group
2547	// resides (for autoscalers living in regional scope).
2548	Region string `json:"region,omitempty"`
2549
2550	// SelfLink: [Output Only] Server-defined URL for the resource.
2551	SelfLink string `json:"selfLink,omitempty"`
2552
2553	// Status: [Output Only] The status of the autoscaler configuration.
2554	//
2555	// Possible values:
2556	//   "ACTIVE"
2557	//   "DELETING"
2558	//   "ERROR"
2559	//   "PENDING"
2560	Status string `json:"status,omitempty"`
2561
2562	// StatusDetails: [Output Only] Human-readable details about the current
2563	// state of the autoscaler. Read the documentation for Commonly returned
2564	// status messages for examples of status messages you might encounter.
2565	StatusDetails []*AutoscalerStatusDetails `json:"statusDetails,omitempty"`
2566
2567	// Target: URL of the managed instance group that this autoscaler will
2568	// scale.
2569	Target string `json:"target,omitempty"`
2570
2571	// Zone: [Output Only] URL of the zone where the instance group resides
2572	// (for autoscalers living in zonal scope).
2573	Zone string `json:"zone,omitempty"`
2574
2575	// ServerResponse contains the HTTP response code and headers from the
2576	// server.
2577	googleapi.ServerResponse `json:"-"`
2578
2579	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
2580	// to unconditionally include in API requests. By default, fields with
2581	// empty values are omitted from API requests. However, any non-pointer,
2582	// non-interface field appearing in ForceSendFields will be sent to the
2583	// server regardless of whether the field is empty or not. This may be
2584	// used to include empty fields in Patch requests.
2585	ForceSendFields []string `json:"-"`
2586
2587	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
2588	// include in API requests with the JSON null value. By default, fields
2589	// with empty values are omitted from API requests. However, any field
2590	// with an empty value appearing in NullFields will be sent to the
2591	// server as null. It is an error if a field in this list has a
2592	// non-empty value. This may be used to include null fields in Patch
2593	// requests.
2594	NullFields []string `json:"-"`
2595}
2596
2597func (s *Autoscaler) MarshalJSON() ([]byte, error) {
2598	type NoMethod Autoscaler
2599	raw := NoMethod(*s)
2600	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2601}
2602
2603type AutoscalerAggregatedList struct {
2604	// Id: [Output Only] Unique identifier for the resource; defined by the
2605	// server.
2606	Id string `json:"id,omitempty"`
2607
2608	// Items: A list of AutoscalersScopedList resources.
2609	Items map[string]AutoscalersScopedList `json:"items,omitempty"`
2610
2611	// Kind: [Output Only] Type of resource. Always
2612	// compute#autoscalerAggregatedList for aggregated lists of autoscalers.
2613	Kind string `json:"kind,omitempty"`
2614
2615	// NextPageToken: [Output Only] This token allows you to get the next
2616	// page of results for list requests. If the number of results is larger
2617	// than maxResults, use the nextPageToken as a value for the query
2618	// parameter pageToken in the next list request. Subsequent list
2619	// requests will have their own nextPageToken to continue paging through
2620	// the results.
2621	NextPageToken string `json:"nextPageToken,omitempty"`
2622
2623	// SelfLink: [Output Only] Server-defined URL for this resource.
2624	SelfLink string `json:"selfLink,omitempty"`
2625
2626	// Warning: [Output Only] Informational warning message.
2627	Warning *AutoscalerAggregatedListWarning `json:"warning,omitempty"`
2628
2629	// ServerResponse contains the HTTP response code and headers from the
2630	// server.
2631	googleapi.ServerResponse `json:"-"`
2632
2633	// ForceSendFields is a list of field names (e.g. "Id") to
2634	// unconditionally include in API requests. By default, fields with
2635	// empty values are omitted from API requests. However, any non-pointer,
2636	// non-interface field appearing in ForceSendFields will be sent to the
2637	// server regardless of whether the field is empty or not. This may be
2638	// used to include empty fields in Patch requests.
2639	ForceSendFields []string `json:"-"`
2640
2641	// NullFields is a list of field names (e.g. "Id") to include in API
2642	// requests with the JSON null value. By default, fields with empty
2643	// values are omitted from API requests. However, any field with an
2644	// empty value appearing in NullFields will be sent to the server as
2645	// null. It is an error if a field in this list has a non-empty value.
2646	// This may be used to include null fields in Patch requests.
2647	NullFields []string `json:"-"`
2648}
2649
2650func (s *AutoscalerAggregatedList) MarshalJSON() ([]byte, error) {
2651	type NoMethod AutoscalerAggregatedList
2652	raw := NoMethod(*s)
2653	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2654}
2655
2656// AutoscalerAggregatedListWarning: [Output Only] Informational warning
2657// message.
2658type AutoscalerAggregatedListWarning struct {
2659	// Code: [Output Only] A warning code, if applicable. For example,
2660	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2661	// the response.
2662	//
2663	// Possible values:
2664	//   "CLEANUP_FAILED"
2665	//   "DEPRECATED_RESOURCE_USED"
2666	//   "DEPRECATED_TYPE_USED"
2667	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2668	//   "EXPERIMENTAL_TYPE_USED"
2669	//   "EXTERNAL_API_WARNING"
2670	//   "FIELD_VALUE_OVERRIDEN"
2671	//   "INJECTED_KERNELS_DEPRECATED"
2672	//   "MISSING_TYPE_DEPENDENCY"
2673	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2674	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2675	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2676	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2677	//   "NEXT_HOP_NOT_RUNNING"
2678	//   "NOT_CRITICAL_ERROR"
2679	//   "NO_RESULTS_ON_PAGE"
2680	//   "REQUIRED_TOS_AGREEMENT"
2681	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2682	//   "RESOURCE_NOT_DELETED"
2683	//   "SCHEMA_VALIDATION_IGNORED"
2684	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2685	//   "UNDECLARED_PROPERTIES"
2686	//   "UNREACHABLE"
2687	Code string `json:"code,omitempty"`
2688
2689	// Data: [Output Only] Metadata about this warning in key: value format.
2690	// For example:
2691	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2692	Data []*AutoscalerAggregatedListWarningData `json:"data,omitempty"`
2693
2694	// Message: [Output Only] A human-readable description of the warning
2695	// code.
2696	Message string `json:"message,omitempty"`
2697
2698	// ForceSendFields is a list of field names (e.g. "Code") to
2699	// unconditionally include in API requests. By default, fields with
2700	// empty values are omitted from API requests. However, any non-pointer,
2701	// non-interface field appearing in ForceSendFields will be sent to the
2702	// server regardless of whether the field is empty or not. This may be
2703	// used to include empty fields in Patch requests.
2704	ForceSendFields []string `json:"-"`
2705
2706	// NullFields is a list of field names (e.g. "Code") to include in API
2707	// requests with the JSON null value. By default, fields with empty
2708	// values are omitted from API requests. However, any field with an
2709	// empty value appearing in NullFields will be sent to the server as
2710	// null. It is an error if a field in this list has a non-empty value.
2711	// This may be used to include null fields in Patch requests.
2712	NullFields []string `json:"-"`
2713}
2714
2715func (s *AutoscalerAggregatedListWarning) MarshalJSON() ([]byte, error) {
2716	type NoMethod AutoscalerAggregatedListWarning
2717	raw := NoMethod(*s)
2718	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2719}
2720
2721type AutoscalerAggregatedListWarningData struct {
2722	// Key: [Output Only] A key that provides more detail on the warning
2723	// being returned. For example, for warnings where there are no results
2724	// in a list request for a particular zone, this key might be scope and
2725	// the key value might be the zone name. Other examples might be a key
2726	// indicating a deprecated resource and a suggested replacement, or a
2727	// warning about invalid network settings (for example, if an instance
2728	// attempts to perform IP forwarding but is not enabled for IP
2729	// forwarding).
2730	Key string `json:"key,omitempty"`
2731
2732	// Value: [Output Only] A warning data value corresponding to the key.
2733	Value string `json:"value,omitempty"`
2734
2735	// ForceSendFields is a list of field names (e.g. "Key") to
2736	// unconditionally include in API requests. By default, fields with
2737	// empty values are omitted from API requests. However, any non-pointer,
2738	// non-interface field appearing in ForceSendFields will be sent to the
2739	// server regardless of whether the field is empty or not. This may be
2740	// used to include empty fields in Patch requests.
2741	ForceSendFields []string `json:"-"`
2742
2743	// NullFields is a list of field names (e.g. "Key") to include in API
2744	// requests with the JSON null value. By default, fields with empty
2745	// values are omitted from API requests. However, any field with an
2746	// empty value appearing in NullFields will be sent to the server as
2747	// null. It is an error if a field in this list has a non-empty value.
2748	// This may be used to include null fields in Patch requests.
2749	NullFields []string `json:"-"`
2750}
2751
2752func (s *AutoscalerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
2753	type NoMethod AutoscalerAggregatedListWarningData
2754	raw := NoMethod(*s)
2755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2756}
2757
2758// AutoscalerList: Contains a list of Autoscaler resources.
2759type AutoscalerList struct {
2760	// Id: [Output Only] Unique identifier for the resource; defined by the
2761	// server.
2762	Id string `json:"id,omitempty"`
2763
2764	// Items: A list of Autoscaler resources.
2765	Items []*Autoscaler `json:"items,omitempty"`
2766
2767	// Kind: [Output Only] Type of resource. Always compute#autoscalerList
2768	// for lists of autoscalers.
2769	Kind string `json:"kind,omitempty"`
2770
2771	// NextPageToken: [Output Only] This token allows you to get the next
2772	// page of results for list requests. If the number of results is larger
2773	// than maxResults, use the nextPageToken as a value for the query
2774	// parameter pageToken in the next list request. Subsequent list
2775	// requests will have their own nextPageToken to continue paging through
2776	// the results.
2777	NextPageToken string `json:"nextPageToken,omitempty"`
2778
2779	// SelfLink: [Output Only] Server-defined URL for this resource.
2780	SelfLink string `json:"selfLink,omitempty"`
2781
2782	// Warning: [Output Only] Informational warning message.
2783	Warning *AutoscalerListWarning `json:"warning,omitempty"`
2784
2785	// ServerResponse contains the HTTP response code and headers from the
2786	// server.
2787	googleapi.ServerResponse `json:"-"`
2788
2789	// ForceSendFields is a list of field names (e.g. "Id") to
2790	// unconditionally include in API requests. By default, fields with
2791	// empty values are omitted from API requests. However, any non-pointer,
2792	// non-interface field appearing in ForceSendFields will be sent to the
2793	// server regardless of whether the field is empty or not. This may be
2794	// used to include empty fields in Patch requests.
2795	ForceSendFields []string `json:"-"`
2796
2797	// NullFields is a list of field names (e.g. "Id") to include in API
2798	// requests with the JSON null value. By default, fields with empty
2799	// values are omitted from API requests. However, any field with an
2800	// empty value appearing in NullFields will be sent to the server as
2801	// null. It is an error if a field in this list has a non-empty value.
2802	// This may be used to include null fields in Patch requests.
2803	NullFields []string `json:"-"`
2804}
2805
2806func (s *AutoscalerList) MarshalJSON() ([]byte, error) {
2807	type NoMethod AutoscalerList
2808	raw := NoMethod(*s)
2809	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2810}
2811
2812// AutoscalerListWarning: [Output Only] Informational warning message.
2813type AutoscalerListWarning struct {
2814	// Code: [Output Only] A warning code, if applicable. For example,
2815	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2816	// the response.
2817	//
2818	// Possible values:
2819	//   "CLEANUP_FAILED"
2820	//   "DEPRECATED_RESOURCE_USED"
2821	//   "DEPRECATED_TYPE_USED"
2822	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2823	//   "EXPERIMENTAL_TYPE_USED"
2824	//   "EXTERNAL_API_WARNING"
2825	//   "FIELD_VALUE_OVERRIDEN"
2826	//   "INJECTED_KERNELS_DEPRECATED"
2827	//   "MISSING_TYPE_DEPENDENCY"
2828	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2829	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2830	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2831	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2832	//   "NEXT_HOP_NOT_RUNNING"
2833	//   "NOT_CRITICAL_ERROR"
2834	//   "NO_RESULTS_ON_PAGE"
2835	//   "REQUIRED_TOS_AGREEMENT"
2836	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2837	//   "RESOURCE_NOT_DELETED"
2838	//   "SCHEMA_VALIDATION_IGNORED"
2839	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2840	//   "UNDECLARED_PROPERTIES"
2841	//   "UNREACHABLE"
2842	Code string `json:"code,omitempty"`
2843
2844	// Data: [Output Only] Metadata about this warning in key: value format.
2845	// For example:
2846	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2847	Data []*AutoscalerListWarningData `json:"data,omitempty"`
2848
2849	// Message: [Output Only] A human-readable description of the warning
2850	// code.
2851	Message string `json:"message,omitempty"`
2852
2853	// ForceSendFields is a list of field names (e.g. "Code") to
2854	// unconditionally include in API requests. By default, fields with
2855	// empty values are omitted from API requests. However, any non-pointer,
2856	// non-interface field appearing in ForceSendFields will be sent to the
2857	// server regardless of whether the field is empty or not. This may be
2858	// used to include empty fields in Patch requests.
2859	ForceSendFields []string `json:"-"`
2860
2861	// NullFields is a list of field names (e.g. "Code") to include in API
2862	// requests with the JSON null value. By default, fields with empty
2863	// values are omitted from API requests. However, any field with an
2864	// empty value appearing in NullFields will be sent to the server as
2865	// null. It is an error if a field in this list has a non-empty value.
2866	// This may be used to include null fields in Patch requests.
2867	NullFields []string `json:"-"`
2868}
2869
2870func (s *AutoscalerListWarning) MarshalJSON() ([]byte, error) {
2871	type NoMethod AutoscalerListWarning
2872	raw := NoMethod(*s)
2873	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2874}
2875
2876type AutoscalerListWarningData struct {
2877	// Key: [Output Only] A key that provides more detail on the warning
2878	// being returned. For example, for warnings where there are no results
2879	// in a list request for a particular zone, this key might be scope and
2880	// the key value might be the zone name. Other examples might be a key
2881	// indicating a deprecated resource and a suggested replacement, or a
2882	// warning about invalid network settings (for example, if an instance
2883	// attempts to perform IP forwarding but is not enabled for IP
2884	// forwarding).
2885	Key string `json:"key,omitempty"`
2886
2887	// Value: [Output Only] A warning data value corresponding to the key.
2888	Value string `json:"value,omitempty"`
2889
2890	// ForceSendFields is a list of field names (e.g. "Key") to
2891	// unconditionally include in API requests. By default, fields with
2892	// empty values are omitted from API requests. However, any non-pointer,
2893	// non-interface field appearing in ForceSendFields will be sent to the
2894	// server regardless of whether the field is empty or not. This may be
2895	// used to include empty fields in Patch requests.
2896	ForceSendFields []string `json:"-"`
2897
2898	// NullFields is a list of field names (e.g. "Key") to include in API
2899	// requests with the JSON null value. By default, fields with empty
2900	// values are omitted from API requests. However, any field with an
2901	// empty value appearing in NullFields will be sent to the server as
2902	// null. It is an error if a field in this list has a non-empty value.
2903	// This may be used to include null fields in Patch requests.
2904	NullFields []string `json:"-"`
2905}
2906
2907func (s *AutoscalerListWarningData) MarshalJSON() ([]byte, error) {
2908	type NoMethod AutoscalerListWarningData
2909	raw := NoMethod(*s)
2910	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2911}
2912
2913type AutoscalerStatusDetails struct {
2914	// Message: The status message.
2915	Message string `json:"message,omitempty"`
2916
2917	// Type: The type of error returned.
2918	//
2919	// Possible values:
2920	//   "ALL_INSTANCES_UNHEALTHY"
2921	//   "BACKEND_SERVICE_DOES_NOT_EXIST"
2922	//   "CAPPED_AT_MAX_NUM_REPLICAS"
2923	//   "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE"
2924	//   "CUSTOM_METRIC_INVALID"
2925	//   "MIN_EQUALS_MAX"
2926	//   "MISSING_CUSTOM_METRIC_DATA_POINTS"
2927	//   "MISSING_LOAD_BALANCING_DATA_POINTS"
2928	//   "MORE_THAN_ONE_BACKEND_SERVICE"
2929	//   "NOT_ENOUGH_QUOTA_AVAILABLE"
2930	//   "REGION_RESOURCE_STOCKOUT"
2931	//   "SCALING_TARGET_DOES_NOT_EXIST"
2932	//   "UNKNOWN"
2933	//   "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION"
2934	//   "ZONE_RESOURCE_STOCKOUT"
2935	Type string `json:"type,omitempty"`
2936
2937	// ForceSendFields is a list of field names (e.g. "Message") to
2938	// unconditionally include in API requests. By default, fields with
2939	// empty values are omitted from API requests. However, any non-pointer,
2940	// non-interface field appearing in ForceSendFields will be sent to the
2941	// server regardless of whether the field is empty or not. This may be
2942	// used to include empty fields in Patch requests.
2943	ForceSendFields []string `json:"-"`
2944
2945	// NullFields is a list of field names (e.g. "Message") to include in
2946	// API requests with the JSON null value. By default, fields with empty
2947	// values are omitted from API requests. However, any field with an
2948	// empty value appearing in NullFields will be sent to the server as
2949	// null. It is an error if a field in this list has a non-empty value.
2950	// This may be used to include null fields in Patch requests.
2951	NullFields []string `json:"-"`
2952}
2953
2954func (s *AutoscalerStatusDetails) MarshalJSON() ([]byte, error) {
2955	type NoMethod AutoscalerStatusDetails
2956	raw := NoMethod(*s)
2957	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2958}
2959
2960type AutoscalersScopedList struct {
2961	// Autoscalers: [Output Only] A list of autoscalers contained in this
2962	// scope.
2963	Autoscalers []*Autoscaler `json:"autoscalers,omitempty"`
2964
2965	// Warning: [Output Only] Informational warning which replaces the list
2966	// of autoscalers when the list is empty.
2967	Warning *AutoscalersScopedListWarning `json:"warning,omitempty"`
2968
2969	// ForceSendFields is a list of field names (e.g. "Autoscalers") to
2970	// unconditionally include in API requests. By default, fields with
2971	// empty values are omitted from API requests. However, any non-pointer,
2972	// non-interface field appearing in ForceSendFields will be sent to the
2973	// server regardless of whether the field is empty or not. This may be
2974	// used to include empty fields in Patch requests.
2975	ForceSendFields []string `json:"-"`
2976
2977	// NullFields is a list of field names (e.g. "Autoscalers") to include
2978	// in API requests with the JSON null value. By default, fields with
2979	// empty values are omitted from API requests. However, any field with
2980	// an empty value appearing in NullFields will be sent to the server as
2981	// null. It is an error if a field in this list has a non-empty value.
2982	// This may be used to include null fields in Patch requests.
2983	NullFields []string `json:"-"`
2984}
2985
2986func (s *AutoscalersScopedList) MarshalJSON() ([]byte, error) {
2987	type NoMethod AutoscalersScopedList
2988	raw := NoMethod(*s)
2989	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2990}
2991
2992// AutoscalersScopedListWarning: [Output Only] Informational warning
2993// which replaces the list of autoscalers when the list is empty.
2994type AutoscalersScopedListWarning struct {
2995	// Code: [Output Only] A warning code, if applicable. For example,
2996	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2997	// the response.
2998	//
2999	// Possible values:
3000	//   "CLEANUP_FAILED"
3001	//   "DEPRECATED_RESOURCE_USED"
3002	//   "DEPRECATED_TYPE_USED"
3003	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3004	//   "EXPERIMENTAL_TYPE_USED"
3005	//   "EXTERNAL_API_WARNING"
3006	//   "FIELD_VALUE_OVERRIDEN"
3007	//   "INJECTED_KERNELS_DEPRECATED"
3008	//   "MISSING_TYPE_DEPENDENCY"
3009	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3010	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3011	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3012	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3013	//   "NEXT_HOP_NOT_RUNNING"
3014	//   "NOT_CRITICAL_ERROR"
3015	//   "NO_RESULTS_ON_PAGE"
3016	//   "REQUIRED_TOS_AGREEMENT"
3017	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3018	//   "RESOURCE_NOT_DELETED"
3019	//   "SCHEMA_VALIDATION_IGNORED"
3020	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3021	//   "UNDECLARED_PROPERTIES"
3022	//   "UNREACHABLE"
3023	Code string `json:"code,omitempty"`
3024
3025	// Data: [Output Only] Metadata about this warning in key: value format.
3026	// For example:
3027	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3028	Data []*AutoscalersScopedListWarningData `json:"data,omitempty"`
3029
3030	// Message: [Output Only] A human-readable description of the warning
3031	// code.
3032	Message string `json:"message,omitempty"`
3033
3034	// ForceSendFields is a list of field names (e.g. "Code") to
3035	// unconditionally include in API requests. By default, fields with
3036	// empty values are omitted from API requests. However, any non-pointer,
3037	// non-interface field appearing in ForceSendFields will be sent to the
3038	// server regardless of whether the field is empty or not. This may be
3039	// used to include empty fields in Patch requests.
3040	ForceSendFields []string `json:"-"`
3041
3042	// NullFields is a list of field names (e.g. "Code") to include in API
3043	// requests with the JSON null value. By default, fields with empty
3044	// values are omitted from API requests. However, any field with an
3045	// empty value appearing in NullFields will be sent to the server as
3046	// null. It is an error if a field in this list has a non-empty value.
3047	// This may be used to include null fields in Patch requests.
3048	NullFields []string `json:"-"`
3049}
3050
3051func (s *AutoscalersScopedListWarning) MarshalJSON() ([]byte, error) {
3052	type NoMethod AutoscalersScopedListWarning
3053	raw := NoMethod(*s)
3054	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3055}
3056
3057type AutoscalersScopedListWarningData struct {
3058	// Key: [Output Only] A key that provides more detail on the warning
3059	// being returned. For example, for warnings where there are no results
3060	// in a list request for a particular zone, this key might be scope and
3061	// the key value might be the zone name. Other examples might be a key
3062	// indicating a deprecated resource and a suggested replacement, or a
3063	// warning about invalid network settings (for example, if an instance
3064	// attempts to perform IP forwarding but is not enabled for IP
3065	// forwarding).
3066	Key string `json:"key,omitempty"`
3067
3068	// Value: [Output Only] A warning data value corresponding to the key.
3069	Value string `json:"value,omitempty"`
3070
3071	// ForceSendFields is a list of field names (e.g. "Key") to
3072	// unconditionally include in API requests. By default, fields with
3073	// empty values are omitted from API requests. However, any non-pointer,
3074	// non-interface field appearing in ForceSendFields will be sent to the
3075	// server regardless of whether the field is empty or not. This may be
3076	// used to include empty fields in Patch requests.
3077	ForceSendFields []string `json:"-"`
3078
3079	// NullFields is a list of field names (e.g. "Key") to include in API
3080	// requests with the JSON null value. By default, fields with empty
3081	// values are omitted from API requests. However, any field with an
3082	// empty value appearing in NullFields will be sent to the server as
3083	// null. It is an error if a field in this list has a non-empty value.
3084	// This may be used to include null fields in Patch requests.
3085	NullFields []string `json:"-"`
3086}
3087
3088func (s *AutoscalersScopedListWarningData) MarshalJSON() ([]byte, error) {
3089	type NoMethod AutoscalersScopedListWarningData
3090	raw := NoMethod(*s)
3091	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3092}
3093
3094// AutoscalingPolicy: Cloud Autoscaler policy.
3095type AutoscalingPolicy struct {
3096	// CoolDownPeriodSec: The number of seconds that the autoscaler should
3097	// wait before it starts collecting information from a new instance.
3098	// This prevents the autoscaler from collecting information when the
3099	// instance is initializing, during which the collected usage would not
3100	// be reliable. The default time autoscaler waits is 60
3101	// seconds.
3102	//
3103	// Virtual machine initialization times might vary because of numerous
3104	// factors. We recommend that you test how long an instance may take to
3105	// initialize. To do this, create an instance and time the startup
3106	// process.
3107	CoolDownPeriodSec int64 `json:"coolDownPeriodSec,omitempty"`
3108
3109	// CpuUtilization: Defines the CPU utilization policy that allows the
3110	// autoscaler to scale based on the average CPU utilization of a managed
3111	// instance group.
3112	CpuUtilization *AutoscalingPolicyCpuUtilization `json:"cpuUtilization,omitempty"`
3113
3114	// CustomMetricUtilizations: Configuration parameters of autoscaling
3115	// based on a custom metric.
3116	CustomMetricUtilizations []*AutoscalingPolicyCustomMetricUtilization `json:"customMetricUtilizations,omitempty"`
3117
3118	// LoadBalancingUtilization: Configuration parameters of autoscaling
3119	// based on load balancer.
3120	LoadBalancingUtilization *AutoscalingPolicyLoadBalancingUtilization `json:"loadBalancingUtilization,omitempty"`
3121
3122	// MaxNumReplicas: The maximum number of instances that the autoscaler
3123	// can scale up to. This is required when creating or updating an
3124	// autoscaler. The maximum number of replicas should not be lower than
3125	// minimal number of replicas.
3126	MaxNumReplicas int64 `json:"maxNumReplicas,omitempty"`
3127
3128	// MinNumReplicas: The minimum number of replicas that the autoscaler
3129	// can scale down to. This cannot be less than 0. If not provided,
3130	// autoscaler will choose a default value depending on maximum number of
3131	// instances allowed.
3132	MinNumReplicas int64 `json:"minNumReplicas,omitempty"`
3133
3134	// ForceSendFields is a list of field names (e.g. "CoolDownPeriodSec")
3135	// to unconditionally include in API requests. By default, fields with
3136	// empty values are omitted from API requests. However, any non-pointer,
3137	// non-interface field appearing in ForceSendFields will be sent to the
3138	// server regardless of whether the field is empty or not. This may be
3139	// used to include empty fields in Patch requests.
3140	ForceSendFields []string `json:"-"`
3141
3142	// NullFields is a list of field names (e.g. "CoolDownPeriodSec") to
3143	// include in API requests with the JSON null value. By default, fields
3144	// with empty values are omitted from API requests. However, any field
3145	// with an empty value appearing in NullFields will be sent to the
3146	// server as null. It is an error if a field in this list has a
3147	// non-empty value. This may be used to include null fields in Patch
3148	// requests.
3149	NullFields []string `json:"-"`
3150}
3151
3152func (s *AutoscalingPolicy) MarshalJSON() ([]byte, error) {
3153	type NoMethod AutoscalingPolicy
3154	raw := NoMethod(*s)
3155	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3156}
3157
3158// AutoscalingPolicyCpuUtilization: CPU utilization policy.
3159type AutoscalingPolicyCpuUtilization struct {
3160	// UtilizationTarget: The target CPU utilization that the autoscaler
3161	// should maintain. Must be a float value in the range (0, 1]. If not
3162	// specified, the default is 0.6.
3163	//
3164	// If the CPU level is below the target utilization, the autoscaler
3165	// scales down the number of instances until it reaches the minimum
3166	// number of instances you specified or until the average CPU of your
3167	// instances reaches the target utilization.
3168	//
3169	// If the average CPU is above the target utilization, the autoscaler
3170	// scales up until it reaches the maximum number of instances you
3171	// specified or until the average utilization reaches the target
3172	// utilization.
3173	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3174
3175	// ForceSendFields is a list of field names (e.g. "UtilizationTarget")
3176	// to unconditionally include in API requests. By default, fields with
3177	// empty values are omitted from API requests. However, any non-pointer,
3178	// non-interface field appearing in ForceSendFields will be sent to the
3179	// server regardless of whether the field is empty or not. This may be
3180	// used to include empty fields in Patch requests.
3181	ForceSendFields []string `json:"-"`
3182
3183	// NullFields is a list of field names (e.g. "UtilizationTarget") to
3184	// include in API requests with the JSON null value. By default, fields
3185	// with empty values are omitted from API requests. However, any field
3186	// with an empty value appearing in NullFields will be sent to the
3187	// server as null. It is an error if a field in this list has a
3188	// non-empty value. This may be used to include null fields in Patch
3189	// requests.
3190	NullFields []string `json:"-"`
3191}
3192
3193func (s *AutoscalingPolicyCpuUtilization) MarshalJSON() ([]byte, error) {
3194	type NoMethod AutoscalingPolicyCpuUtilization
3195	raw := NoMethod(*s)
3196	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3197}
3198
3199func (s *AutoscalingPolicyCpuUtilization) UnmarshalJSON(data []byte) error {
3200	type NoMethod AutoscalingPolicyCpuUtilization
3201	var s1 struct {
3202		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
3203		*NoMethod
3204	}
3205	s1.NoMethod = (*NoMethod)(s)
3206	if err := json.Unmarshal(data, &s1); err != nil {
3207		return err
3208	}
3209	s.UtilizationTarget = float64(s1.UtilizationTarget)
3210	return nil
3211}
3212
3213// AutoscalingPolicyCustomMetricUtilization: Custom utilization metric
3214// policy.
3215type AutoscalingPolicyCustomMetricUtilization struct {
3216	// Metric: The identifier (type) of the Stackdriver Monitoring metric.
3217	// The metric cannot have negative values.
3218	//
3219	// The metric must have a value type of INT64 or DOUBLE.
3220	Metric string `json:"metric,omitempty"`
3221
3222	// UtilizationTarget: The target value of the metric that autoscaler
3223	// should maintain. This must be a positive value. A utilization metric
3224	// scales number of virtual machines handling requests to increase or
3225	// decrease proportionally to the metric.
3226	//
3227	// For example, a good metric to use as a utilization_target is
3228	// compute.googleapis.com/instance/network/received_bytes_count. The
3229	// autoscaler will work to keep this value constant for each of the
3230	// instances.
3231	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3232
3233	// UtilizationTargetType: Defines how target utilization value is
3234	// expressed for a Stackdriver Monitoring metric. Either GAUGE,
3235	// DELTA_PER_SECOND, or DELTA_PER_MINUTE.
3236	//
3237	// Possible values:
3238	//   "DELTA_PER_MINUTE"
3239	//   "DELTA_PER_SECOND"
3240	//   "GAUGE"
3241	UtilizationTargetType string `json:"utilizationTargetType,omitempty"`
3242
3243	// ForceSendFields is a list of field names (e.g. "Metric") to
3244	// unconditionally include in API requests. By default, fields with
3245	// empty values are omitted from API requests. However, any non-pointer,
3246	// non-interface field appearing in ForceSendFields will be sent to the
3247	// server regardless of whether the field is empty or not. This may be
3248	// used to include empty fields in Patch requests.
3249	ForceSendFields []string `json:"-"`
3250
3251	// NullFields is a list of field names (e.g. "Metric") to include in API
3252	// requests with the JSON null value. By default, fields with empty
3253	// values are omitted from API requests. However, any field with an
3254	// empty value appearing in NullFields will be sent to the server as
3255	// null. It is an error if a field in this list has a non-empty value.
3256	// This may be used to include null fields in Patch requests.
3257	NullFields []string `json:"-"`
3258}
3259
3260func (s *AutoscalingPolicyCustomMetricUtilization) MarshalJSON() ([]byte, error) {
3261	type NoMethod AutoscalingPolicyCustomMetricUtilization
3262	raw := NoMethod(*s)
3263	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3264}
3265
3266func (s *AutoscalingPolicyCustomMetricUtilization) UnmarshalJSON(data []byte) error {
3267	type NoMethod AutoscalingPolicyCustomMetricUtilization
3268	var s1 struct {
3269		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
3270		*NoMethod
3271	}
3272	s1.NoMethod = (*NoMethod)(s)
3273	if err := json.Unmarshal(data, &s1); err != nil {
3274		return err
3275	}
3276	s.UtilizationTarget = float64(s1.UtilizationTarget)
3277	return nil
3278}
3279
3280// AutoscalingPolicyLoadBalancingUtilization: Configuration parameters
3281// of autoscaling based on load balancing.
3282type AutoscalingPolicyLoadBalancingUtilization struct {
3283	// UtilizationTarget: Fraction of backend capacity utilization (set in
3284	// HTTP(S) load balancing configuration) that autoscaler should
3285	// maintain. Must be a positive float value. If not defined, the default
3286	// is 0.8.
3287	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3288
3289	// ForceSendFields is a list of field names (e.g. "UtilizationTarget")
3290	// to unconditionally include in API requests. By default, fields with
3291	// empty values are omitted from API requests. However, any non-pointer,
3292	// non-interface field appearing in ForceSendFields will be sent to the
3293	// server regardless of whether the field is empty or not. This may be
3294	// used to include empty fields in Patch requests.
3295	ForceSendFields []string `json:"-"`
3296
3297	// NullFields is a list of field names (e.g. "UtilizationTarget") to
3298	// include in API requests with the JSON null value. By default, fields
3299	// with empty values are omitted from API requests. However, any field
3300	// with an empty value appearing in NullFields will be sent to the
3301	// server as null. It is an error if a field in this list has a
3302	// non-empty value. This may be used to include null fields in Patch
3303	// requests.
3304	NullFields []string `json:"-"`
3305}
3306
3307func (s *AutoscalingPolicyLoadBalancingUtilization) MarshalJSON() ([]byte, error) {
3308	type NoMethod AutoscalingPolicyLoadBalancingUtilization
3309	raw := NoMethod(*s)
3310	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3311}
3312
3313func (s *AutoscalingPolicyLoadBalancingUtilization) UnmarshalJSON(data []byte) error {
3314	type NoMethod AutoscalingPolicyLoadBalancingUtilization
3315	var s1 struct {
3316		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
3317		*NoMethod
3318	}
3319	s1.NoMethod = (*NoMethod)(s)
3320	if err := json.Unmarshal(data, &s1); err != nil {
3321		return err
3322	}
3323	s.UtilizationTarget = float64(s1.UtilizationTarget)
3324	return nil
3325}
3326
3327// Backend: Message containing information of one individual backend.
3328type Backend struct {
3329	// BalancingMode: Specifies the balancing mode for this backend. For
3330	// global HTTP(S) or TCP/SSL load balancing, the default is UTILIZATION.
3331	// Valid values are UTILIZATION, RATE (for HTTP(S)) and CONNECTION (for
3332	// TCP/SSL).
3333	//
3334	// For Internal Load Balancing, the default and only supported mode is
3335	// CONNECTION.
3336	//
3337	// Possible values:
3338	//   "CONNECTION"
3339	//   "RATE"
3340	//   "UTILIZATION"
3341	BalancingMode string `json:"balancingMode,omitempty"`
3342
3343	// CapacityScaler: A multiplier applied to the group's maximum servicing
3344	// capacity (based on UTILIZATION, RATE or CONNECTION). Default value is
3345	// 1, which means the group will serve up to 100% of its configured
3346	// capacity (depending on balancingMode). A setting of 0 means the group
3347	// is completely drained, offering 0% of its available Capacity. Valid
3348	// range is [0.0,1.0].
3349	//
3350	// This cannot be used for internal load balancing.
3351	CapacityScaler float64 `json:"capacityScaler,omitempty"`
3352
3353	// Description: An optional description of this resource. Provide this
3354	// property when you create the resource.
3355	Description string `json:"description,omitempty"`
3356
3357	// Group: The fully-qualified URL of an Instance Group or Network
3358	// Endpoint Group resource. In case of instance group this defines the
3359	// list of instances that serve traffic. Member virtual machine
3360	// instances from each instance group must live in the same zone as the
3361	// instance group itself. No two backends in a backend service are
3362	// allowed to use same Instance Group resource.
3363	//
3364	// For Network Endpoint Groups this defines list of endpoints. All
3365	// endpoints of Network Endpoint Group must be hosted on instances
3366	// located in the same zone as the Network Endpoint Group.
3367	//
3368	// Backend service can not contain mix of Instance Group and Network
3369	// Endpoint Group backends.
3370	//
3371	// Note that you must specify an Instance Group or Network Endpoint
3372	// Group resource using the fully-qualified URL, rather than a partial
3373	// URL.
3374	//
3375	// When the BackendService has load balancing scheme INTERNAL, the
3376	// instance group must be within the same region as the BackendService.
3377	// Network Endpoint Groups are not supported for INTERNAL load balancing
3378	// scheme.
3379	Group string `json:"group,omitempty"`
3380
3381	// MaxConnections: The max number of simultaneous connections for the
3382	// group. Can be used with either CONNECTION or UTILIZATION balancing
3383	// modes. For CONNECTION mode, either maxConnections or
3384	// maxConnectionsPerInstance must be set.
3385	//
3386	// This cannot be used for internal load balancing.
3387	MaxConnections int64 `json:"maxConnections,omitempty"`
3388
3389	// MaxConnectionsPerEndpoint: The max number of simultaneous connections
3390	// that a single backend network endpoint can handle. This is used to
3391	// calculate the capacity of the group. Can be used in either CONNECTION
3392	// or UTILIZATION balancing modes. For CONNECTION mode, either
3393	// maxConnections or maxConnectionsPerEndpoint must be set.
3394	//
3395	// This cannot be used for internal load balancing.
3396	MaxConnectionsPerEndpoint int64 `json:"maxConnectionsPerEndpoint,omitempty"`
3397
3398	// MaxConnectionsPerInstance: The max number of simultaneous connections
3399	// that a single backend instance can handle. This is used to calculate
3400	// the capacity of the group. Can be used in either CONNECTION or
3401	// UTILIZATION balancing modes. For CONNECTION mode, either
3402	// maxConnections or maxConnectionsPerInstance must be set.
3403	//
3404	// This cannot be used for internal load balancing.
3405	MaxConnectionsPerInstance int64 `json:"maxConnectionsPerInstance,omitempty"`
3406
3407	// MaxRate: The max requests per second (RPS) of the group. Can be used
3408	// with either RATE or UTILIZATION balancing modes, but required if RATE
3409	// mode. For RATE mode, either maxRate or maxRatePerInstance must be
3410	// set.
3411	//
3412	// This cannot be used for internal load balancing.
3413	MaxRate int64 `json:"maxRate,omitempty"`
3414
3415	// MaxRatePerEndpoint: The max requests per second (RPS) that a single
3416	// backend network endpoint can handle. This is used to calculate the
3417	// capacity of the group. Can be used in either balancing mode. For RATE
3418	// mode, either maxRate or maxRatePerEndpoint must be set.
3419	//
3420	// This cannot be used for internal load balancing.
3421	MaxRatePerEndpoint float64 `json:"maxRatePerEndpoint,omitempty"`
3422
3423	// MaxRatePerInstance: The max requests per second (RPS) that a single
3424	// backend instance can handle. This is used to calculate the capacity
3425	// of the group. Can be used in either balancing mode. For RATE mode,
3426	// either maxRate or maxRatePerInstance must be set.
3427	//
3428	// This cannot be used for internal load balancing.
3429	MaxRatePerInstance float64 `json:"maxRatePerInstance,omitempty"`
3430
3431	// MaxUtilization: Used when balancingMode is UTILIZATION. This ratio
3432	// defines the CPU utilization target for the group. The default is 0.8.
3433	// Valid range is [0.0, 1.0].
3434	//
3435	// This cannot be used for internal load balancing.
3436	MaxUtilization float64 `json:"maxUtilization,omitempty"`
3437
3438	// ForceSendFields is a list of field names (e.g. "BalancingMode") to
3439	// unconditionally include in API requests. By default, fields with
3440	// empty values are omitted from API requests. However, any non-pointer,
3441	// non-interface field appearing in ForceSendFields will be sent to the
3442	// server regardless of whether the field is empty or not. This may be
3443	// used to include empty fields in Patch requests.
3444	ForceSendFields []string `json:"-"`
3445
3446	// NullFields is a list of field names (e.g. "BalancingMode") to include
3447	// in API requests with the JSON null value. By default, fields with
3448	// empty values are omitted from API requests. However, any field with
3449	// an empty value appearing in NullFields will be sent to the server as
3450	// null. It is an error if a field in this list has a non-empty value.
3451	// This may be used to include null fields in Patch requests.
3452	NullFields []string `json:"-"`
3453}
3454
3455func (s *Backend) MarshalJSON() ([]byte, error) {
3456	type NoMethod Backend
3457	raw := NoMethod(*s)
3458	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3459}
3460
3461func (s *Backend) UnmarshalJSON(data []byte) error {
3462	type NoMethod Backend
3463	var s1 struct {
3464		CapacityScaler     gensupport.JSONFloat64 `json:"capacityScaler"`
3465		MaxRatePerEndpoint gensupport.JSONFloat64 `json:"maxRatePerEndpoint"`
3466		MaxRatePerInstance gensupport.JSONFloat64 `json:"maxRatePerInstance"`
3467		MaxUtilization     gensupport.JSONFloat64 `json:"maxUtilization"`
3468		*NoMethod
3469	}
3470	s1.NoMethod = (*NoMethod)(s)
3471	if err := json.Unmarshal(data, &s1); err != nil {
3472		return err
3473	}
3474	s.CapacityScaler = float64(s1.CapacityScaler)
3475	s.MaxRatePerEndpoint = float64(s1.MaxRatePerEndpoint)
3476	s.MaxRatePerInstance = float64(s1.MaxRatePerInstance)
3477	s.MaxUtilization = float64(s1.MaxUtilization)
3478	return nil
3479}
3480
3481// BackendBucket: A BackendBucket resource. This resource defines a
3482// Cloud Storage bucket.
3483type BackendBucket struct {
3484	// BucketName: Cloud Storage bucket name.
3485	BucketName string `json:"bucketName,omitempty"`
3486
3487	// CdnPolicy: Cloud CDN configuration for this BackendBucket.
3488	CdnPolicy *BackendBucketCdnPolicy `json:"cdnPolicy,omitempty"`
3489
3490	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
3491	// format.
3492	CreationTimestamp string `json:"creationTimestamp,omitempty"`
3493
3494	// Description: An optional textual description of the resource;
3495	// provided by the client when the resource is created.
3496	Description string `json:"description,omitempty"`
3497
3498	// EnableCdn: If true, enable Cloud CDN for this BackendBucket.
3499	EnableCdn bool `json:"enableCdn,omitempty"`
3500
3501	// Id: [Output Only] Unique identifier for the resource; defined by the
3502	// server.
3503	Id uint64 `json:"id,omitempty,string"`
3504
3505	// Kind: Type of the resource.
3506	Kind string `json:"kind,omitempty"`
3507
3508	// Name: Name of the resource. Provided by the client when the resource
3509	// is created. The name must be 1-63 characters long, and comply with
3510	// RFC1035. Specifically, the name must be 1-63 characters long and
3511	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
3512	// the first character must be a lowercase letter, and all following
3513	// characters must be a dash, lowercase letter, or digit, except the
3514	// last character, which cannot be a dash.
3515	Name string `json:"name,omitempty"`
3516
3517	// SelfLink: [Output Only] Server-defined URL for the resource.
3518	SelfLink string `json:"selfLink,omitempty"`
3519
3520	// ServerResponse contains the HTTP response code and headers from the
3521	// server.
3522	googleapi.ServerResponse `json:"-"`
3523
3524	// ForceSendFields is a list of field names (e.g. "BucketName") to
3525	// unconditionally include in API requests. By default, fields with
3526	// empty values are omitted from API requests. However, any non-pointer,
3527	// non-interface field appearing in ForceSendFields will be sent to the
3528	// server regardless of whether the field is empty or not. This may be
3529	// used to include empty fields in Patch requests.
3530	ForceSendFields []string `json:"-"`
3531
3532	// NullFields is a list of field names (e.g. "BucketName") to include in
3533	// API requests with the JSON null value. By default, fields with empty
3534	// values are omitted from API requests. However, any field with an
3535	// empty value appearing in NullFields will be sent to the server as
3536	// null. It is an error if a field in this list has a non-empty value.
3537	// This may be used to include null fields in Patch requests.
3538	NullFields []string `json:"-"`
3539}
3540
3541func (s *BackendBucket) MarshalJSON() ([]byte, error) {
3542	type NoMethod BackendBucket
3543	raw := NoMethod(*s)
3544	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3545}
3546
3547// BackendBucketCdnPolicy: Message containing Cloud CDN configuration
3548// for a backend bucket.
3549type BackendBucketCdnPolicy struct {
3550	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
3551	// signed URL request will be considered fresh. After this time period,
3552	// the response will be revalidated before being served. Defaults to 1hr
3553	// (3600s). When serving responses to signed URL requests, Cloud CDN
3554	// will internally behave as though all responses from this backend had
3555	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
3556	// existing Cache-Control header. The actual headers served in responses
3557	// will not be altered.
3558	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
3559
3560	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
3561	// request URLs.
3562	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
3563
3564	// ForceSendFields is a list of field names (e.g.
3565	// "SignedUrlCacheMaxAgeSec") to unconditionally include in API
3566	// requests. By default, fields with empty values are omitted from API
3567	// requests. However, any non-pointer, non-interface field appearing in
3568	// ForceSendFields will be sent to the server regardless of whether the
3569	// field is empty or not. This may be used to include empty fields in
3570	// Patch requests.
3571	ForceSendFields []string `json:"-"`
3572
3573	// NullFields is a list of field names (e.g. "SignedUrlCacheMaxAgeSec")
3574	// to include in API requests with the JSON null value. By default,
3575	// fields with empty values are omitted from API requests. However, any
3576	// field with an empty value appearing in NullFields will be sent to the
3577	// server as null. It is an error if a field in this list has a
3578	// non-empty value. This may be used to include null fields in Patch
3579	// requests.
3580	NullFields []string `json:"-"`
3581}
3582
3583func (s *BackendBucketCdnPolicy) MarshalJSON() ([]byte, error) {
3584	type NoMethod BackendBucketCdnPolicy
3585	raw := NoMethod(*s)
3586	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3587}
3588
3589// BackendBucketList: Contains a list of BackendBucket resources.
3590type BackendBucketList struct {
3591	// Id: [Output Only] Unique identifier for the resource; defined by the
3592	// server.
3593	Id string `json:"id,omitempty"`
3594
3595	// Items: A list of BackendBucket resources.
3596	Items []*BackendBucket `json:"items,omitempty"`
3597
3598	// Kind: Type of resource.
3599	Kind string `json:"kind,omitempty"`
3600
3601	// NextPageToken: [Output Only] This token allows you to get the next
3602	// page of results for list requests. If the number of results is larger
3603	// than maxResults, use the nextPageToken as a value for the query
3604	// parameter pageToken in the next list request. Subsequent list
3605	// requests will have their own nextPageToken to continue paging through
3606	// the results.
3607	NextPageToken string `json:"nextPageToken,omitempty"`
3608
3609	// SelfLink: [Output Only] Server-defined URL for this resource.
3610	SelfLink string `json:"selfLink,omitempty"`
3611
3612	// Warning: [Output Only] Informational warning message.
3613	Warning *BackendBucketListWarning `json:"warning,omitempty"`
3614
3615	// ServerResponse contains the HTTP response code and headers from the
3616	// server.
3617	googleapi.ServerResponse `json:"-"`
3618
3619	// ForceSendFields is a list of field names (e.g. "Id") to
3620	// unconditionally include in API requests. By default, fields with
3621	// empty values are omitted from API requests. However, any non-pointer,
3622	// non-interface field appearing in ForceSendFields will be sent to the
3623	// server regardless of whether the field is empty or not. This may be
3624	// used to include empty fields in Patch requests.
3625	ForceSendFields []string `json:"-"`
3626
3627	// NullFields is a list of field names (e.g. "Id") to include in API
3628	// requests with the JSON null value. By default, fields with empty
3629	// values are omitted from API requests. However, any field with an
3630	// empty value appearing in NullFields will be sent to the server as
3631	// null. It is an error if a field in this list has a non-empty value.
3632	// This may be used to include null fields in Patch requests.
3633	NullFields []string `json:"-"`
3634}
3635
3636func (s *BackendBucketList) MarshalJSON() ([]byte, error) {
3637	type NoMethod BackendBucketList
3638	raw := NoMethod(*s)
3639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3640}
3641
3642// BackendBucketListWarning: [Output Only] Informational warning
3643// message.
3644type BackendBucketListWarning struct {
3645	// Code: [Output Only] A warning code, if applicable. For example,
3646	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3647	// the response.
3648	//
3649	// Possible values:
3650	//   "CLEANUP_FAILED"
3651	//   "DEPRECATED_RESOURCE_USED"
3652	//   "DEPRECATED_TYPE_USED"
3653	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3654	//   "EXPERIMENTAL_TYPE_USED"
3655	//   "EXTERNAL_API_WARNING"
3656	//   "FIELD_VALUE_OVERRIDEN"
3657	//   "INJECTED_KERNELS_DEPRECATED"
3658	//   "MISSING_TYPE_DEPENDENCY"
3659	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3660	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3661	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3662	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3663	//   "NEXT_HOP_NOT_RUNNING"
3664	//   "NOT_CRITICAL_ERROR"
3665	//   "NO_RESULTS_ON_PAGE"
3666	//   "REQUIRED_TOS_AGREEMENT"
3667	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3668	//   "RESOURCE_NOT_DELETED"
3669	//   "SCHEMA_VALIDATION_IGNORED"
3670	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3671	//   "UNDECLARED_PROPERTIES"
3672	//   "UNREACHABLE"
3673	Code string `json:"code,omitempty"`
3674
3675	// Data: [Output Only] Metadata about this warning in key: value format.
3676	// For example:
3677	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3678	Data []*BackendBucketListWarningData `json:"data,omitempty"`
3679
3680	// Message: [Output Only] A human-readable description of the warning
3681	// code.
3682	Message string `json:"message,omitempty"`
3683
3684	// ForceSendFields is a list of field names (e.g. "Code") to
3685	// unconditionally include in API requests. By default, fields with
3686	// empty values are omitted from API requests. However, any non-pointer,
3687	// non-interface field appearing in ForceSendFields will be sent to the
3688	// server regardless of whether the field is empty or not. This may be
3689	// used to include empty fields in Patch requests.
3690	ForceSendFields []string `json:"-"`
3691
3692	// NullFields is a list of field names (e.g. "Code") to include in API
3693	// requests with the JSON null value. By default, fields with empty
3694	// values are omitted from API requests. However, any field with an
3695	// empty value appearing in NullFields will be sent to the server as
3696	// null. It is an error if a field in this list has a non-empty value.
3697	// This may be used to include null fields in Patch requests.
3698	NullFields []string `json:"-"`
3699}
3700
3701func (s *BackendBucketListWarning) MarshalJSON() ([]byte, error) {
3702	type NoMethod BackendBucketListWarning
3703	raw := NoMethod(*s)
3704	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3705}
3706
3707type BackendBucketListWarningData struct {
3708	// Key: [Output Only] A key that provides more detail on the warning
3709	// being returned. For example, for warnings where there are no results
3710	// in a list request for a particular zone, this key might be scope and
3711	// the key value might be the zone name. Other examples might be a key
3712	// indicating a deprecated resource and a suggested replacement, or a
3713	// warning about invalid network settings (for example, if an instance
3714	// attempts to perform IP forwarding but is not enabled for IP
3715	// forwarding).
3716	Key string `json:"key,omitempty"`
3717
3718	// Value: [Output Only] A warning data value corresponding to the key.
3719	Value string `json:"value,omitempty"`
3720
3721	// ForceSendFields is a list of field names (e.g. "Key") to
3722	// unconditionally include in API requests. By default, fields with
3723	// empty values are omitted from API requests. However, any non-pointer,
3724	// non-interface field appearing in ForceSendFields will be sent to the
3725	// server regardless of whether the field is empty or not. This may be
3726	// used to include empty fields in Patch requests.
3727	ForceSendFields []string `json:"-"`
3728
3729	// NullFields is a list of field names (e.g. "Key") to include in API
3730	// requests with the JSON null value. By default, fields with empty
3731	// values are omitted from API requests. However, any field with an
3732	// empty value appearing in NullFields will be sent to the server as
3733	// null. It is an error if a field in this list has a non-empty value.
3734	// This may be used to include null fields in Patch requests.
3735	NullFields []string `json:"-"`
3736}
3737
3738func (s *BackendBucketListWarningData) MarshalJSON() ([]byte, error) {
3739	type NoMethod BackendBucketListWarningData
3740	raw := NoMethod(*s)
3741	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3742}
3743
3744// BackendService: A BackendService resource. This resource defines a
3745// group of backend virtual machines and their serving capacity. (==
3746// resource_for v1.backendService ==) (== resource_for
3747// beta.backendService ==)
3748type BackendService struct {
3749	// AffinityCookieTtlSec: Lifetime of cookies in seconds if
3750	// session_affinity is GENERATED_COOKIE. If set to 0, the cookie is
3751	// non-persistent and lasts only until the end of the browser session
3752	// (or equivalent). The maximum allowed value for TTL is one day.
3753	//
3754	// When the load balancing scheme is INTERNAL, this field is not used.
3755	AffinityCookieTtlSec int64 `json:"affinityCookieTtlSec,omitempty"`
3756
3757	// Backends: The list of backends that serve this BackendService.
3758	Backends []*Backend `json:"backends,omitempty"`
3759
3760	// CdnPolicy: Cloud CDN configuration for this BackendService.
3761	CdnPolicy *BackendServiceCdnPolicy `json:"cdnPolicy,omitempty"`
3762
3763	ConnectionDraining *ConnectionDraining `json:"connectionDraining,omitempty"`
3764
3765	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
3766	// format.
3767	CreationTimestamp string `json:"creationTimestamp,omitempty"`
3768
3769	// CustomRequestHeaders: Headers that the HTTP/S load balancer should
3770	// add to proxied requests.
3771	CustomRequestHeaders []string `json:"customRequestHeaders,omitempty"`
3772
3773	// Description: An optional description of this resource. Provide this
3774	// property when you create the resource.
3775	Description string `json:"description,omitempty"`
3776
3777	// EnableCDN: If true, enable Cloud CDN for this BackendService.
3778	//
3779	// When the load balancing scheme is INTERNAL, this field is not used.
3780	EnableCDN bool `json:"enableCDN,omitempty"`
3781
3782	// Fingerprint: Fingerprint of this resource. A hash of the contents
3783	// stored in this object. This field is used in optimistic locking. This
3784	// field will be ignored when inserting a BackendService. An up-to-date
3785	// fingerprint must be provided in order to update the BackendService,
3786	// otherwise the request will fail with error 412 conditionNotMet.
3787	//
3788	// To see the latest fingerprint, make a get() request to retrieve a
3789	// BackendService.
3790	Fingerprint string `json:"fingerprint,omitempty"`
3791
3792	// HealthChecks: The list of URLs to the HttpHealthCheck or
3793	// HttpsHealthCheck resource for health checking this BackendService.
3794	// Currently at most one health check can be specified, and a health
3795	// check is required for Compute Engine backend services. A health check
3796	// must not be specified for App Engine backend and Cloud Function
3797	// backend.
3798	//
3799	// For internal load balancing, a URL to a HealthCheck resource must be
3800	// specified instead.
3801	HealthChecks []string `json:"healthChecks,omitempty"`
3802
3803	Iap *BackendServiceIAP `json:"iap,omitempty"`
3804
3805	// Id: [Output Only] The unique identifier for the resource. This
3806	// identifier is defined by the server.
3807	Id uint64 `json:"id,omitempty,string"`
3808
3809	// Kind: [Output Only] Type of resource. Always compute#backendService
3810	// for backend services.
3811	Kind string `json:"kind,omitempty"`
3812
3813	// LoadBalancingScheme: Indicates whether the backend service will be
3814	// used with internal or external load balancing. A backend service
3815	// created for one type of load balancing cannot be used with the other.
3816	// Possible values are INTERNAL and EXTERNAL.
3817	//
3818	// Possible values:
3819	//   "EXTERNAL"
3820	//   "INTERNAL"
3821	//   "INVALID_LOAD_BALANCING_SCHEME"
3822	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
3823
3824	// Name: Name of the resource. Provided by the client when the resource
3825	// is created. The name must be 1-63 characters long, and comply with
3826	// RFC1035. Specifically, the name must be 1-63 characters long and
3827	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
3828	// the first character must be a lowercase letter, and all following
3829	// characters must be a dash, lowercase letter, or digit, except the
3830	// last character, which cannot be a dash.
3831	Name string `json:"name,omitempty"`
3832
3833	// Port: Deprecated in favor of portName. The TCP port to connect on the
3834	// backend. The default value is 80.
3835	//
3836	// This cannot be used for internal load balancing.
3837	Port int64 `json:"port,omitempty"`
3838
3839	// PortName: Name of backend port. The same name should appear in the
3840	// instance groups referenced by this service. Required when the load
3841	// balancing scheme is EXTERNAL.
3842	//
3843	// When the load balancing scheme is INTERNAL, this field is not used.
3844	PortName string `json:"portName,omitempty"`
3845
3846	// Protocol: The protocol this BackendService uses to communicate with
3847	// backends.
3848	//
3849	// Possible values are HTTP, HTTPS, TCP, and SSL. The default is
3850	// HTTP.
3851	//
3852	// For internal load balancing, the possible values are TCP and UDP, and
3853	// the default is TCP.
3854	//
3855	// Possible values:
3856	//   "HTTP"
3857	//   "HTTP2"
3858	//   "HTTPS"
3859	//   "SSL"
3860	//   "TCP"
3861	//   "UDP"
3862	Protocol string `json:"protocol,omitempty"`
3863
3864	// Region: [Output Only] URL of the region where the regional backend
3865	// service resides. This field is not applicable to global backend
3866	// services. You must specify this field as part of the HTTP request
3867	// URL. It is not settable as a field in the request body.
3868	Region string `json:"region,omitempty"`
3869
3870	// SecurityPolicy: [Output Only] The resource URL for the security
3871	// policy associated with this backend service.
3872	SecurityPolicy string `json:"securityPolicy,omitempty"`
3873
3874	// SelfLink: [Output Only] Server-defined URL for the resource.
3875	SelfLink string `json:"selfLink,omitempty"`
3876
3877	// SessionAffinity: Type of session affinity to use. The default is
3878	// NONE.
3879	//
3880	// When the load balancing scheme is EXTERNAL, can be NONE, CLIENT_IP,
3881	// or GENERATED_COOKIE.
3882	//
3883	// When the load balancing scheme is INTERNAL, can be NONE, CLIENT_IP,
3884	// CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
3885	//
3886	// When the protocol is UDP, this field is not used.
3887	//
3888	// Possible values:
3889	//   "CLIENT_IP"
3890	//   "CLIENT_IP_PORT_PROTO"
3891	//   "CLIENT_IP_PROTO"
3892	//   "GENERATED_COOKIE"
3893	//   "NONE"
3894	SessionAffinity string `json:"sessionAffinity,omitempty"`
3895
3896	// TimeoutSec: How many seconds to wait for the backend before
3897	// considering it a failed request. Default is 30 seconds.
3898	TimeoutSec int64 `json:"timeoutSec,omitempty"`
3899
3900	// ServerResponse contains the HTTP response code and headers from the
3901	// server.
3902	googleapi.ServerResponse `json:"-"`
3903
3904	// ForceSendFields is a list of field names (e.g.
3905	// "AffinityCookieTtlSec") to unconditionally include in API requests.
3906	// By default, fields with empty values are omitted from API requests.
3907	// However, any non-pointer, non-interface field appearing in
3908	// ForceSendFields will be sent to the server regardless of whether the
3909	// field is empty or not. This may be used to include empty fields in
3910	// Patch requests.
3911	ForceSendFields []string `json:"-"`
3912
3913	// NullFields is a list of field names (e.g. "AffinityCookieTtlSec") to
3914	// include in API requests with the JSON null value. By default, fields
3915	// with empty values are omitted from API requests. However, any field
3916	// with an empty value appearing in NullFields will be sent to the
3917	// server as null. It is an error if a field in this list has a
3918	// non-empty value. This may be used to include null fields in Patch
3919	// requests.
3920	NullFields []string `json:"-"`
3921}
3922
3923func (s *BackendService) MarshalJSON() ([]byte, error) {
3924	type NoMethod BackendService
3925	raw := NoMethod(*s)
3926	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3927}
3928
3929// BackendServiceAggregatedList: Contains a list of
3930// BackendServicesScopedList.
3931type BackendServiceAggregatedList struct {
3932	// Id: [Output Only] Unique identifier for the resource; defined by the
3933	// server.
3934	Id string `json:"id,omitempty"`
3935
3936	// Items: A list of BackendServicesScopedList resources.
3937	Items map[string]BackendServicesScopedList `json:"items,omitempty"`
3938
3939	// Kind: Type of resource.
3940	Kind string `json:"kind,omitempty"`
3941
3942	// NextPageToken: [Output Only] This token allows you to get the next
3943	// page of results for list requests. If the number of results is larger
3944	// than maxResults, use the nextPageToken as a value for the query
3945	// parameter pageToken in the next list request. Subsequent list
3946	// requests will have their own nextPageToken to continue paging through
3947	// the results.
3948	NextPageToken string `json:"nextPageToken,omitempty"`
3949
3950	// SelfLink: [Output Only] Server-defined URL for this resource.
3951	SelfLink string `json:"selfLink,omitempty"`
3952
3953	// Warning: [Output Only] Informational warning message.
3954	Warning *BackendServiceAggregatedListWarning `json:"warning,omitempty"`
3955
3956	// ServerResponse contains the HTTP response code and headers from the
3957	// server.
3958	googleapi.ServerResponse `json:"-"`
3959
3960	// ForceSendFields is a list of field names (e.g. "Id") to
3961	// unconditionally include in API requests. By default, fields with
3962	// empty values are omitted from API requests. However, any non-pointer,
3963	// non-interface field appearing in ForceSendFields will be sent to the
3964	// server regardless of whether the field is empty or not. This may be
3965	// used to include empty fields in Patch requests.
3966	ForceSendFields []string `json:"-"`
3967
3968	// NullFields is a list of field names (e.g. "Id") to include in API
3969	// requests with the JSON null value. By default, fields with empty
3970	// values are omitted from API requests. However, any field with an
3971	// empty value appearing in NullFields will be sent to the server as
3972	// null. It is an error if a field in this list has a non-empty value.
3973	// This may be used to include null fields in Patch requests.
3974	NullFields []string `json:"-"`
3975}
3976
3977func (s *BackendServiceAggregatedList) MarshalJSON() ([]byte, error) {
3978	type NoMethod BackendServiceAggregatedList
3979	raw := NoMethod(*s)
3980	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3981}
3982
3983// BackendServiceAggregatedListWarning: [Output Only] Informational
3984// warning message.
3985type BackendServiceAggregatedListWarning struct {
3986	// Code: [Output Only] A warning code, if applicable. For example,
3987	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3988	// the response.
3989	//
3990	// Possible values:
3991	//   "CLEANUP_FAILED"
3992	//   "DEPRECATED_RESOURCE_USED"
3993	//   "DEPRECATED_TYPE_USED"
3994	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3995	//   "EXPERIMENTAL_TYPE_USED"
3996	//   "EXTERNAL_API_WARNING"
3997	//   "FIELD_VALUE_OVERRIDEN"
3998	//   "INJECTED_KERNELS_DEPRECATED"
3999	//   "MISSING_TYPE_DEPENDENCY"
4000	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4001	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4002	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4003	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4004	//   "NEXT_HOP_NOT_RUNNING"
4005	//   "NOT_CRITICAL_ERROR"
4006	//   "NO_RESULTS_ON_PAGE"
4007	//   "REQUIRED_TOS_AGREEMENT"
4008	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4009	//   "RESOURCE_NOT_DELETED"
4010	//   "SCHEMA_VALIDATION_IGNORED"
4011	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4012	//   "UNDECLARED_PROPERTIES"
4013	//   "UNREACHABLE"
4014	Code string `json:"code,omitempty"`
4015
4016	// Data: [Output Only] Metadata about this warning in key: value format.
4017	// For example:
4018	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4019	Data []*BackendServiceAggregatedListWarningData `json:"data,omitempty"`
4020
4021	// Message: [Output Only] A human-readable description of the warning
4022	// code.
4023	Message string `json:"message,omitempty"`
4024
4025	// ForceSendFields is a list of field names (e.g. "Code") to
4026	// unconditionally include in API requests. By default, fields with
4027	// empty values are omitted from API requests. However, any non-pointer,
4028	// non-interface field appearing in ForceSendFields will be sent to the
4029	// server regardless of whether the field is empty or not. This may be
4030	// used to include empty fields in Patch requests.
4031	ForceSendFields []string `json:"-"`
4032
4033	// NullFields is a list of field names (e.g. "Code") to include in API
4034	// requests with the JSON null value. By default, fields with empty
4035	// values are omitted from API requests. However, any field with an
4036	// empty value appearing in NullFields will be sent to the server as
4037	// null. It is an error if a field in this list has a non-empty value.
4038	// This may be used to include null fields in Patch requests.
4039	NullFields []string `json:"-"`
4040}
4041
4042func (s *BackendServiceAggregatedListWarning) MarshalJSON() ([]byte, error) {
4043	type NoMethod BackendServiceAggregatedListWarning
4044	raw := NoMethod(*s)
4045	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4046}
4047
4048type BackendServiceAggregatedListWarningData struct {
4049	// Key: [Output Only] A key that provides more detail on the warning
4050	// being returned. For example, for warnings where there are no results
4051	// in a list request for a particular zone, this key might be scope and
4052	// the key value might be the zone name. Other examples might be a key
4053	// indicating a deprecated resource and a suggested replacement, or a
4054	// warning about invalid network settings (for example, if an instance
4055	// attempts to perform IP forwarding but is not enabled for IP
4056	// forwarding).
4057	Key string `json:"key,omitempty"`
4058
4059	// Value: [Output Only] A warning data value corresponding to the key.
4060	Value string `json:"value,omitempty"`
4061
4062	// ForceSendFields is a list of field names (e.g. "Key") to
4063	// unconditionally include in API requests. By default, fields with
4064	// empty values are omitted from API requests. However, any non-pointer,
4065	// non-interface field appearing in ForceSendFields will be sent to the
4066	// server regardless of whether the field is empty or not. This may be
4067	// used to include empty fields in Patch requests.
4068	ForceSendFields []string `json:"-"`
4069
4070	// NullFields is a list of field names (e.g. "Key") to include in API
4071	// requests with the JSON null value. By default, fields with empty
4072	// values are omitted from API requests. However, any field with an
4073	// empty value appearing in NullFields will be sent to the server as
4074	// null. It is an error if a field in this list has a non-empty value.
4075	// This may be used to include null fields in Patch requests.
4076	NullFields []string `json:"-"`
4077}
4078
4079func (s *BackendServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
4080	type NoMethod BackendServiceAggregatedListWarningData
4081	raw := NoMethod(*s)
4082	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4083}
4084
4085// BackendServiceCdnPolicy: Message containing Cloud CDN configuration
4086// for a backend service.
4087type BackendServiceCdnPolicy struct {
4088	// CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy.
4089	CacheKeyPolicy *CacheKeyPolicy `json:"cacheKeyPolicy,omitempty"`
4090
4091	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
4092	// signed URL request will be considered fresh. After this time period,
4093	// the response will be revalidated before being served. Defaults to 1hr
4094	// (3600s). When serving responses to signed URL requests, Cloud CDN
4095	// will internally behave as though all responses from this backend had
4096	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
4097	// existing Cache-Control header. The actual headers served in responses
4098	// will not be altered.
4099	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
4100
4101	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
4102	// request URLs.
4103	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
4104
4105	// ForceSendFields is a list of field names (e.g. "CacheKeyPolicy") to
4106	// unconditionally include in API requests. By default, fields with
4107	// empty values are omitted from API requests. However, any non-pointer,
4108	// non-interface field appearing in ForceSendFields will be sent to the
4109	// server regardless of whether the field is empty or not. This may be
4110	// used to include empty fields in Patch requests.
4111	ForceSendFields []string `json:"-"`
4112
4113	// NullFields is a list of field names (e.g. "CacheKeyPolicy") to
4114	// include in API requests with the JSON null value. By default, fields
4115	// with empty values are omitted from API requests. However, any field
4116	// with an empty value appearing in NullFields will be sent to the
4117	// server as null. It is an error if a field in this list has a
4118	// non-empty value. This may be used to include null fields in Patch
4119	// requests.
4120	NullFields []string `json:"-"`
4121}
4122
4123func (s *BackendServiceCdnPolicy) MarshalJSON() ([]byte, error) {
4124	type NoMethod BackendServiceCdnPolicy
4125	raw := NoMethod(*s)
4126	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4127}
4128
4129type BackendServiceGroupHealth struct {
4130	// HealthStatus: Health state of the backend instances or endpoints in
4131	// requested instance or network endpoint group, determined based on
4132	// configured health checks.
4133	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
4134
4135	// Kind: [Output Only] Type of resource. Always
4136	// compute#backendServiceGroupHealth for the health of backend services.
4137	Kind string `json:"kind,omitempty"`
4138
4139	// ServerResponse contains the HTTP response code and headers from the
4140	// server.
4141	googleapi.ServerResponse `json:"-"`
4142
4143	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
4144	// unconditionally include in API requests. By default, fields with
4145	// empty values are omitted from API requests. However, any non-pointer,
4146	// non-interface field appearing in ForceSendFields will be sent to the
4147	// server regardless of whether the field is empty or not. This may be
4148	// used to include empty fields in Patch requests.
4149	ForceSendFields []string `json:"-"`
4150
4151	// NullFields is a list of field names (e.g. "HealthStatus") to include
4152	// in API requests with the JSON null value. By default, fields with
4153	// empty values are omitted from API requests. However, any field with
4154	// an empty value appearing in NullFields will be sent to the server as
4155	// null. It is an error if a field in this list has a non-empty value.
4156	// This may be used to include null fields in Patch requests.
4157	NullFields []string `json:"-"`
4158}
4159
4160func (s *BackendServiceGroupHealth) MarshalJSON() ([]byte, error) {
4161	type NoMethod BackendServiceGroupHealth
4162	raw := NoMethod(*s)
4163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4164}
4165
4166// BackendServiceIAP: Identity-Aware Proxy
4167type BackendServiceIAP struct {
4168	Enabled bool `json:"enabled,omitempty"`
4169
4170	Oauth2ClientId string `json:"oauth2ClientId,omitempty"`
4171
4172	Oauth2ClientSecret string `json:"oauth2ClientSecret,omitempty"`
4173
4174	// Oauth2ClientSecretSha256: [Output Only] SHA256 hash value for the
4175	// field oauth2_client_secret above.
4176	Oauth2ClientSecretSha256 string `json:"oauth2ClientSecretSha256,omitempty"`
4177
4178	// ForceSendFields is a list of field names (e.g. "Enabled") to
4179	// unconditionally include in API requests. By default, fields with
4180	// empty values are omitted from API requests. However, any non-pointer,
4181	// non-interface field appearing in ForceSendFields will be sent to the
4182	// server regardless of whether the field is empty or not. This may be
4183	// used to include empty fields in Patch requests.
4184	ForceSendFields []string `json:"-"`
4185
4186	// NullFields is a list of field names (e.g. "Enabled") to include in
4187	// API requests with the JSON null value. By default, fields with empty
4188	// values are omitted from API requests. However, any field with an
4189	// empty value appearing in NullFields will be sent to the server as
4190	// null. It is an error if a field in this list has a non-empty value.
4191	// This may be used to include null fields in Patch requests.
4192	NullFields []string `json:"-"`
4193}
4194
4195func (s *BackendServiceIAP) MarshalJSON() ([]byte, error) {
4196	type NoMethod BackendServiceIAP
4197	raw := NoMethod(*s)
4198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4199}
4200
4201// BackendServiceList: Contains a list of BackendService resources.
4202type BackendServiceList struct {
4203	// Id: [Output Only] Unique identifier for the resource; defined by the
4204	// server.
4205	Id string `json:"id,omitempty"`
4206
4207	// Items: A list of BackendService resources.
4208	Items []*BackendService `json:"items,omitempty"`
4209
4210	// Kind: [Output Only] Type of resource. Always
4211	// compute#backendServiceList for lists of backend services.
4212	Kind string `json:"kind,omitempty"`
4213
4214	// NextPageToken: [Output Only] This token allows you to get the next
4215	// page of results for list requests. If the number of results is larger
4216	// than maxResults, use the nextPageToken as a value for the query
4217	// parameter pageToken in the next list request. Subsequent list
4218	// requests will have their own nextPageToken to continue paging through
4219	// the results.
4220	NextPageToken string `json:"nextPageToken,omitempty"`
4221
4222	// SelfLink: [Output Only] Server-defined URL for this resource.
4223	SelfLink string `json:"selfLink,omitempty"`
4224
4225	// Warning: [Output Only] Informational warning message.
4226	Warning *BackendServiceListWarning `json:"warning,omitempty"`
4227
4228	// ServerResponse contains the HTTP response code and headers from the
4229	// server.
4230	googleapi.ServerResponse `json:"-"`
4231
4232	// ForceSendFields is a list of field names (e.g. "Id") to
4233	// unconditionally include in API requests. By default, fields with
4234	// empty values are omitted from API requests. However, any non-pointer,
4235	// non-interface field appearing in ForceSendFields will be sent to the
4236	// server regardless of whether the field is empty or not. This may be
4237	// used to include empty fields in Patch requests.
4238	ForceSendFields []string `json:"-"`
4239
4240	// NullFields is a list of field names (e.g. "Id") to include in API
4241	// requests with the JSON null value. By default, fields with empty
4242	// values are omitted from API requests. However, any field with an
4243	// empty value appearing in NullFields will be sent to the server as
4244	// null. It is an error if a field in this list has a non-empty value.
4245	// This may be used to include null fields in Patch requests.
4246	NullFields []string `json:"-"`
4247}
4248
4249func (s *BackendServiceList) MarshalJSON() ([]byte, error) {
4250	type NoMethod BackendServiceList
4251	raw := NoMethod(*s)
4252	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4253}
4254
4255// BackendServiceListWarning: [Output Only] Informational warning
4256// message.
4257type BackendServiceListWarning struct {
4258	// Code: [Output Only] A warning code, if applicable. For example,
4259	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4260	// the response.
4261	//
4262	// Possible values:
4263	//   "CLEANUP_FAILED"
4264	//   "DEPRECATED_RESOURCE_USED"
4265	//   "DEPRECATED_TYPE_USED"
4266	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4267	//   "EXPERIMENTAL_TYPE_USED"
4268	//   "EXTERNAL_API_WARNING"
4269	//   "FIELD_VALUE_OVERRIDEN"
4270	//   "INJECTED_KERNELS_DEPRECATED"
4271	//   "MISSING_TYPE_DEPENDENCY"
4272	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4273	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4274	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4275	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4276	//   "NEXT_HOP_NOT_RUNNING"
4277	//   "NOT_CRITICAL_ERROR"
4278	//   "NO_RESULTS_ON_PAGE"
4279	//   "REQUIRED_TOS_AGREEMENT"
4280	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4281	//   "RESOURCE_NOT_DELETED"
4282	//   "SCHEMA_VALIDATION_IGNORED"
4283	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4284	//   "UNDECLARED_PROPERTIES"
4285	//   "UNREACHABLE"
4286	Code string `json:"code,omitempty"`
4287
4288	// Data: [Output Only] Metadata about this warning in key: value format.
4289	// For example:
4290	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4291	Data []*BackendServiceListWarningData `json:"data,omitempty"`
4292
4293	// Message: [Output Only] A human-readable description of the warning
4294	// code.
4295	Message string `json:"message,omitempty"`
4296
4297	// ForceSendFields is a list of field names (e.g. "Code") to
4298	// unconditionally include in API requests. By default, fields with
4299	// empty values are omitted from API requests. However, any non-pointer,
4300	// non-interface field appearing in ForceSendFields will be sent to the
4301	// server regardless of whether the field is empty or not. This may be
4302	// used to include empty fields in Patch requests.
4303	ForceSendFields []string `json:"-"`
4304
4305	// NullFields is a list of field names (e.g. "Code") to include in API
4306	// requests with the JSON null value. By default, fields with empty
4307	// values are omitted from API requests. However, any field with an
4308	// empty value appearing in NullFields will be sent to the server as
4309	// null. It is an error if a field in this list has a non-empty value.
4310	// This may be used to include null fields in Patch requests.
4311	NullFields []string `json:"-"`
4312}
4313
4314func (s *BackendServiceListWarning) MarshalJSON() ([]byte, error) {
4315	type NoMethod BackendServiceListWarning
4316	raw := NoMethod(*s)
4317	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4318}
4319
4320type BackendServiceListWarningData struct {
4321	// Key: [Output Only] A key that provides more detail on the warning
4322	// being returned. For example, for warnings where there are no results
4323	// in a list request for a particular zone, this key might be scope and
4324	// the key value might be the zone name. Other examples might be a key
4325	// indicating a deprecated resource and a suggested replacement, or a
4326	// warning about invalid network settings (for example, if an instance
4327	// attempts to perform IP forwarding but is not enabled for IP
4328	// forwarding).
4329	Key string `json:"key,omitempty"`
4330
4331	// Value: [Output Only] A warning data value corresponding to the key.
4332	Value string `json:"value,omitempty"`
4333
4334	// ForceSendFields is a list of field names (e.g. "Key") to
4335	// unconditionally include in API requests. By default, fields with
4336	// empty values are omitted from API requests. However, any non-pointer,
4337	// non-interface field appearing in ForceSendFields will be sent to the
4338	// server regardless of whether the field is empty or not. This may be
4339	// used to include empty fields in Patch requests.
4340	ForceSendFields []string `json:"-"`
4341
4342	// NullFields is a list of field names (e.g. "Key") to include in API
4343	// requests with the JSON null value. By default, fields with empty
4344	// values are omitted from API requests. However, any field with an
4345	// empty value appearing in NullFields will be sent to the server as
4346	// null. It is an error if a field in this list has a non-empty value.
4347	// This may be used to include null fields in Patch requests.
4348	NullFields []string `json:"-"`
4349}
4350
4351func (s *BackendServiceListWarningData) MarshalJSON() ([]byte, error) {
4352	type NoMethod BackendServiceListWarningData
4353	raw := NoMethod(*s)
4354	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4355}
4356
4357type BackendServiceReference struct {
4358	BackendService string `json:"backendService,omitempty"`
4359
4360	// ForceSendFields is a list of field names (e.g. "BackendService") to
4361	// unconditionally include in API requests. By default, fields with
4362	// empty values are omitted from API requests. However, any non-pointer,
4363	// non-interface field appearing in ForceSendFields will be sent to the
4364	// server regardless of whether the field is empty or not. This may be
4365	// used to include empty fields in Patch requests.
4366	ForceSendFields []string `json:"-"`
4367
4368	// NullFields is a list of field names (e.g. "BackendService") to
4369	// include in API requests with the JSON null value. By default, fields
4370	// with empty values are omitted from API requests. However, any field
4371	// with an empty value appearing in NullFields will be sent to the
4372	// server as null. It is an error if a field in this list has a
4373	// non-empty value. This may be used to include null fields in Patch
4374	// requests.
4375	NullFields []string `json:"-"`
4376}
4377
4378func (s *BackendServiceReference) MarshalJSON() ([]byte, error) {
4379	type NoMethod BackendServiceReference
4380	raw := NoMethod(*s)
4381	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4382}
4383
4384type BackendServicesScopedList struct {
4385	// BackendServices: A list of BackendServices contained in this scope.
4386	BackendServices []*BackendService `json:"backendServices,omitempty"`
4387
4388	// Warning: Informational warning which replaces the list of backend
4389	// services when the list is empty.
4390	Warning *BackendServicesScopedListWarning `json:"warning,omitempty"`
4391
4392	// ForceSendFields is a list of field names (e.g. "BackendServices") to
4393	// unconditionally include in API requests. By default, fields with
4394	// empty values are omitted from API requests. However, any non-pointer,
4395	// non-interface field appearing in ForceSendFields will be sent to the
4396	// server regardless of whether the field is empty or not. This may be
4397	// used to include empty fields in Patch requests.
4398	ForceSendFields []string `json:"-"`
4399
4400	// NullFields is a list of field names (e.g. "BackendServices") to
4401	// include in API requests with the JSON null value. By default, fields
4402	// with empty values are omitted from API requests. However, any field
4403	// with an empty value appearing in NullFields will be sent to the
4404	// server as null. It is an error if a field in this list has a
4405	// non-empty value. This may be used to include null fields in Patch
4406	// requests.
4407	NullFields []string `json:"-"`
4408}
4409
4410func (s *BackendServicesScopedList) MarshalJSON() ([]byte, error) {
4411	type NoMethod BackendServicesScopedList
4412	raw := NoMethod(*s)
4413	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4414}
4415
4416// BackendServicesScopedListWarning: Informational warning which
4417// replaces the list of backend services when the list is empty.
4418type BackendServicesScopedListWarning struct {
4419	// Code: [Output Only] A warning code, if applicable. For example,
4420	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4421	// the response.
4422	//
4423	// Possible values:
4424	//   "CLEANUP_FAILED"
4425	//   "DEPRECATED_RESOURCE_USED"
4426	//   "DEPRECATED_TYPE_USED"
4427	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4428	//   "EXPERIMENTAL_TYPE_USED"
4429	//   "EXTERNAL_API_WARNING"
4430	//   "FIELD_VALUE_OVERRIDEN"
4431	//   "INJECTED_KERNELS_DEPRECATED"
4432	//   "MISSING_TYPE_DEPENDENCY"
4433	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4434	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4435	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4436	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4437	//   "NEXT_HOP_NOT_RUNNING"
4438	//   "NOT_CRITICAL_ERROR"
4439	//   "NO_RESULTS_ON_PAGE"
4440	//   "REQUIRED_TOS_AGREEMENT"
4441	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4442	//   "RESOURCE_NOT_DELETED"
4443	//   "SCHEMA_VALIDATION_IGNORED"
4444	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4445	//   "UNDECLARED_PROPERTIES"
4446	//   "UNREACHABLE"
4447	Code string `json:"code,omitempty"`
4448
4449	// Data: [Output Only] Metadata about this warning in key: value format.
4450	// For example:
4451	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4452	Data []*BackendServicesScopedListWarningData `json:"data,omitempty"`
4453
4454	// Message: [Output Only] A human-readable description of the warning
4455	// code.
4456	Message string `json:"message,omitempty"`
4457
4458	// ForceSendFields is a list of field names (e.g. "Code") to
4459	// unconditionally include in API requests. By default, fields with
4460	// empty values are omitted from API requests. However, any non-pointer,
4461	// non-interface field appearing in ForceSendFields will be sent to the
4462	// server regardless of whether the field is empty or not. This may be
4463	// used to include empty fields in Patch requests.
4464	ForceSendFields []string `json:"-"`
4465
4466	// NullFields is a list of field names (e.g. "Code") to include in API
4467	// requests with the JSON null value. By default, fields with empty
4468	// values are omitted from API requests. However, any field with an
4469	// empty value appearing in NullFields will be sent to the server as
4470	// null. It is an error if a field in this list has a non-empty value.
4471	// This may be used to include null fields in Patch requests.
4472	NullFields []string `json:"-"`
4473}
4474
4475func (s *BackendServicesScopedListWarning) MarshalJSON() ([]byte, error) {
4476	type NoMethod BackendServicesScopedListWarning
4477	raw := NoMethod(*s)
4478	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4479}
4480
4481type BackendServicesScopedListWarningData struct {
4482	// Key: [Output Only] A key that provides more detail on the warning
4483	// being returned. For example, for warnings where there are no results
4484	// in a list request for a particular zone, this key might be scope and
4485	// the key value might be the zone name. Other examples might be a key
4486	// indicating a deprecated resource and a suggested replacement, or a
4487	// warning about invalid network settings (for example, if an instance
4488	// attempts to perform IP forwarding but is not enabled for IP
4489	// forwarding).
4490	Key string `json:"key,omitempty"`
4491
4492	// Value: [Output Only] A warning data value corresponding to the key.
4493	Value string `json:"value,omitempty"`
4494
4495	// ForceSendFields is a list of field names (e.g. "Key") to
4496	// unconditionally include in API requests. By default, fields with
4497	// empty values are omitted from API requests. However, any non-pointer,
4498	// non-interface field appearing in ForceSendFields will be sent to the
4499	// server regardless of whether the field is empty or not. This may be
4500	// used to include empty fields in Patch requests.
4501	ForceSendFields []string `json:"-"`
4502
4503	// NullFields is a list of field names (e.g. "Key") to include in API
4504	// requests with the JSON null value. By default, fields with empty
4505	// values are omitted from API requests. However, any field with an
4506	// empty value appearing in NullFields will be sent to the server as
4507	// null. It is an error if a field in this list has a non-empty value.
4508	// This may be used to include null fields in Patch requests.
4509	NullFields []string `json:"-"`
4510}
4511
4512func (s *BackendServicesScopedListWarningData) MarshalJSON() ([]byte, error) {
4513	type NoMethod BackendServicesScopedListWarningData
4514	raw := NoMethod(*s)
4515	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4516}
4517
4518// Binding: Associates `members` with a `role`.
4519type Binding struct {
4520	// Condition: The condition that is associated with this binding. NOTE:
4521	// An unsatisfied condition will not allow user access via current
4522	// binding. Different bindings, including their conditions, are examined
4523	// independently.
4524	Condition *Expr `json:"condition,omitempty"`
4525
4526	// Members: Specifies the identities requesting access for a Cloud
4527	// Platform resource. `members` can have the following values:
4528	//
4529	// * `allUsers`: A special identifier that represents anyone who is on
4530	// the internet; with or without a Google account.
4531	//
4532	// * `allAuthenticatedUsers`: A special identifier that represents
4533	// anyone who is authenticated with a Google account or a service
4534	// account.
4535	//
4536	// * `user:{emailid}`: An email address that represents a specific
4537	// Google account. For example, `alice@gmail.com` .
4538	//
4539	//
4540	//
4541	// * `serviceAccount:{emailid}`: An email address that represents a
4542	// service account. For example,
4543	// `my-other-app@appspot.gserviceaccount.com`.
4544	//
4545	// * `group:{emailid}`: An email address that represents a Google group.
4546	// For example, `admins@example.com`.
4547	//
4548	//
4549	//
4550	// * `domain:{domain}`: The G Suite domain (primary) that represents all
4551	// the users of that domain. For example, `google.com` or `example.com`.
4552	Members []string `json:"members,omitempty"`
4553
4554	// Role: Role that is assigned to `members`. For example,
4555	// `roles/viewer`, `roles/editor`, or `roles/owner`.
4556	Role string `json:"role,omitempty"`
4557
4558	// ForceSendFields is a list of field names (e.g. "Condition") to
4559	// unconditionally include in API requests. By default, fields with
4560	// empty values are omitted from API requests. However, any non-pointer,
4561	// non-interface field appearing in ForceSendFields will be sent to the
4562	// server regardless of whether the field is empty or not. This may be
4563	// used to include empty fields in Patch requests.
4564	ForceSendFields []string `json:"-"`
4565
4566	// NullFields is a list of field names (e.g. "Condition") to include in
4567	// API requests with the JSON null value. By default, fields with empty
4568	// values are omitted from API requests. However, any field with an
4569	// empty value appearing in NullFields will be sent to the server as
4570	// null. It is an error if a field in this list has a non-empty value.
4571	// This may be used to include null fields in Patch requests.
4572	NullFields []string `json:"-"`
4573}
4574
4575func (s *Binding) MarshalJSON() ([]byte, error) {
4576	type NoMethod Binding
4577	raw := NoMethod(*s)
4578	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4579}
4580
4581type CacheInvalidationRule struct {
4582	// Host: If set, this invalidation rule will only apply to requests with
4583	// a Host header matching host.
4584	Host string `json:"host,omitempty"`
4585
4586	Path string `json:"path,omitempty"`
4587
4588	// ForceSendFields is a list of field names (e.g. "Host") to
4589	// unconditionally include in API requests. By default, fields with
4590	// empty values are omitted from API requests. However, any non-pointer,
4591	// non-interface field appearing in ForceSendFields will be sent to the
4592	// server regardless of whether the field is empty or not. This may be
4593	// used to include empty fields in Patch requests.
4594	ForceSendFields []string `json:"-"`
4595
4596	// NullFields is a list of field names (e.g. "Host") to include in API
4597	// requests with the JSON null value. By default, fields with empty
4598	// values are omitted from API requests. However, any field with an
4599	// empty value appearing in NullFields will be sent to the server as
4600	// null. It is an error if a field in this list has a non-empty value.
4601	// This may be used to include null fields in Patch requests.
4602	NullFields []string `json:"-"`
4603}
4604
4605func (s *CacheInvalidationRule) MarshalJSON() ([]byte, error) {
4606	type NoMethod CacheInvalidationRule
4607	raw := NoMethod(*s)
4608	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4609}
4610
4611// CacheKeyPolicy: Message containing what to include in the cache key
4612// for a request for Cloud CDN.
4613type CacheKeyPolicy struct {
4614	// IncludeHost: If true, requests to different hosts will be cached
4615	// separately.
4616	IncludeHost bool `json:"includeHost,omitempty"`
4617
4618	// IncludeProtocol: If true, http and https requests will be cached
4619	// separately.
4620	IncludeProtocol bool `json:"includeProtocol,omitempty"`
4621
4622	// IncludeQueryString: If true, include query string parameters in the
4623	// cache key according to query_string_whitelist and
4624	// query_string_blacklist. If neither is set, the entire query string
4625	// will be included. If false, the query string will be excluded from
4626	// the cache key entirely.
4627	IncludeQueryString bool `json:"includeQueryString,omitempty"`
4628
4629	// QueryStringBlacklist: Names of query string parameters to exclude in
4630	// cache keys. All other parameters will be included. Either specify
4631	// query_string_whitelist or query_string_blacklist, not both. '&' and
4632	// '=' will be percent encoded and not treated as delimiters.
4633	QueryStringBlacklist []string `json:"queryStringBlacklist,omitempty"`
4634
4635	// QueryStringWhitelist: Names of query string parameters to include in
4636	// cache keys. All other parameters will be excluded. Either specify
4637	// query_string_whitelist or query_string_blacklist, not both. '&' and
4638	// '=' will be percent encoded and not treated as delimiters.
4639	QueryStringWhitelist []string `json:"queryStringWhitelist,omitempty"`
4640
4641	// ForceSendFields is a list of field names (e.g. "IncludeHost") to
4642	// unconditionally include in API requests. By default, fields with
4643	// empty values are omitted from API requests. However, any non-pointer,
4644	// non-interface field appearing in ForceSendFields will be sent to the
4645	// server regardless of whether the field is empty or not. This may be
4646	// used to include empty fields in Patch requests.
4647	ForceSendFields []string `json:"-"`
4648
4649	// NullFields is a list of field names (e.g. "IncludeHost") to include
4650	// in API requests with the JSON null value. By default, fields with
4651	// empty values are omitted from API requests. However, any field with
4652	// an empty value appearing in NullFields will be sent to the server as
4653	// null. It is an error if a field in this list has a non-empty value.
4654	// This may be used to include null fields in Patch requests.
4655	NullFields []string `json:"-"`
4656}
4657
4658func (s *CacheKeyPolicy) MarshalJSON() ([]byte, error) {
4659	type NoMethod CacheKeyPolicy
4660	raw := NoMethod(*s)
4661	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4662}
4663
4664// Commitment: Represents a Commitment resource. Creating a Commitment
4665// resource means that you are purchasing a committed use contract with
4666// an explicit start and end time. You can create commitments based on
4667// vCPUs and memory usage and receive discounted rates. For full
4668// details, read Signing Up for Committed Use Discounts.
4669//
4670// Committed use discounts are subject to Google Cloud Platform's
4671// Service Specific Terms. By purchasing a committed use discount, you
4672// agree to these terms. Committed use discounts will not renew, so you
4673// must purchase a new commitment to continue receiving discounts. (==
4674// resource_for beta.commitments ==) (== resource_for v1.commitments ==)
4675type Commitment struct {
4676	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4677	// format.
4678	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4679
4680	// Description: An optional description of this resource. Provide this
4681	// property when you create the resource.
4682	Description string `json:"description,omitempty"`
4683
4684	// EndTimestamp: [Output Only] Commitment end time in RFC3339 text
4685	// format.
4686	EndTimestamp string `json:"endTimestamp,omitempty"`
4687
4688	// Id: [Output Only] The unique identifier for the resource. This
4689	// identifier is defined by the server.
4690	Id uint64 `json:"id,omitempty,string"`
4691
4692	// Kind: [Output Only] Type of the resource. Always compute#commitment
4693	// for commitments.
4694	Kind string `json:"kind,omitempty"`
4695
4696	// Name: Name of the resource. Provided by the client when the resource
4697	// is created. The name must be 1-63 characters long, and comply with
4698	// RFC1035. Specifically, the name must be 1-63 characters long and
4699	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
4700	// the first character must be a lowercase letter, and all following
4701	// characters must be a dash, lowercase letter, or digit, except the
4702	// last character, which cannot be a dash.
4703	Name string `json:"name,omitempty"`
4704
4705	// Plan: The plan for this commitment, which determines duration and
4706	// discount rate. The currently supported plans are TWELVE_MONTH (1
4707	// year), and THIRTY_SIX_MONTH (3 years).
4708	//
4709	// Possible values:
4710	//   "INVALID"
4711	//   "THIRTY_SIX_MONTH"
4712	//   "TWELVE_MONTH"
4713	Plan string `json:"plan,omitempty"`
4714
4715	// Region: [Output Only] URL of the region where this commitment may be
4716	// used.
4717	Region string `json:"region,omitempty"`
4718
4719	// Resources: A list of commitment amounts for particular resources.
4720	// Note that VCPU and MEMORY resource commitments must occur together.
4721	Resources []*ResourceCommitment `json:"resources,omitempty"`
4722
4723	// SelfLink: [Output Only] Server-defined URL for the resource.
4724	SelfLink string `json:"selfLink,omitempty"`
4725
4726	// StartTimestamp: [Output Only] Commitment start time in RFC3339 text
4727	// format.
4728	StartTimestamp string `json:"startTimestamp,omitempty"`
4729
4730	// Status: [Output Only] Status of the commitment with regards to
4731	// eventual expiration (each commitment has an end date defined). One of
4732	// the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
4733	//
4734	// Possible values:
4735	//   "ACTIVE"
4736	//   "CREATING"
4737	//   "EXPIRED"
4738	//   "NOT_YET_ACTIVE"
4739	Status string `json:"status,omitempty"`
4740
4741	// StatusMessage: [Output Only] An optional, human-readable explanation
4742	// of the status.
4743	StatusMessage string `json:"statusMessage,omitempty"`
4744
4745	// ServerResponse contains the HTTP response code and headers from the
4746	// server.
4747	googleapi.ServerResponse `json:"-"`
4748
4749	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
4750	// to unconditionally include in API requests. By default, fields with
4751	// empty values are omitted from API requests. However, any non-pointer,
4752	// non-interface field appearing in ForceSendFields will be sent to the
4753	// server regardless of whether the field is empty or not. This may be
4754	// used to include empty fields in Patch requests.
4755	ForceSendFields []string `json:"-"`
4756
4757	// NullFields is a list of field names (e.g. "CreationTimestamp") to
4758	// include in API requests with the JSON null value. By default, fields
4759	// with empty values are omitted from API requests. However, any field
4760	// with an empty value appearing in NullFields will be sent to the
4761	// server as null. It is an error if a field in this list has a
4762	// non-empty value. This may be used to include null fields in Patch
4763	// requests.
4764	NullFields []string `json:"-"`
4765}
4766
4767func (s *Commitment) MarshalJSON() ([]byte, error) {
4768	type NoMethod Commitment
4769	raw := NoMethod(*s)
4770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4771}
4772
4773type CommitmentAggregatedList struct {
4774	// Id: [Output Only] Unique identifier for the resource; defined by the
4775	// server.
4776	Id string `json:"id,omitempty"`
4777
4778	// Items: A list of CommitmentsScopedList resources.
4779	Items map[string]CommitmentsScopedList `json:"items,omitempty"`
4780
4781	// Kind: [Output Only] Type of resource. Always
4782	// compute#commitmentAggregatedList for aggregated lists of commitments.
4783	Kind string `json:"kind,omitempty"`
4784
4785	// NextPageToken: [Output Only] This token allows you to get the next
4786	// page of results for list requests. If the number of results is larger
4787	// than maxResults, use the nextPageToken as a value for the query
4788	// parameter pageToken in the next list request. Subsequent list
4789	// requests will have their own nextPageToken to continue paging through
4790	// the results.
4791	NextPageToken string `json:"nextPageToken,omitempty"`
4792
4793	// SelfLink: [Output Only] Server-defined URL for this resource.
4794	SelfLink string `json:"selfLink,omitempty"`
4795
4796	// Warning: [Output Only] Informational warning message.
4797	Warning *CommitmentAggregatedListWarning `json:"warning,omitempty"`
4798
4799	// ServerResponse contains the HTTP response code and headers from the
4800	// server.
4801	googleapi.ServerResponse `json:"-"`
4802
4803	// ForceSendFields is a list of field names (e.g. "Id") to
4804	// unconditionally include in API requests. By default, fields with
4805	// empty values are omitted from API requests. However, any non-pointer,
4806	// non-interface field appearing in ForceSendFields will be sent to the
4807	// server regardless of whether the field is empty or not. This may be
4808	// used to include empty fields in Patch requests.
4809	ForceSendFields []string `json:"-"`
4810
4811	// NullFields is a list of field names (e.g. "Id") to include in API
4812	// requests with the JSON null value. By default, fields with empty
4813	// values are omitted from API requests. However, any field with an
4814	// empty value appearing in NullFields will be sent to the server as
4815	// null. It is an error if a field in this list has a non-empty value.
4816	// This may be used to include null fields in Patch requests.
4817	NullFields []string `json:"-"`
4818}
4819
4820func (s *CommitmentAggregatedList) MarshalJSON() ([]byte, error) {
4821	type NoMethod CommitmentAggregatedList
4822	raw := NoMethod(*s)
4823	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4824}
4825
4826// CommitmentAggregatedListWarning: [Output Only] Informational warning
4827// message.
4828type CommitmentAggregatedListWarning struct {
4829	// Code: [Output Only] A warning code, if applicable. For example,
4830	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4831	// the response.
4832	//
4833	// Possible values:
4834	//   "CLEANUP_FAILED"
4835	//   "DEPRECATED_RESOURCE_USED"
4836	//   "DEPRECATED_TYPE_USED"
4837	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4838	//   "EXPERIMENTAL_TYPE_USED"
4839	//   "EXTERNAL_API_WARNING"
4840	//   "FIELD_VALUE_OVERRIDEN"
4841	//   "INJECTED_KERNELS_DEPRECATED"
4842	//   "MISSING_TYPE_DEPENDENCY"
4843	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4844	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4845	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4846	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4847	//   "NEXT_HOP_NOT_RUNNING"
4848	//   "NOT_CRITICAL_ERROR"
4849	//   "NO_RESULTS_ON_PAGE"
4850	//   "REQUIRED_TOS_AGREEMENT"
4851	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4852	//   "RESOURCE_NOT_DELETED"
4853	//   "SCHEMA_VALIDATION_IGNORED"
4854	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4855	//   "UNDECLARED_PROPERTIES"
4856	//   "UNREACHABLE"
4857	Code string `json:"code,omitempty"`
4858
4859	// Data: [Output Only] Metadata about this warning in key: value format.
4860	// For example:
4861	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4862	Data []*CommitmentAggregatedListWarningData `json:"data,omitempty"`
4863
4864	// Message: [Output Only] A human-readable description of the warning
4865	// code.
4866	Message string `json:"message,omitempty"`
4867
4868	// ForceSendFields is a list of field names (e.g. "Code") to
4869	// unconditionally include in API requests. By default, fields with
4870	// empty values are omitted from API requests. However, any non-pointer,
4871	// non-interface field appearing in ForceSendFields will be sent to the
4872	// server regardless of whether the field is empty or not. This may be
4873	// used to include empty fields in Patch requests.
4874	ForceSendFields []string `json:"-"`
4875
4876	// NullFields is a list of field names (e.g. "Code") to include in API
4877	// requests with the JSON null value. By default, fields with empty
4878	// values are omitted from API requests. However, any field with an
4879	// empty value appearing in NullFields will be sent to the server as
4880	// null. It is an error if a field in this list has a non-empty value.
4881	// This may be used to include null fields in Patch requests.
4882	NullFields []string `json:"-"`
4883}
4884
4885func (s *CommitmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
4886	type NoMethod CommitmentAggregatedListWarning
4887	raw := NoMethod(*s)
4888	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4889}
4890
4891type CommitmentAggregatedListWarningData struct {
4892	// Key: [Output Only] A key that provides more detail on the warning
4893	// being returned. For example, for warnings where there are no results
4894	// in a list request for a particular zone, this key might be scope and
4895	// the key value might be the zone name. Other examples might be a key
4896	// indicating a deprecated resource and a suggested replacement, or a
4897	// warning about invalid network settings (for example, if an instance
4898	// attempts to perform IP forwarding but is not enabled for IP
4899	// forwarding).
4900	Key string `json:"key,omitempty"`
4901
4902	// Value: [Output Only] A warning data value corresponding to the key.
4903	Value string `json:"value,omitempty"`
4904
4905	// ForceSendFields is a list of field names (e.g. "Key") to
4906	// unconditionally include in API requests. By default, fields with
4907	// empty values are omitted from API requests. However, any non-pointer,
4908	// non-interface field appearing in ForceSendFields will be sent to the
4909	// server regardless of whether the field is empty or not. This may be
4910	// used to include empty fields in Patch requests.
4911	ForceSendFields []string `json:"-"`
4912
4913	// NullFields is a list of field names (e.g. "Key") to include in API
4914	// requests with the JSON null value. By default, fields with empty
4915	// values are omitted from API requests. However, any field with an
4916	// empty value appearing in NullFields will be sent to the server as
4917	// null. It is an error if a field in this list has a non-empty value.
4918	// This may be used to include null fields in Patch requests.
4919	NullFields []string `json:"-"`
4920}
4921
4922func (s *CommitmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
4923	type NoMethod CommitmentAggregatedListWarningData
4924	raw := NoMethod(*s)
4925	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4926}
4927
4928// CommitmentList: Contains a list of Commitment resources.
4929type CommitmentList struct {
4930	// Id: [Output Only] Unique identifier for the resource; defined by the
4931	// server.
4932	Id string `json:"id,omitempty"`
4933
4934	// Items: A list of Commitment resources.
4935	Items []*Commitment `json:"items,omitempty"`
4936
4937	// Kind: [Output Only] Type of resource. Always compute#commitmentList
4938	// for lists of commitments.
4939	Kind string `json:"kind,omitempty"`
4940
4941	// NextPageToken: [Output Only] This token allows you to get the next
4942	// page of results for list requests. If the number of results is larger
4943	// than maxResults, use the nextPageToken as a value for the query
4944	// parameter pageToken in the next list request. Subsequent list
4945	// requests will have their own nextPageToken to continue paging through
4946	// the results.
4947	NextPageToken string `json:"nextPageToken,omitempty"`
4948
4949	// SelfLink: [Output Only] Server-defined URL for this resource.
4950	SelfLink string `json:"selfLink,omitempty"`
4951
4952	// Warning: [Output Only] Informational warning message.
4953	Warning *CommitmentListWarning `json:"warning,omitempty"`
4954
4955	// ServerResponse contains the HTTP response code and headers from the
4956	// server.
4957	googleapi.ServerResponse `json:"-"`
4958
4959	// ForceSendFields is a list of field names (e.g. "Id") to
4960	// unconditionally include in API requests. By default, fields with
4961	// empty values are omitted from API requests. However, any non-pointer,
4962	// non-interface field appearing in ForceSendFields will be sent to the
4963	// server regardless of whether the field is empty or not. This may be
4964	// used to include empty fields in Patch requests.
4965	ForceSendFields []string `json:"-"`
4966
4967	// NullFields is a list of field names (e.g. "Id") to include in API
4968	// requests with the JSON null value. By default, fields with empty
4969	// values are omitted from API requests. However, any field with an
4970	// empty value appearing in NullFields will be sent to the server as
4971	// null. It is an error if a field in this list has a non-empty value.
4972	// This may be used to include null fields in Patch requests.
4973	NullFields []string `json:"-"`
4974}
4975
4976func (s *CommitmentList) MarshalJSON() ([]byte, error) {
4977	type NoMethod CommitmentList
4978	raw := NoMethod(*s)
4979	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4980}
4981
4982// CommitmentListWarning: [Output Only] Informational warning message.
4983type CommitmentListWarning struct {
4984	// Code: [Output Only] A warning code, if applicable. For example,
4985	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4986	// the response.
4987	//
4988	// Possible values:
4989	//   "CLEANUP_FAILED"
4990	//   "DEPRECATED_RESOURCE_USED"
4991	//   "DEPRECATED_TYPE_USED"
4992	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4993	//   "EXPERIMENTAL_TYPE_USED"
4994	//   "EXTERNAL_API_WARNING"
4995	//   "FIELD_VALUE_OVERRIDEN"
4996	//   "INJECTED_KERNELS_DEPRECATED"
4997	//   "MISSING_TYPE_DEPENDENCY"
4998	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4999	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5000	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5001	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5002	//   "NEXT_HOP_NOT_RUNNING"
5003	//   "NOT_CRITICAL_ERROR"
5004	//   "NO_RESULTS_ON_PAGE"
5005	//   "REQUIRED_TOS_AGREEMENT"
5006	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5007	//   "RESOURCE_NOT_DELETED"
5008	//   "SCHEMA_VALIDATION_IGNORED"
5009	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5010	//   "UNDECLARED_PROPERTIES"
5011	//   "UNREACHABLE"
5012	Code string `json:"code,omitempty"`
5013
5014	// Data: [Output Only] Metadata about this warning in key: value format.
5015	// For example:
5016	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5017	Data []*CommitmentListWarningData `json:"data,omitempty"`
5018
5019	// Message: [Output Only] A human-readable description of the warning
5020	// code.
5021	Message string `json:"message,omitempty"`
5022
5023	// ForceSendFields is a list of field names (e.g. "Code") to
5024	// unconditionally include in API requests. By default, fields with
5025	// empty values are omitted from API requests. However, any non-pointer,
5026	// non-interface field appearing in ForceSendFields will be sent to the
5027	// server regardless of whether the field is empty or not. This may be
5028	// used to include empty fields in Patch requests.
5029	ForceSendFields []string `json:"-"`
5030
5031	// NullFields is a list of field names (e.g. "Code") to include in API
5032	// requests with the JSON null value. By default, fields with empty
5033	// values are omitted from API requests. However, any field with an
5034	// empty value appearing in NullFields will be sent to the server as
5035	// null. It is an error if a field in this list has a non-empty value.
5036	// This may be used to include null fields in Patch requests.
5037	NullFields []string `json:"-"`
5038}
5039
5040func (s *CommitmentListWarning) MarshalJSON() ([]byte, error) {
5041	type NoMethod CommitmentListWarning
5042	raw := NoMethod(*s)
5043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5044}
5045
5046type CommitmentListWarningData struct {
5047	// Key: [Output Only] A key that provides more detail on the warning
5048	// being returned. For example, for warnings where there are no results
5049	// in a list request for a particular zone, this key might be scope and
5050	// the key value might be the zone name. Other examples might be a key
5051	// indicating a deprecated resource and a suggested replacement, or a
5052	// warning about invalid network settings (for example, if an instance
5053	// attempts to perform IP forwarding but is not enabled for IP
5054	// forwarding).
5055	Key string `json:"key,omitempty"`
5056
5057	// Value: [Output Only] A warning data value corresponding to the key.
5058	Value string `json:"value,omitempty"`
5059
5060	// ForceSendFields is a list of field names (e.g. "Key") to
5061	// unconditionally include in API requests. By default, fields with
5062	// empty values are omitted from API requests. However, any non-pointer,
5063	// non-interface field appearing in ForceSendFields will be sent to the
5064	// server regardless of whether the field is empty or not. This may be
5065	// used to include empty fields in Patch requests.
5066	ForceSendFields []string `json:"-"`
5067
5068	// NullFields is a list of field names (e.g. "Key") to include in API
5069	// requests with the JSON null value. By default, fields with empty
5070	// values are omitted from API requests. However, any field with an
5071	// empty value appearing in NullFields will be sent to the server as
5072	// null. It is an error if a field in this list has a non-empty value.
5073	// This may be used to include null fields in Patch requests.
5074	NullFields []string `json:"-"`
5075}
5076
5077func (s *CommitmentListWarningData) MarshalJSON() ([]byte, error) {
5078	type NoMethod CommitmentListWarningData
5079	raw := NoMethod(*s)
5080	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5081}
5082
5083type CommitmentsScopedList struct {
5084	// Commitments: [Output Only] A list of commitments contained in this
5085	// scope.
5086	Commitments []*Commitment `json:"commitments,omitempty"`
5087
5088	// Warning: [Output Only] Informational warning which replaces the list
5089	// of commitments when the list is empty.
5090	Warning *CommitmentsScopedListWarning `json:"warning,omitempty"`
5091
5092	// ForceSendFields is a list of field names (e.g. "Commitments") to
5093	// unconditionally include in API requests. By default, fields with
5094	// empty values are omitted from API requests. However, any non-pointer,
5095	// non-interface field appearing in ForceSendFields will be sent to the
5096	// server regardless of whether the field is empty or not. This may be
5097	// used to include empty fields in Patch requests.
5098	ForceSendFields []string `json:"-"`
5099
5100	// NullFields is a list of field names (e.g. "Commitments") to include
5101	// in API requests with the JSON null value. By default, fields with
5102	// empty values are omitted from API requests. However, any field with
5103	// an empty value appearing in NullFields will be sent to the server as
5104	// null. It is an error if a field in this list has a non-empty value.
5105	// This may be used to include null fields in Patch requests.
5106	NullFields []string `json:"-"`
5107}
5108
5109func (s *CommitmentsScopedList) MarshalJSON() ([]byte, error) {
5110	type NoMethod CommitmentsScopedList
5111	raw := NoMethod(*s)
5112	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5113}
5114
5115// CommitmentsScopedListWarning: [Output Only] Informational warning
5116// which replaces the list of commitments when the list is empty.
5117type CommitmentsScopedListWarning struct {
5118	// Code: [Output Only] A warning code, if applicable. For example,
5119	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5120	// the response.
5121	//
5122	// Possible values:
5123	//   "CLEANUP_FAILED"
5124	//   "DEPRECATED_RESOURCE_USED"
5125	//   "DEPRECATED_TYPE_USED"
5126	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5127	//   "EXPERIMENTAL_TYPE_USED"
5128	//   "EXTERNAL_API_WARNING"
5129	//   "FIELD_VALUE_OVERRIDEN"
5130	//   "INJECTED_KERNELS_DEPRECATED"
5131	//   "MISSING_TYPE_DEPENDENCY"
5132	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5133	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5134	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5135	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5136	//   "NEXT_HOP_NOT_RUNNING"
5137	//   "NOT_CRITICAL_ERROR"
5138	//   "NO_RESULTS_ON_PAGE"
5139	//   "REQUIRED_TOS_AGREEMENT"
5140	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5141	//   "RESOURCE_NOT_DELETED"
5142	//   "SCHEMA_VALIDATION_IGNORED"
5143	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5144	//   "UNDECLARED_PROPERTIES"
5145	//   "UNREACHABLE"
5146	Code string `json:"code,omitempty"`
5147
5148	// Data: [Output Only] Metadata about this warning in key: value format.
5149	// For example:
5150	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5151	Data []*CommitmentsScopedListWarningData `json:"data,omitempty"`
5152
5153	// Message: [Output Only] A human-readable description of the warning
5154	// code.
5155	Message string `json:"message,omitempty"`
5156
5157	// ForceSendFields is a list of field names (e.g. "Code") to
5158	// unconditionally include in API requests. By default, fields with
5159	// empty values are omitted from API requests. However, any non-pointer,
5160	// non-interface field appearing in ForceSendFields will be sent to the
5161	// server regardless of whether the field is empty or not. This may be
5162	// used to include empty fields in Patch requests.
5163	ForceSendFields []string `json:"-"`
5164
5165	// NullFields is a list of field names (e.g. "Code") to include in API
5166	// requests with the JSON null value. By default, fields with empty
5167	// values are omitted from API requests. However, any field with an
5168	// empty value appearing in NullFields will be sent to the server as
5169	// null. It is an error if a field in this list has a non-empty value.
5170	// This may be used to include null fields in Patch requests.
5171	NullFields []string `json:"-"`
5172}
5173
5174func (s *CommitmentsScopedListWarning) MarshalJSON() ([]byte, error) {
5175	type NoMethod CommitmentsScopedListWarning
5176	raw := NoMethod(*s)
5177	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5178}
5179
5180type CommitmentsScopedListWarningData struct {
5181	// Key: [Output Only] A key that provides more detail on the warning
5182	// being returned. For example, for warnings where there are no results
5183	// in a list request for a particular zone, this key might be scope and
5184	// the key value might be the zone name. Other examples might be a key
5185	// indicating a deprecated resource and a suggested replacement, or a
5186	// warning about invalid network settings (for example, if an instance
5187	// attempts to perform IP forwarding but is not enabled for IP
5188	// forwarding).
5189	Key string `json:"key,omitempty"`
5190
5191	// Value: [Output Only] A warning data value corresponding to the key.
5192	Value string `json:"value,omitempty"`
5193
5194	// ForceSendFields is a list of field names (e.g. "Key") to
5195	// unconditionally include in API requests. By default, fields with
5196	// empty values are omitted from API requests. However, any non-pointer,
5197	// non-interface field appearing in ForceSendFields will be sent to the
5198	// server regardless of whether the field is empty or not. This may be
5199	// used to include empty fields in Patch requests.
5200	ForceSendFields []string `json:"-"`
5201
5202	// NullFields is a list of field names (e.g. "Key") to include in API
5203	// requests with the JSON null value. By default, fields with empty
5204	// values are omitted from API requests. However, any field with an
5205	// empty value appearing in NullFields will be sent to the server as
5206	// null. It is an error if a field in this list has a non-empty value.
5207	// This may be used to include null fields in Patch requests.
5208	NullFields []string `json:"-"`
5209}
5210
5211func (s *CommitmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
5212	type NoMethod CommitmentsScopedListWarningData
5213	raw := NoMethod(*s)
5214	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5215}
5216
5217// Condition: A condition to be met.
5218type Condition struct {
5219	// Iam: Trusted attributes supplied by the IAM system.
5220	//
5221	// Possible values:
5222	//   "APPROVER"
5223	//   "ATTRIBUTION"
5224	//   "AUTHORITY"
5225	//   "CREDENTIALS_TYPE"
5226	//   "JUSTIFICATION_TYPE"
5227	//   "NO_ATTR"
5228	//   "SECURITY_REALM"
5229	Iam string `json:"iam,omitempty"`
5230
5231	// Op: An operator to apply the subject with.
5232	//
5233	// Possible values:
5234	//   "DISCHARGED"
5235	//   "EQUALS"
5236	//   "IN"
5237	//   "NOT_EQUALS"
5238	//   "NOT_IN"
5239	//   "NO_OP"
5240	Op string `json:"op,omitempty"`
5241
5242	// Svc: Trusted attributes discharged by the service.
5243	Svc string `json:"svc,omitempty"`
5244
5245	// Sys: Trusted attributes supplied by any service that owns resources
5246	// and uses the IAM system for access control.
5247	//
5248	// Possible values:
5249	//   "IP"
5250	//   "NAME"
5251	//   "NO_ATTR"
5252	//   "REGION"
5253	//   "SERVICE"
5254	Sys string `json:"sys,omitempty"`
5255
5256	// Values: The objects of the condition.
5257	Values []string `json:"values,omitempty"`
5258
5259	// ForceSendFields is a list of field names (e.g. "Iam") to
5260	// unconditionally include in API requests. By default, fields with
5261	// empty values are omitted from API requests. However, any non-pointer,
5262	// non-interface field appearing in ForceSendFields will be sent to the
5263	// server regardless of whether the field is empty or not. This may be
5264	// used to include empty fields in Patch requests.
5265	ForceSendFields []string `json:"-"`
5266
5267	// NullFields is a list of field names (e.g. "Iam") to include in API
5268	// requests with the JSON null value. By default, fields with empty
5269	// values are omitted from API requests. However, any field with an
5270	// empty value appearing in NullFields will be sent to the server as
5271	// null. It is an error if a field in this list has a non-empty value.
5272	// This may be used to include null fields in Patch requests.
5273	NullFields []string `json:"-"`
5274}
5275
5276func (s *Condition) MarshalJSON() ([]byte, error) {
5277	type NoMethod Condition
5278	raw := NoMethod(*s)
5279	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5280}
5281
5282// ConnectionDraining: Message containing connection draining
5283// configuration.
5284type ConnectionDraining struct {
5285	// DrainingTimeoutSec: Time for which instance will be drained (not
5286	// accept new connections, but still work to finish started).
5287	DrainingTimeoutSec int64 `json:"drainingTimeoutSec,omitempty"`
5288
5289	// ForceSendFields is a list of field names (e.g. "DrainingTimeoutSec")
5290	// to unconditionally include in API requests. By default, fields with
5291	// empty values are omitted from API requests. However, any non-pointer,
5292	// non-interface field appearing in ForceSendFields will be sent to the
5293	// server regardless of whether the field is empty or not. This may be
5294	// used to include empty fields in Patch requests.
5295	ForceSendFields []string `json:"-"`
5296
5297	// NullFields is a list of field names (e.g. "DrainingTimeoutSec") to
5298	// include in API requests with the JSON null value. By default, fields
5299	// with empty values are omitted from API requests. However, any field
5300	// with an empty value appearing in NullFields will be sent to the
5301	// server as null. It is an error if a field in this list has a
5302	// non-empty value. This may be used to include null fields in Patch
5303	// requests.
5304	NullFields []string `json:"-"`
5305}
5306
5307func (s *ConnectionDraining) MarshalJSON() ([]byte, error) {
5308	type NoMethod ConnectionDraining
5309	raw := NoMethod(*s)
5310	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5311}
5312
5313// CustomerEncryptionKey: Represents a customer-supplied encryption key
5314type CustomerEncryptionKey struct {
5315	// KmsKeyName: The name of the encryption key that is stored in Google
5316	// Cloud KMS.
5317	KmsKeyName string `json:"kmsKeyName,omitempty"`
5318
5319	// RawKey: Specifies a 256-bit customer-supplied encryption key, encoded
5320	// in RFC 4648 base64 to either encrypt or decrypt this resource.
5321	RawKey string `json:"rawKey,omitempty"`
5322
5323	// Sha256: [Output only] The RFC 4648 base64 encoded SHA-256 hash of the
5324	// customer-supplied encryption key that protects this resource.
5325	Sha256 string `json:"sha256,omitempty"`
5326
5327	// ForceSendFields is a list of field names (e.g. "KmsKeyName") 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. "KmsKeyName") to include in
5336	// API requests with the JSON null value. By default, fields with empty
5337	// values are omitted from API requests. However, any field with an
5338	// empty value appearing in NullFields will be sent to the server as
5339	// null. It is an error if a field in this list has a non-empty value.
5340	// This may be used to include null fields in Patch requests.
5341	NullFields []string `json:"-"`
5342}
5343
5344func (s *CustomerEncryptionKey) MarshalJSON() ([]byte, error) {
5345	type NoMethod CustomerEncryptionKey
5346	raw := NoMethod(*s)
5347	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5348}
5349
5350type CustomerEncryptionKeyProtectedDisk struct {
5351	// DiskEncryptionKey: Decrypts data associated with the disk with a
5352	// customer-supplied encryption key.
5353	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
5354
5355	// Source: Specifies a valid partial or full URL to an existing
5356	// Persistent Disk resource. This field is only applicable for
5357	// persistent disks.
5358	Source string `json:"source,omitempty"`
5359
5360	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
5361	// to unconditionally include in API requests. By default, fields with
5362	// empty values are omitted from API requests. However, any non-pointer,
5363	// non-interface field appearing in ForceSendFields will be sent to the
5364	// server regardless of whether the field is empty or not. This may be
5365	// used to include empty fields in Patch requests.
5366	ForceSendFields []string `json:"-"`
5367
5368	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
5369	// include in API requests with the JSON null value. By default, fields
5370	// with empty values are omitted from API requests. However, any field
5371	// with an empty value appearing in NullFields will be sent to the
5372	// server as null. It is an error if a field in this list has a
5373	// non-empty value. This may be used to include null fields in Patch
5374	// requests.
5375	NullFields []string `json:"-"`
5376}
5377
5378func (s *CustomerEncryptionKeyProtectedDisk) MarshalJSON() ([]byte, error) {
5379	type NoMethod CustomerEncryptionKeyProtectedDisk
5380	raw := NoMethod(*s)
5381	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5382}
5383
5384// DeprecationStatus: Deprecation status for a public resource.
5385type DeprecationStatus struct {
5386	// Deleted: An optional RFC3339 timestamp on or after which the state of
5387	// this resource is intended to change to DELETED. This is only
5388	// informational and the status will not change unless the client
5389	// explicitly changes it.
5390	Deleted string `json:"deleted,omitempty"`
5391
5392	// Deprecated: An optional RFC3339 timestamp on or after which the state
5393	// of this resource is intended to change to DEPRECATED. This is only
5394	// informational and the status will not change unless the client
5395	// explicitly changes it.
5396	Deprecated string `json:"deprecated,omitempty"`
5397
5398	// Obsolete: An optional RFC3339 timestamp on or after which the state
5399	// of this resource is intended to change to OBSOLETE. This is only
5400	// informational and the status will not change unless the client
5401	// explicitly changes it.
5402	Obsolete string `json:"obsolete,omitempty"`
5403
5404	// Replacement: The URL of the suggested replacement for a deprecated
5405	// resource. The suggested replacement resource must be the same kind of
5406	// resource as the deprecated resource.
5407	Replacement string `json:"replacement,omitempty"`
5408
5409	// State: The deprecation state of this resource. This can be ACTIVE,
5410	// DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the
5411	// end of life date for an image, can use ACTIVE. Operations which
5412	// create a new resource using a DEPRECATED resource will return
5413	// successfully, but with a warning indicating the deprecated resource
5414	// and recommending its replacement. Operations which use OBSOLETE or
5415	// DELETED resources will be rejected and result in an error.
5416	//
5417	// Possible values:
5418	//   "ACTIVE"
5419	//   "DELETED"
5420	//   "DEPRECATED"
5421	//   "OBSOLETE"
5422	State string `json:"state,omitempty"`
5423
5424	// ForceSendFields is a list of field names (e.g. "Deleted") to
5425	// unconditionally include in API requests. By default, fields with
5426	// empty values are omitted from API requests. However, any non-pointer,
5427	// non-interface field appearing in ForceSendFields will be sent to the
5428	// server regardless of whether the field is empty or not. This may be
5429	// used to include empty fields in Patch requests.
5430	ForceSendFields []string `json:"-"`
5431
5432	// NullFields is a list of field names (e.g. "Deleted") to include in
5433	// API requests with the JSON null value. By default, fields with empty
5434	// values are omitted from API requests. However, any field with an
5435	// empty value appearing in NullFields will be sent to the server as
5436	// null. It is an error if a field in this list has a non-empty value.
5437	// This may be used to include null fields in Patch requests.
5438	NullFields []string `json:"-"`
5439}
5440
5441func (s *DeprecationStatus) MarshalJSON() ([]byte, error) {
5442	type NoMethod DeprecationStatus
5443	raw := NoMethod(*s)
5444	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5445}
5446
5447// Disk: A Disk resource. (== resource_for beta.disks ==) (==
5448// resource_for v1.disks ==)
5449type Disk struct {
5450	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
5451	// format.
5452	CreationTimestamp string `json:"creationTimestamp,omitempty"`
5453
5454	// Description: An optional description of this resource. Provide this
5455	// property when you create the resource.
5456	Description string `json:"description,omitempty"`
5457
5458	// DiskEncryptionKey: Encrypts the disk using a customer-supplied
5459	// encryption key.
5460	//
5461	// After you encrypt a disk with a customer-supplied key, you must
5462	// provide the same key if you use the disk later (e.g. to create a disk
5463	// snapshot or an image, or to attach the disk to a virtual
5464	// machine).
5465	//
5466	// Customer-supplied encryption keys do not protect access to metadata
5467	// of the disk.
5468	//
5469	// If you do not provide an encryption key when creating the disk, then
5470	// the disk will be encrypted using an automatically generated key and
5471	// you do not need to provide a key to use the disk later.
5472	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
5473
5474	// GuestOsFeatures: A list of features to enable on the guest operating
5475	// system. Applicable only for bootable images. Read  Enabling guest
5476	// operating system features to see a list of available options.
5477	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
5478
5479	// Id: [Output Only] The unique identifier for the resource. This
5480	// identifier is defined by the server.
5481	Id uint64 `json:"id,omitempty,string"`
5482
5483	// Kind: [Output Only] Type of the resource. Always compute#disk for
5484	// disks.
5485	Kind string `json:"kind,omitempty"`
5486
5487	// LabelFingerprint: A fingerprint for the labels being applied to this
5488	// disk, which is essentially a hash of the labels set used for
5489	// optimistic locking. The fingerprint is initially generated by Compute
5490	// Engine and changes after every request to modify or update labels.
5491	// You must always provide an up-to-date fingerprint hash in order to
5492	// update or change labels, otherwise the request will fail with error
5493	// 412 conditionNotMet.
5494	//
5495	// To see the latest fingerprint, make a get() request to retrieve a
5496	// disk.
5497	LabelFingerprint string `json:"labelFingerprint,omitempty"`
5498
5499	// Labels: Labels to apply to this disk. These can be later modified by
5500	// the setLabels method.
5501	Labels map[string]string `json:"labels,omitempty"`
5502
5503	// LastAttachTimestamp: [Output Only] Last attach timestamp in RFC3339
5504	// text format.
5505	LastAttachTimestamp string `json:"lastAttachTimestamp,omitempty"`
5506
5507	// LastDetachTimestamp: [Output Only] Last detach timestamp in RFC3339
5508	// text format.
5509	LastDetachTimestamp string `json:"lastDetachTimestamp,omitempty"`
5510
5511	// LicenseCodes: Integer license codes indicating which licenses are
5512	// attached to this disk.
5513	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
5514
5515	// Licenses: A list of publicly visible licenses. Reserved for Google's
5516	// use.
5517	Licenses []string `json:"licenses,omitempty"`
5518
5519	// Name: Name of the resource. Provided by the client when the resource
5520	// is created. The name must be 1-63 characters long, and comply with
5521	// RFC1035. Specifically, the name must be 1-63 characters long and
5522	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
5523	// the first character must be a lowercase letter, and all following
5524	// characters must be a dash, lowercase letter, or digit, except the
5525	// last character, which cannot be a dash.
5526	Name string `json:"name,omitempty"`
5527
5528	// Options: Internal use only.
5529	Options string `json:"options,omitempty"`
5530
5531	// PhysicalBlockSizeBytes: Physical block size of the persistent disk,
5532	// in bytes. If not present in a request, a default value is used.
5533	// Currently supported sizes are 4096 and 16384, other sizes may be
5534	// added in the future. If an unsupported value is requested, the error
5535	// message will list the supported values for the caller's project.
5536	PhysicalBlockSizeBytes int64 `json:"physicalBlockSizeBytes,omitempty,string"`
5537
5538	// Region: [Output Only] URL of the region where the disk resides. Only
5539	// applicable for regional resources. You must specify this field as
5540	// part of the HTTP request URL. It is not settable as a field in the
5541	// request body.
5542	Region string `json:"region,omitempty"`
5543
5544	// ReplicaZones: URLs of the zones where the disk should be replicated
5545	// to. Only applicable for regional resources.
5546	ReplicaZones []string `json:"replicaZones,omitempty"`
5547
5548	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
5549	// resource.
5550	SelfLink string `json:"selfLink,omitempty"`
5551
5552	// SizeGb: Size of the persistent disk, specified in GB. You can specify
5553	// this field when creating a persistent disk using the sourceImage or
5554	// sourceSnapshot parameter, or specify it alone to create an empty
5555	// persistent disk.
5556	//
5557	// If you specify this field along with sourceImage or sourceSnapshot,
5558	// the value of sizeGb must not be less than the size of the sourceImage
5559	// or the size of the snapshot. Acceptable values are 1 to 65536,
5560	// inclusive.
5561	SizeGb int64 `json:"sizeGb,omitempty,string"`
5562
5563	// SourceImage: The source image used to create this disk. If the source
5564	// image is deleted, this field will not be set.
5565	//
5566	// To create a disk with one of the public operating system images,
5567	// specify the image by its family name. For example, specify
5568	// family/debian-9 to use the latest Debian 9
5569	// image:
5570	// projects/debian-cloud/global/images/family/debian-9
5571	//
5572	//
5573	// Alternati
5574	// vely, use a specific version of a public operating system
5575	// image:
5576	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
5577	//
5578	//
5579	//
5580	// To create a disk with a custom image that you created, specify the
5581	// image name in the following
5582	// format:
5583	// global/images/my-custom-image
5584	//
5585	//
5586	// You can also specify a custom image by its image family, which
5587	// returns the latest version of the image in that family. Replace the
5588	// image name with
5589	// family/family-name:
5590	// global/images/family/my-image-family
5591	SourceImage string `json:"sourceImage,omitempty"`
5592
5593	// SourceImageEncryptionKey: The customer-supplied encryption key of the
5594	// source image. Required if the source image is protected by a
5595	// customer-supplied encryption key.
5596	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
5597
5598	// SourceImageId: [Output Only] The ID value of the image used to create
5599	// this disk. This value identifies the exact image that was used to
5600	// create this persistent disk. For example, if you created the
5601	// persistent disk from an image that was later deleted and recreated
5602	// under the same name, the source image ID would identify the exact
5603	// version of the image that was used.
5604	SourceImageId string `json:"sourceImageId,omitempty"`
5605
5606	// SourceSnapshot: The source snapshot used to create this disk. You can
5607	// provide this as a partial or full URL to the resource. For example,
5608	// the following are valid values:
5609	// -
5610	// https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot
5611	// - projects/project/global/snapshots/snapshot
5612	// - global/snapshots/snapshot
5613	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
5614
5615	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
5616	// the source snapshot. Required if the source snapshot is protected by
5617	// a customer-supplied encryption key.
5618	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
5619
5620	// SourceSnapshotId: [Output Only] The unique ID of the snapshot used to
5621	// create this disk. This value identifies the exact snapshot that was
5622	// used to create this persistent disk. For example, if you created the
5623	// persistent disk from a snapshot that was later deleted and recreated
5624	// under the same name, the source snapshot ID would identify the exact
5625	// version of the snapshot that was used.
5626	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
5627
5628	// Status: [Output Only] The status of disk creation.
5629	//
5630	// Possible values:
5631	//   "CREATING"
5632	//   "DELETING"
5633	//   "FAILED"
5634	//   "READY"
5635	//   "RESTORING"
5636	Status string `json:"status,omitempty"`
5637
5638	// Type: URL of the disk type resource describing which disk type to use
5639	// to create the disk. Provide this when creating the disk. For example:
5640	// project/zones/zone/diskTypes/pd-standard or pd-ssd
5641	Type string `json:"type,omitempty"`
5642
5643	// Users: [Output Only] Links to the users of the disk (attached
5644	// instances) in form: project/zones/zone/instances/instance
5645	Users []string `json:"users,omitempty"`
5646
5647	// Zone: [Output Only] URL of the zone where the disk resides. You must
5648	// specify this field as part of the HTTP request URL. It is not
5649	// settable as a field in the request body.
5650	Zone string `json:"zone,omitempty"`
5651
5652	// ServerResponse contains the HTTP response code and headers from the
5653	// server.
5654	googleapi.ServerResponse `json:"-"`
5655
5656	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
5657	// to unconditionally include in API requests. By default, fields with
5658	// empty values are omitted from API requests. However, any non-pointer,
5659	// non-interface field appearing in ForceSendFields will be sent to the
5660	// server regardless of whether the field is empty or not. This may be
5661	// used to include empty fields in Patch requests.
5662	ForceSendFields []string `json:"-"`
5663
5664	// NullFields is a list of field names (e.g. "CreationTimestamp") to
5665	// include in API requests with the JSON null value. By default, fields
5666	// with empty values are omitted from API requests. However, any field
5667	// with an empty value appearing in NullFields will be sent to the
5668	// server as null. It is an error if a field in this list has a
5669	// non-empty value. This may be used to include null fields in Patch
5670	// requests.
5671	NullFields []string `json:"-"`
5672}
5673
5674func (s *Disk) MarshalJSON() ([]byte, error) {
5675	type NoMethod Disk
5676	raw := NoMethod(*s)
5677	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5678}
5679
5680type DiskAggregatedList struct {
5681	// Id: [Output Only] Unique identifier for the resource; defined by the
5682	// server.
5683	Id string `json:"id,omitempty"`
5684
5685	// Items: A list of DisksScopedList resources.
5686	Items map[string]DisksScopedList `json:"items,omitempty"`
5687
5688	// Kind: [Output Only] Type of resource. Always
5689	// compute#diskAggregatedList for aggregated lists of persistent disks.
5690	Kind string `json:"kind,omitempty"`
5691
5692	// NextPageToken: [Output Only] This token allows you to get the next
5693	// page of results for list requests. If the number of results is larger
5694	// than maxResults, use the nextPageToken as a value for the query
5695	// parameter pageToken in the next list request. Subsequent list
5696	// requests will have their own nextPageToken to continue paging through
5697	// the results.
5698	NextPageToken string `json:"nextPageToken,omitempty"`
5699
5700	// SelfLink: [Output Only] Server-defined URL for this resource.
5701	SelfLink string `json:"selfLink,omitempty"`
5702
5703	// Warning: [Output Only] Informational warning message.
5704	Warning *DiskAggregatedListWarning `json:"warning,omitempty"`
5705
5706	// ServerResponse contains the HTTP response code and headers from the
5707	// server.
5708	googleapi.ServerResponse `json:"-"`
5709
5710	// ForceSendFields is a list of field names (e.g. "Id") to
5711	// unconditionally include in API requests. By default, fields with
5712	// empty values are omitted from API requests. However, any non-pointer,
5713	// non-interface field appearing in ForceSendFields will be sent to the
5714	// server regardless of whether the field is empty or not. This may be
5715	// used to include empty fields in Patch requests.
5716	ForceSendFields []string `json:"-"`
5717
5718	// NullFields is a list of field names (e.g. "Id") to include in API
5719	// requests with the JSON null value. By default, fields with empty
5720	// values are omitted from API requests. However, any field with an
5721	// empty value appearing in NullFields will be sent to the server as
5722	// null. It is an error if a field in this list has a non-empty value.
5723	// This may be used to include null fields in Patch requests.
5724	NullFields []string `json:"-"`
5725}
5726
5727func (s *DiskAggregatedList) MarshalJSON() ([]byte, error) {
5728	type NoMethod DiskAggregatedList
5729	raw := NoMethod(*s)
5730	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5731}
5732
5733// DiskAggregatedListWarning: [Output Only] Informational warning
5734// message.
5735type DiskAggregatedListWarning struct {
5736	// Code: [Output Only] A warning code, if applicable. For example,
5737	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5738	// the response.
5739	//
5740	// Possible values:
5741	//   "CLEANUP_FAILED"
5742	//   "DEPRECATED_RESOURCE_USED"
5743	//   "DEPRECATED_TYPE_USED"
5744	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5745	//   "EXPERIMENTAL_TYPE_USED"
5746	//   "EXTERNAL_API_WARNING"
5747	//   "FIELD_VALUE_OVERRIDEN"
5748	//   "INJECTED_KERNELS_DEPRECATED"
5749	//   "MISSING_TYPE_DEPENDENCY"
5750	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5751	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5752	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5753	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5754	//   "NEXT_HOP_NOT_RUNNING"
5755	//   "NOT_CRITICAL_ERROR"
5756	//   "NO_RESULTS_ON_PAGE"
5757	//   "REQUIRED_TOS_AGREEMENT"
5758	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5759	//   "RESOURCE_NOT_DELETED"
5760	//   "SCHEMA_VALIDATION_IGNORED"
5761	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5762	//   "UNDECLARED_PROPERTIES"
5763	//   "UNREACHABLE"
5764	Code string `json:"code,omitempty"`
5765
5766	// Data: [Output Only] Metadata about this warning in key: value format.
5767	// For example:
5768	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5769	Data []*DiskAggregatedListWarningData `json:"data,omitempty"`
5770
5771	// Message: [Output Only] A human-readable description of the warning
5772	// code.
5773	Message string `json:"message,omitempty"`
5774
5775	// ForceSendFields is a list of field names (e.g. "Code") to
5776	// unconditionally include in API requests. By default, fields with
5777	// empty values are omitted from API requests. However, any non-pointer,
5778	// non-interface field appearing in ForceSendFields will be sent to the
5779	// server regardless of whether the field is empty or not. This may be
5780	// used to include empty fields in Patch requests.
5781	ForceSendFields []string `json:"-"`
5782
5783	// NullFields is a list of field names (e.g. "Code") to include in API
5784	// requests with the JSON null value. By default, fields with empty
5785	// values are omitted from API requests. However, any field with an
5786	// empty value appearing in NullFields will be sent to the server as
5787	// null. It is an error if a field in this list has a non-empty value.
5788	// This may be used to include null fields in Patch requests.
5789	NullFields []string `json:"-"`
5790}
5791
5792func (s *DiskAggregatedListWarning) MarshalJSON() ([]byte, error) {
5793	type NoMethod DiskAggregatedListWarning
5794	raw := NoMethod(*s)
5795	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5796}
5797
5798type DiskAggregatedListWarningData struct {
5799	// Key: [Output Only] A key that provides more detail on the warning
5800	// being returned. For example, for warnings where there are no results
5801	// in a list request for a particular zone, this key might be scope and
5802	// the key value might be the zone name. Other examples might be a key
5803	// indicating a deprecated resource and a suggested replacement, or a
5804	// warning about invalid network settings (for example, if an instance
5805	// attempts to perform IP forwarding but is not enabled for IP
5806	// forwarding).
5807	Key string `json:"key,omitempty"`
5808
5809	// Value: [Output Only] A warning data value corresponding to the key.
5810	Value string `json:"value,omitempty"`
5811
5812	// ForceSendFields is a list of field names (e.g. "Key") to
5813	// unconditionally include in API requests. By default, fields with
5814	// empty values are omitted from API requests. However, any non-pointer,
5815	// non-interface field appearing in ForceSendFields will be sent to the
5816	// server regardless of whether the field is empty or not. This may be
5817	// used to include empty fields in Patch requests.
5818	ForceSendFields []string `json:"-"`
5819
5820	// NullFields is a list of field names (e.g. "Key") to include in API
5821	// requests with the JSON null value. By default, fields with empty
5822	// values are omitted from API requests. However, any field with an
5823	// empty value appearing in NullFields will be sent to the server as
5824	// null. It is an error if a field in this list has a non-empty value.
5825	// This may be used to include null fields in Patch requests.
5826	NullFields []string `json:"-"`
5827}
5828
5829func (s *DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) {
5830	type NoMethod DiskAggregatedListWarningData
5831	raw := NoMethod(*s)
5832	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5833}
5834
5835// DiskInstantiationConfig: A specification of the desired way to
5836// instantiate a disk in the instance template when its created from a
5837// source instance.
5838type DiskInstantiationConfig struct {
5839	// AutoDelete: Specifies whether the disk will be auto-deleted when the
5840	// instance is deleted (but not when the disk is detached from the
5841	// instance).
5842	AutoDelete bool `json:"autoDelete,omitempty"`
5843
5844	// CustomImage: The custom source image to be used to restore this disk
5845	// when instantiating this instance template.
5846	CustomImage string `json:"customImage,omitempty"`
5847
5848	// DeviceName: Specifies the device name of the disk to which the
5849	// configurations apply to.
5850	DeviceName string `json:"deviceName,omitempty"`
5851
5852	// InstantiateFrom: Specifies whether to include the disk and what image
5853	// to use. Possible values are:
5854	// - source-image: to use the same image that was used to create the
5855	// source instance's corresponding disk. Applicable to the boot disk and
5856	// additional read-write disks.
5857	// - source-image-family: to use the same image family that was used to
5858	// create the source instance's corresponding disk. Applicable to the
5859	// boot disk and additional read-write disks.
5860	// - custom-image: to use a user-provided image url for disk creation.
5861	// Applicable to the boot disk and additional read-write disks.
5862	// - attach-read-only: to attach a read-only disk. Applicable to
5863	// read-only disks.
5864	// - do-not-include: to exclude a disk from the template. Applicable to
5865	// additional read-write disks, local SSDs, and read-only disks.
5866	//
5867	// Possible values:
5868	//   "ATTACH_READ_ONLY"
5869	//   "BLANK"
5870	//   "CUSTOM_IMAGE"
5871	//   "DEFAULT"
5872	//   "DO_NOT_INCLUDE"
5873	//   "SOURCE_IMAGE"
5874	//   "SOURCE_IMAGE_FAMILY"
5875	InstantiateFrom string `json:"instantiateFrom,omitempty"`
5876
5877	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
5878	// unconditionally include in API requests. By default, fields with
5879	// empty values are omitted from API requests. However, any non-pointer,
5880	// non-interface field appearing in ForceSendFields will be sent to the
5881	// server regardless of whether the field is empty or not. This may be
5882	// used to include empty fields in Patch requests.
5883	ForceSendFields []string `json:"-"`
5884
5885	// NullFields is a list of field names (e.g. "AutoDelete") to include in
5886	// API requests with the JSON null value. By default, fields with empty
5887	// values are omitted from API requests. However, any field with an
5888	// empty value appearing in NullFields will be sent to the server as
5889	// null. It is an error if a field in this list has a non-empty value.
5890	// This may be used to include null fields in Patch requests.
5891	NullFields []string `json:"-"`
5892}
5893
5894func (s *DiskInstantiationConfig) MarshalJSON() ([]byte, error) {
5895	type NoMethod DiskInstantiationConfig
5896	raw := NoMethod(*s)
5897	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5898}
5899
5900// DiskList: A list of Disk resources.
5901type DiskList struct {
5902	// Id: [Output Only] Unique identifier for the resource; defined by the
5903	// server.
5904	Id string `json:"id,omitempty"`
5905
5906	// Items: A list of Disk resources.
5907	Items []*Disk `json:"items,omitempty"`
5908
5909	// Kind: [Output Only] Type of resource. Always compute#diskList for
5910	// lists of disks.
5911	Kind string `json:"kind,omitempty"`
5912
5913	// NextPageToken: [Output Only] This token allows you to get the next
5914	// page of results for list requests. If the number of results is larger
5915	// than maxResults, use the nextPageToken as a value for the query
5916	// parameter pageToken in the next list request. Subsequent list
5917	// requests will have their own nextPageToken to continue paging through
5918	// the results.
5919	NextPageToken string `json:"nextPageToken,omitempty"`
5920
5921	// SelfLink: [Output Only] Server-defined URL for this resource.
5922	SelfLink string `json:"selfLink,omitempty"`
5923
5924	// Warning: [Output Only] Informational warning message.
5925	Warning *DiskListWarning `json:"warning,omitempty"`
5926
5927	// ServerResponse contains the HTTP response code and headers from the
5928	// server.
5929	googleapi.ServerResponse `json:"-"`
5930
5931	// ForceSendFields is a list of field names (e.g. "Id") to
5932	// unconditionally include in API requests. By default, fields with
5933	// empty values are omitted from API requests. However, any non-pointer,
5934	// non-interface field appearing in ForceSendFields will be sent to the
5935	// server regardless of whether the field is empty or not. This may be
5936	// used to include empty fields in Patch requests.
5937	ForceSendFields []string `json:"-"`
5938
5939	// NullFields is a list of field names (e.g. "Id") to include in API
5940	// requests with the JSON null value. By default, fields with empty
5941	// values are omitted from API requests. However, any field with an
5942	// empty value appearing in NullFields will be sent to the server as
5943	// null. It is an error if a field in this list has a non-empty value.
5944	// This may be used to include null fields in Patch requests.
5945	NullFields []string `json:"-"`
5946}
5947
5948func (s *DiskList) MarshalJSON() ([]byte, error) {
5949	type NoMethod DiskList
5950	raw := NoMethod(*s)
5951	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5952}
5953
5954// DiskListWarning: [Output Only] Informational warning message.
5955type DiskListWarning struct {
5956	// Code: [Output Only] A warning code, if applicable. For example,
5957	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5958	// the response.
5959	//
5960	// Possible values:
5961	//   "CLEANUP_FAILED"
5962	//   "DEPRECATED_RESOURCE_USED"
5963	//   "DEPRECATED_TYPE_USED"
5964	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5965	//   "EXPERIMENTAL_TYPE_USED"
5966	//   "EXTERNAL_API_WARNING"
5967	//   "FIELD_VALUE_OVERRIDEN"
5968	//   "INJECTED_KERNELS_DEPRECATED"
5969	//   "MISSING_TYPE_DEPENDENCY"
5970	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5971	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5972	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5973	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5974	//   "NEXT_HOP_NOT_RUNNING"
5975	//   "NOT_CRITICAL_ERROR"
5976	//   "NO_RESULTS_ON_PAGE"
5977	//   "REQUIRED_TOS_AGREEMENT"
5978	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5979	//   "RESOURCE_NOT_DELETED"
5980	//   "SCHEMA_VALIDATION_IGNORED"
5981	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5982	//   "UNDECLARED_PROPERTIES"
5983	//   "UNREACHABLE"
5984	Code string `json:"code,omitempty"`
5985
5986	// Data: [Output Only] Metadata about this warning in key: value format.
5987	// For example:
5988	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5989	Data []*DiskListWarningData `json:"data,omitempty"`
5990
5991	// Message: [Output Only] A human-readable description of the warning
5992	// code.
5993	Message string `json:"message,omitempty"`
5994
5995	// ForceSendFields is a list of field names (e.g. "Code") to
5996	// unconditionally include in API requests. By default, fields with
5997	// empty values are omitted from API requests. However, any non-pointer,
5998	// non-interface field appearing in ForceSendFields will be sent to the
5999	// server regardless of whether the field is empty or not. This may be
6000	// used to include empty fields in Patch requests.
6001	ForceSendFields []string `json:"-"`
6002
6003	// NullFields is a list of field names (e.g. "Code") to include in API
6004	// requests with the JSON null value. By default, fields with empty
6005	// values are omitted from API requests. However, any field with an
6006	// empty value appearing in NullFields will be sent to the server as
6007	// null. It is an error if a field in this list has a non-empty value.
6008	// This may be used to include null fields in Patch requests.
6009	NullFields []string `json:"-"`
6010}
6011
6012func (s *DiskListWarning) MarshalJSON() ([]byte, error) {
6013	type NoMethod DiskListWarning
6014	raw := NoMethod(*s)
6015	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6016}
6017
6018type DiskListWarningData struct {
6019	// Key: [Output Only] A key that provides more detail on the warning
6020	// being returned. For example, for warnings where there are no results
6021	// in a list request for a particular zone, this key might be scope and
6022	// the key value might be the zone name. Other examples might be a key
6023	// indicating a deprecated resource and a suggested replacement, or a
6024	// warning about invalid network settings (for example, if an instance
6025	// attempts to perform IP forwarding but is not enabled for IP
6026	// forwarding).
6027	Key string `json:"key,omitempty"`
6028
6029	// Value: [Output Only] A warning data value corresponding to the key.
6030	Value string `json:"value,omitempty"`
6031
6032	// ForceSendFields is a list of field names (e.g. "Key") to
6033	// unconditionally include in API requests. By default, fields with
6034	// empty values are omitted from API requests. However, any non-pointer,
6035	// non-interface field appearing in ForceSendFields will be sent to the
6036	// server regardless of whether the field is empty or not. This may be
6037	// used to include empty fields in Patch requests.
6038	ForceSendFields []string `json:"-"`
6039
6040	// NullFields is a list of field names (e.g. "Key") to include in API
6041	// requests with the JSON null value. By default, fields with empty
6042	// values are omitted from API requests. However, any field with an
6043	// empty value appearing in NullFields will be sent to the server as
6044	// null. It is an error if a field in this list has a non-empty value.
6045	// This may be used to include null fields in Patch requests.
6046	NullFields []string `json:"-"`
6047}
6048
6049func (s *DiskListWarningData) MarshalJSON() ([]byte, error) {
6050	type NoMethod DiskListWarningData
6051	raw := NoMethod(*s)
6052	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6053}
6054
6055type DiskMoveRequest struct {
6056	// DestinationZone: The URL of the destination zone to move the disk.
6057	// This can be a full or partial URL. For example, the following are all
6058	// valid URLs to a zone:
6059	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
6060	//
6061	// - projects/project/zones/zone
6062	// - zones/zone
6063	DestinationZone string `json:"destinationZone,omitempty"`
6064
6065	// TargetDisk: The URL of the target disk to move. This can be a full or
6066	// partial URL. For example, the following are all valid URLs to a disk:
6067	//
6068	// -
6069	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
6070	// - projects/project/zones/zone/disks/disk
6071	// - zones/zone/disks/disk
6072	TargetDisk string `json:"targetDisk,omitempty"`
6073
6074	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
6075	// unconditionally include in API requests. By default, fields with
6076	// empty values are omitted from API requests. However, any non-pointer,
6077	// non-interface field appearing in ForceSendFields will be sent to the
6078	// server regardless of whether the field is empty or not. This may be
6079	// used to include empty fields in Patch requests.
6080	ForceSendFields []string `json:"-"`
6081
6082	// NullFields is a list of field names (e.g. "DestinationZone") to
6083	// include in API requests with the JSON null value. By default, fields
6084	// with empty values are omitted from API requests. However, any field
6085	// with an empty value appearing in NullFields will be sent to the
6086	// server as null. It is an error if a field in this list has a
6087	// non-empty value. This may be used to include null fields in Patch
6088	// requests.
6089	NullFields []string `json:"-"`
6090}
6091
6092func (s *DiskMoveRequest) MarshalJSON() ([]byte, error) {
6093	type NoMethod DiskMoveRequest
6094	raw := NoMethod(*s)
6095	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6096}
6097
6098// DiskType: A DiskType resource. (== resource_for beta.diskTypes ==)
6099// (== resource_for v1.diskTypes ==)
6100type DiskType struct {
6101	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
6102	// format.
6103	CreationTimestamp string `json:"creationTimestamp,omitempty"`
6104
6105	// DefaultDiskSizeGb: [Output Only] Server-defined default disk size in
6106	// GB.
6107	DefaultDiskSizeGb int64 `json:"defaultDiskSizeGb,omitempty,string"`
6108
6109	// Deprecated: [Output Only] The deprecation status associated with this
6110	// disk type.
6111	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
6112
6113	// Description: [Output Only] An optional description of this resource.
6114	Description string `json:"description,omitempty"`
6115
6116	// Id: [Output Only] The unique identifier for the resource. This
6117	// identifier is defined by the server.
6118	Id uint64 `json:"id,omitempty,string"`
6119
6120	// Kind: [Output Only] Type of the resource. Always compute#diskType for
6121	// disk types.
6122	Kind string `json:"kind,omitempty"`
6123
6124	// Name: [Output Only] Name of the resource.
6125	Name string `json:"name,omitempty"`
6126
6127	// Region: [Output Only] URL of the region where the disk type resides.
6128	// Only applicable for regional resources. You must specify this field
6129	// as part of the HTTP request URL. It is not settable as a field in the
6130	// request body.
6131	Region string `json:"region,omitempty"`
6132
6133	// SelfLink: [Output Only] Server-defined URL for the resource.
6134	SelfLink string `json:"selfLink,omitempty"`
6135
6136	// ValidDiskSize: [Output Only] An optional textual description of the
6137	// valid disk size, such as "10GB-10TB".
6138	ValidDiskSize string `json:"validDiskSize,omitempty"`
6139
6140	// Zone: [Output Only] URL of the zone where the disk type resides. You
6141	// must specify this field as part of the HTTP request URL. It is not
6142	// settable as a field in the request body.
6143	Zone string `json:"zone,omitempty"`
6144
6145	// ServerResponse contains the HTTP response code and headers from the
6146	// server.
6147	googleapi.ServerResponse `json:"-"`
6148
6149	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
6150	// to unconditionally include in API requests. By default, fields with
6151	// empty values are omitted from API requests. However, any non-pointer,
6152	// non-interface field appearing in ForceSendFields will be sent to the
6153	// server regardless of whether the field is empty or not. This may be
6154	// used to include empty fields in Patch requests.
6155	ForceSendFields []string `json:"-"`
6156
6157	// NullFields is a list of field names (e.g. "CreationTimestamp") to
6158	// include in API requests with the JSON null value. By default, fields
6159	// with empty values are omitted from API requests. However, any field
6160	// with an empty value appearing in NullFields will be sent to the
6161	// server as null. It is an error if a field in this list has a
6162	// non-empty value. This may be used to include null fields in Patch
6163	// requests.
6164	NullFields []string `json:"-"`
6165}
6166
6167func (s *DiskType) MarshalJSON() ([]byte, error) {
6168	type NoMethod DiskType
6169	raw := NoMethod(*s)
6170	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6171}
6172
6173type DiskTypeAggregatedList struct {
6174	// Id: [Output Only] Unique identifier for the resource; defined by the
6175	// server.
6176	Id string `json:"id,omitempty"`
6177
6178	// Items: A list of DiskTypesScopedList resources.
6179	Items map[string]DiskTypesScopedList `json:"items,omitempty"`
6180
6181	// Kind: [Output Only] Type of resource. Always
6182	// compute#diskTypeAggregatedList.
6183	Kind string `json:"kind,omitempty"`
6184
6185	// NextPageToken: [Output Only] This token allows you to get the next
6186	// page of results for list requests. If the number of results is larger
6187	// than maxResults, use the nextPageToken as a value for the query
6188	// parameter pageToken in the next list request. Subsequent list
6189	// requests will have their own nextPageToken to continue paging through
6190	// the results.
6191	NextPageToken string `json:"nextPageToken,omitempty"`
6192
6193	// SelfLink: [Output Only] Server-defined URL for this resource.
6194	SelfLink string `json:"selfLink,omitempty"`
6195
6196	// Warning: [Output Only] Informational warning message.
6197	Warning *DiskTypeAggregatedListWarning `json:"warning,omitempty"`
6198
6199	// ServerResponse contains the HTTP response code and headers from the
6200	// server.
6201	googleapi.ServerResponse `json:"-"`
6202
6203	// ForceSendFields is a list of field names (e.g. "Id") to
6204	// unconditionally include in API requests. By default, fields with
6205	// empty values are omitted from API requests. However, any non-pointer,
6206	// non-interface field appearing in ForceSendFields will be sent to the
6207	// server regardless of whether the field is empty or not. This may be
6208	// used to include empty fields in Patch requests.
6209	ForceSendFields []string `json:"-"`
6210
6211	// NullFields is a list of field names (e.g. "Id") to include in API
6212	// requests with the JSON null value. By default, fields with empty
6213	// values are omitted from API requests. However, any field with an
6214	// empty value appearing in NullFields will be sent to the server as
6215	// null. It is an error if a field in this list has a non-empty value.
6216	// This may be used to include null fields in Patch requests.
6217	NullFields []string `json:"-"`
6218}
6219
6220func (s *DiskTypeAggregatedList) MarshalJSON() ([]byte, error) {
6221	type NoMethod DiskTypeAggregatedList
6222	raw := NoMethod(*s)
6223	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6224}
6225
6226// DiskTypeAggregatedListWarning: [Output Only] Informational warning
6227// message.
6228type DiskTypeAggregatedListWarning struct {
6229	// Code: [Output Only] A warning code, if applicable. For example,
6230	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6231	// the response.
6232	//
6233	// Possible values:
6234	//   "CLEANUP_FAILED"
6235	//   "DEPRECATED_RESOURCE_USED"
6236	//   "DEPRECATED_TYPE_USED"
6237	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6238	//   "EXPERIMENTAL_TYPE_USED"
6239	//   "EXTERNAL_API_WARNING"
6240	//   "FIELD_VALUE_OVERRIDEN"
6241	//   "INJECTED_KERNELS_DEPRECATED"
6242	//   "MISSING_TYPE_DEPENDENCY"
6243	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6244	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6245	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6246	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6247	//   "NEXT_HOP_NOT_RUNNING"
6248	//   "NOT_CRITICAL_ERROR"
6249	//   "NO_RESULTS_ON_PAGE"
6250	//   "REQUIRED_TOS_AGREEMENT"
6251	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6252	//   "RESOURCE_NOT_DELETED"
6253	//   "SCHEMA_VALIDATION_IGNORED"
6254	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6255	//   "UNDECLARED_PROPERTIES"
6256	//   "UNREACHABLE"
6257	Code string `json:"code,omitempty"`
6258
6259	// Data: [Output Only] Metadata about this warning in key: value format.
6260	// For example:
6261	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6262	Data []*DiskTypeAggregatedListWarningData `json:"data,omitempty"`
6263
6264	// Message: [Output Only] A human-readable description of the warning
6265	// code.
6266	Message string `json:"message,omitempty"`
6267
6268	// ForceSendFields is a list of field names (e.g. "Code") to
6269	// unconditionally include in API requests. By default, fields with
6270	// empty values are omitted from API requests. However, any non-pointer,
6271	// non-interface field appearing in ForceSendFields will be sent to the
6272	// server regardless of whether the field is empty or not. This may be
6273	// used to include empty fields in Patch requests.
6274	ForceSendFields []string `json:"-"`
6275
6276	// NullFields is a list of field names (e.g. "Code") to include in API
6277	// requests with the JSON null value. By default, fields with empty
6278	// values are omitted from API requests. However, any field with an
6279	// empty value appearing in NullFields will be sent to the server as
6280	// null. It is an error if a field in this list has a non-empty value.
6281	// This may be used to include null fields in Patch requests.
6282	NullFields []string `json:"-"`
6283}
6284
6285func (s *DiskTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
6286	type NoMethod DiskTypeAggregatedListWarning
6287	raw := NoMethod(*s)
6288	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6289}
6290
6291type DiskTypeAggregatedListWarningData struct {
6292	// Key: [Output Only] A key that provides more detail on the warning
6293	// being returned. For example, for warnings where there are no results
6294	// in a list request for a particular zone, this key might be scope and
6295	// the key value might be the zone name. Other examples might be a key
6296	// indicating a deprecated resource and a suggested replacement, or a
6297	// warning about invalid network settings (for example, if an instance
6298	// attempts to perform IP forwarding but is not enabled for IP
6299	// forwarding).
6300	Key string `json:"key,omitempty"`
6301
6302	// Value: [Output Only] A warning data value corresponding to the key.
6303	Value string `json:"value,omitempty"`
6304
6305	// ForceSendFields is a list of field names (e.g. "Key") to
6306	// unconditionally include in API requests. By default, fields with
6307	// empty values are omitted from API requests. However, any non-pointer,
6308	// non-interface field appearing in ForceSendFields will be sent to the
6309	// server regardless of whether the field is empty or not. This may be
6310	// used to include empty fields in Patch requests.
6311	ForceSendFields []string `json:"-"`
6312
6313	// NullFields is a list of field names (e.g. "Key") to include in API
6314	// requests with the JSON null value. By default, fields with empty
6315	// values are omitted from API requests. However, any field with an
6316	// empty value appearing in NullFields will be sent to the server as
6317	// null. It is an error if a field in this list has a non-empty value.
6318	// This may be used to include null fields in Patch requests.
6319	NullFields []string `json:"-"`
6320}
6321
6322func (s *DiskTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
6323	type NoMethod DiskTypeAggregatedListWarningData
6324	raw := NoMethod(*s)
6325	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6326}
6327
6328// DiskTypeList: Contains a list of disk types.
6329type DiskTypeList struct {
6330	// Id: [Output Only] Unique identifier for the resource; defined by the
6331	// server.
6332	Id string `json:"id,omitempty"`
6333
6334	// Items: A list of DiskType resources.
6335	Items []*DiskType `json:"items,omitempty"`
6336
6337	// Kind: [Output Only] Type of resource. Always compute#diskTypeList for
6338	// disk types.
6339	Kind string `json:"kind,omitempty"`
6340
6341	// NextPageToken: [Output Only] This token allows you to get the next
6342	// page of results for list requests. If the number of results is larger
6343	// than maxResults, use the nextPageToken as a value for the query
6344	// parameter pageToken in the next list request. Subsequent list
6345	// requests will have their own nextPageToken to continue paging through
6346	// the results.
6347	NextPageToken string `json:"nextPageToken,omitempty"`
6348
6349	// SelfLink: [Output Only] Server-defined URL for this resource.
6350	SelfLink string `json:"selfLink,omitempty"`
6351
6352	// Warning: [Output Only] Informational warning message.
6353	Warning *DiskTypeListWarning `json:"warning,omitempty"`
6354
6355	// ServerResponse contains the HTTP response code and headers from the
6356	// server.
6357	googleapi.ServerResponse `json:"-"`
6358
6359	// ForceSendFields is a list of field names (e.g. "Id") to
6360	// unconditionally include in API requests. By default, fields with
6361	// empty values are omitted from API requests. However, any non-pointer,
6362	// non-interface field appearing in ForceSendFields will be sent to the
6363	// server regardless of whether the field is empty or not. This may be
6364	// used to include empty fields in Patch requests.
6365	ForceSendFields []string `json:"-"`
6366
6367	// NullFields is a list of field names (e.g. "Id") to include in API
6368	// requests with the JSON null value. By default, fields with empty
6369	// values are omitted from API requests. However, any field with an
6370	// empty value appearing in NullFields will be sent to the server as
6371	// null. It is an error if a field in this list has a non-empty value.
6372	// This may be used to include null fields in Patch requests.
6373	NullFields []string `json:"-"`
6374}
6375
6376func (s *DiskTypeList) MarshalJSON() ([]byte, error) {
6377	type NoMethod DiskTypeList
6378	raw := NoMethod(*s)
6379	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6380}
6381
6382// DiskTypeListWarning: [Output Only] Informational warning message.
6383type DiskTypeListWarning struct {
6384	// Code: [Output Only] A warning code, if applicable. For example,
6385	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6386	// the response.
6387	//
6388	// Possible values:
6389	//   "CLEANUP_FAILED"
6390	//   "DEPRECATED_RESOURCE_USED"
6391	//   "DEPRECATED_TYPE_USED"
6392	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6393	//   "EXPERIMENTAL_TYPE_USED"
6394	//   "EXTERNAL_API_WARNING"
6395	//   "FIELD_VALUE_OVERRIDEN"
6396	//   "INJECTED_KERNELS_DEPRECATED"
6397	//   "MISSING_TYPE_DEPENDENCY"
6398	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6399	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6400	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6401	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6402	//   "NEXT_HOP_NOT_RUNNING"
6403	//   "NOT_CRITICAL_ERROR"
6404	//   "NO_RESULTS_ON_PAGE"
6405	//   "REQUIRED_TOS_AGREEMENT"
6406	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6407	//   "RESOURCE_NOT_DELETED"
6408	//   "SCHEMA_VALIDATION_IGNORED"
6409	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6410	//   "UNDECLARED_PROPERTIES"
6411	//   "UNREACHABLE"
6412	Code string `json:"code,omitempty"`
6413
6414	// Data: [Output Only] Metadata about this warning in key: value format.
6415	// For example:
6416	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6417	Data []*DiskTypeListWarningData `json:"data,omitempty"`
6418
6419	// Message: [Output Only] A human-readable description of the warning
6420	// code.
6421	Message string `json:"message,omitempty"`
6422
6423	// ForceSendFields is a list of field names (e.g. "Code") to
6424	// unconditionally include in API requests. By default, fields with
6425	// empty values are omitted from API requests. However, any non-pointer,
6426	// non-interface field appearing in ForceSendFields will be sent to the
6427	// server regardless of whether the field is empty or not. This may be
6428	// used to include empty fields in Patch requests.
6429	ForceSendFields []string `json:"-"`
6430
6431	// NullFields is a list of field names (e.g. "Code") to include in API
6432	// requests with the JSON null value. By default, fields with empty
6433	// values are omitted from API requests. However, any field with an
6434	// empty value appearing in NullFields will be sent to the server as
6435	// null. It is an error if a field in this list has a non-empty value.
6436	// This may be used to include null fields in Patch requests.
6437	NullFields []string `json:"-"`
6438}
6439
6440func (s *DiskTypeListWarning) MarshalJSON() ([]byte, error) {
6441	type NoMethod DiskTypeListWarning
6442	raw := NoMethod(*s)
6443	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6444}
6445
6446type DiskTypeListWarningData struct {
6447	// Key: [Output Only] A key that provides more detail on the warning
6448	// being returned. For example, for warnings where there are no results
6449	// in a list request for a particular zone, this key might be scope and
6450	// the key value might be the zone name. Other examples might be a key
6451	// indicating a deprecated resource and a suggested replacement, or a
6452	// warning about invalid network settings (for example, if an instance
6453	// attempts to perform IP forwarding but is not enabled for IP
6454	// forwarding).
6455	Key string `json:"key,omitempty"`
6456
6457	// Value: [Output Only] A warning data value corresponding to the key.
6458	Value string `json:"value,omitempty"`
6459
6460	// ForceSendFields is a list of field names (e.g. "Key") to
6461	// unconditionally include in API requests. By default, fields with
6462	// empty values are omitted from API requests. However, any non-pointer,
6463	// non-interface field appearing in ForceSendFields will be sent to the
6464	// server regardless of whether the field is empty or not. This may be
6465	// used to include empty fields in Patch requests.
6466	ForceSendFields []string `json:"-"`
6467
6468	// NullFields is a list of field names (e.g. "Key") to include in API
6469	// requests with the JSON null value. By default, fields with empty
6470	// values are omitted from API requests. However, any field with an
6471	// empty value appearing in NullFields will be sent to the server as
6472	// null. It is an error if a field in this list has a non-empty value.
6473	// This may be used to include null fields in Patch requests.
6474	NullFields []string `json:"-"`
6475}
6476
6477func (s *DiskTypeListWarningData) MarshalJSON() ([]byte, error) {
6478	type NoMethod DiskTypeListWarningData
6479	raw := NoMethod(*s)
6480	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6481}
6482
6483type DiskTypesScopedList struct {
6484	// DiskTypes: [Output Only] A list of disk types contained in this
6485	// scope.
6486	DiskTypes []*DiskType `json:"diskTypes,omitempty"`
6487
6488	// Warning: [Output Only] Informational warning which replaces the list
6489	// of disk types when the list is empty.
6490	Warning *DiskTypesScopedListWarning `json:"warning,omitempty"`
6491
6492	// ForceSendFields is a list of field names (e.g. "DiskTypes") to
6493	// unconditionally include in API requests. By default, fields with
6494	// empty values are omitted from API requests. However, any non-pointer,
6495	// non-interface field appearing in ForceSendFields will be sent to the
6496	// server regardless of whether the field is empty or not. This may be
6497	// used to include empty fields in Patch requests.
6498	ForceSendFields []string `json:"-"`
6499
6500	// NullFields is a list of field names (e.g. "DiskTypes") to include in
6501	// API requests with the JSON null value. By default, fields with empty
6502	// values are omitted from API requests. However, any field with an
6503	// empty value appearing in NullFields will be sent to the server as
6504	// null. It is an error if a field in this list has a non-empty value.
6505	// This may be used to include null fields in Patch requests.
6506	NullFields []string `json:"-"`
6507}
6508
6509func (s *DiskTypesScopedList) MarshalJSON() ([]byte, error) {
6510	type NoMethod DiskTypesScopedList
6511	raw := NoMethod(*s)
6512	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6513}
6514
6515// DiskTypesScopedListWarning: [Output Only] Informational warning which
6516// replaces the list of disk types when the list is empty.
6517type DiskTypesScopedListWarning struct {
6518	// Code: [Output Only] A warning code, if applicable. For example,
6519	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6520	// the response.
6521	//
6522	// Possible values:
6523	//   "CLEANUP_FAILED"
6524	//   "DEPRECATED_RESOURCE_USED"
6525	//   "DEPRECATED_TYPE_USED"
6526	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6527	//   "EXPERIMENTAL_TYPE_USED"
6528	//   "EXTERNAL_API_WARNING"
6529	//   "FIELD_VALUE_OVERRIDEN"
6530	//   "INJECTED_KERNELS_DEPRECATED"
6531	//   "MISSING_TYPE_DEPENDENCY"
6532	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6533	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6534	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6535	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6536	//   "NEXT_HOP_NOT_RUNNING"
6537	//   "NOT_CRITICAL_ERROR"
6538	//   "NO_RESULTS_ON_PAGE"
6539	//   "REQUIRED_TOS_AGREEMENT"
6540	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6541	//   "RESOURCE_NOT_DELETED"
6542	//   "SCHEMA_VALIDATION_IGNORED"
6543	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6544	//   "UNDECLARED_PROPERTIES"
6545	//   "UNREACHABLE"
6546	Code string `json:"code,omitempty"`
6547
6548	// Data: [Output Only] Metadata about this warning in key: value format.
6549	// For example:
6550	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6551	Data []*DiskTypesScopedListWarningData `json:"data,omitempty"`
6552
6553	// Message: [Output Only] A human-readable description of the warning
6554	// code.
6555	Message string `json:"message,omitempty"`
6556
6557	// ForceSendFields is a list of field names (e.g. "Code") to
6558	// unconditionally include in API requests. By default, fields with
6559	// empty values are omitted from API requests. However, any non-pointer,
6560	// non-interface field appearing in ForceSendFields will be sent to the
6561	// server regardless of whether the field is empty or not. This may be
6562	// used to include empty fields in Patch requests.
6563	ForceSendFields []string `json:"-"`
6564
6565	// NullFields is a list of field names (e.g. "Code") to include in API
6566	// requests with the JSON null value. By default, fields with empty
6567	// values are omitted from API requests. However, any field with an
6568	// empty value appearing in NullFields will be sent to the server as
6569	// null. It is an error if a field in this list has a non-empty value.
6570	// This may be used to include null fields in Patch requests.
6571	NullFields []string `json:"-"`
6572}
6573
6574func (s *DiskTypesScopedListWarning) MarshalJSON() ([]byte, error) {
6575	type NoMethod DiskTypesScopedListWarning
6576	raw := NoMethod(*s)
6577	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6578}
6579
6580type DiskTypesScopedListWarningData struct {
6581	// Key: [Output Only] A key that provides more detail on the warning
6582	// being returned. For example, for warnings where there are no results
6583	// in a list request for a particular zone, this key might be scope and
6584	// the key value might be the zone name. Other examples might be a key
6585	// indicating a deprecated resource and a suggested replacement, or a
6586	// warning about invalid network settings (for example, if an instance
6587	// attempts to perform IP forwarding but is not enabled for IP
6588	// forwarding).
6589	Key string `json:"key,omitempty"`
6590
6591	// Value: [Output Only] A warning data value corresponding to the key.
6592	Value string `json:"value,omitempty"`
6593
6594	// ForceSendFields is a list of field names (e.g. "Key") to
6595	// unconditionally include in API requests. By default, fields with
6596	// empty values are omitted from API requests. However, any non-pointer,
6597	// non-interface field appearing in ForceSendFields will be sent to the
6598	// server regardless of whether the field is empty or not. This may be
6599	// used to include empty fields in Patch requests.
6600	ForceSendFields []string `json:"-"`
6601
6602	// NullFields is a list of field names (e.g. "Key") to include in API
6603	// requests with the JSON null value. By default, fields with empty
6604	// values are omitted from API requests. However, any field with an
6605	// empty value appearing in NullFields will be sent to the server as
6606	// null. It is an error if a field in this list has a non-empty value.
6607	// This may be used to include null fields in Patch requests.
6608	NullFields []string `json:"-"`
6609}
6610
6611func (s *DiskTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
6612	type NoMethod DiskTypesScopedListWarningData
6613	raw := NoMethod(*s)
6614	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6615}
6616
6617type DisksResizeRequest struct {
6618	// SizeGb: The new size of the persistent disk, which is specified in
6619	// GB.
6620	SizeGb int64 `json:"sizeGb,omitempty,string"`
6621
6622	// ForceSendFields is a list of field names (e.g. "SizeGb") to
6623	// unconditionally include in API requests. By default, fields with
6624	// empty values are omitted from API requests. However, any non-pointer,
6625	// non-interface field appearing in ForceSendFields will be sent to the
6626	// server regardless of whether the field is empty or not. This may be
6627	// used to include empty fields in Patch requests.
6628	ForceSendFields []string `json:"-"`
6629
6630	// NullFields is a list of field names (e.g. "SizeGb") to include in API
6631	// requests with the JSON null value. By default, fields with empty
6632	// values are omitted from API requests. However, any field with an
6633	// empty value appearing in NullFields will be sent to the server as
6634	// null. It is an error if a field in this list has a non-empty value.
6635	// This may be used to include null fields in Patch requests.
6636	NullFields []string `json:"-"`
6637}
6638
6639func (s *DisksResizeRequest) MarshalJSON() ([]byte, error) {
6640	type NoMethod DisksResizeRequest
6641	raw := NoMethod(*s)
6642	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6643}
6644
6645type DisksScopedList struct {
6646	// Disks: [Output Only] A list of disks contained in this scope.
6647	Disks []*Disk `json:"disks,omitempty"`
6648
6649	// Warning: [Output Only] Informational warning which replaces the list
6650	// of disks when the list is empty.
6651	Warning *DisksScopedListWarning `json:"warning,omitempty"`
6652
6653	// ForceSendFields is a list of field names (e.g. "Disks") to
6654	// unconditionally include in API requests. By default, fields with
6655	// empty values are omitted from API requests. However, any non-pointer,
6656	// non-interface field appearing in ForceSendFields will be sent to the
6657	// server regardless of whether the field is empty or not. This may be
6658	// used to include empty fields in Patch requests.
6659	ForceSendFields []string `json:"-"`
6660
6661	// NullFields is a list of field names (e.g. "Disks") to include in API
6662	// requests with the JSON null value. By default, fields with empty
6663	// values are omitted from API requests. However, any field with an
6664	// empty value appearing in NullFields will be sent to the server as
6665	// null. It is an error if a field in this list has a non-empty value.
6666	// This may be used to include null fields in Patch requests.
6667	NullFields []string `json:"-"`
6668}
6669
6670func (s *DisksScopedList) MarshalJSON() ([]byte, error) {
6671	type NoMethod DisksScopedList
6672	raw := NoMethod(*s)
6673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6674}
6675
6676// DisksScopedListWarning: [Output Only] Informational warning which
6677// replaces the list of disks when the list is empty.
6678type DisksScopedListWarning struct {
6679	// Code: [Output Only] A warning code, if applicable. For example,
6680	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6681	// the response.
6682	//
6683	// Possible values:
6684	//   "CLEANUP_FAILED"
6685	//   "DEPRECATED_RESOURCE_USED"
6686	//   "DEPRECATED_TYPE_USED"
6687	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6688	//   "EXPERIMENTAL_TYPE_USED"
6689	//   "EXTERNAL_API_WARNING"
6690	//   "FIELD_VALUE_OVERRIDEN"
6691	//   "INJECTED_KERNELS_DEPRECATED"
6692	//   "MISSING_TYPE_DEPENDENCY"
6693	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6694	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6695	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6696	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6697	//   "NEXT_HOP_NOT_RUNNING"
6698	//   "NOT_CRITICAL_ERROR"
6699	//   "NO_RESULTS_ON_PAGE"
6700	//   "REQUIRED_TOS_AGREEMENT"
6701	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6702	//   "RESOURCE_NOT_DELETED"
6703	//   "SCHEMA_VALIDATION_IGNORED"
6704	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6705	//   "UNDECLARED_PROPERTIES"
6706	//   "UNREACHABLE"
6707	Code string `json:"code,omitempty"`
6708
6709	// Data: [Output Only] Metadata about this warning in key: value format.
6710	// For example:
6711	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6712	Data []*DisksScopedListWarningData `json:"data,omitempty"`
6713
6714	// Message: [Output Only] A human-readable description of the warning
6715	// code.
6716	Message string `json:"message,omitempty"`
6717
6718	// ForceSendFields is a list of field names (e.g. "Code") to
6719	// unconditionally include in API requests. By default, fields with
6720	// empty values are omitted from API requests. However, any non-pointer,
6721	// non-interface field appearing in ForceSendFields will be sent to the
6722	// server regardless of whether the field is empty or not. This may be
6723	// used to include empty fields in Patch requests.
6724	ForceSendFields []string `json:"-"`
6725
6726	// NullFields is a list of field names (e.g. "Code") to include in API
6727	// requests with the JSON null value. By default, fields with empty
6728	// values are omitted from API requests. However, any field with an
6729	// empty value appearing in NullFields will be sent to the server as
6730	// null. It is an error if a field in this list has a non-empty value.
6731	// This may be used to include null fields in Patch requests.
6732	NullFields []string `json:"-"`
6733}
6734
6735func (s *DisksScopedListWarning) MarshalJSON() ([]byte, error) {
6736	type NoMethod DisksScopedListWarning
6737	raw := NoMethod(*s)
6738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6739}
6740
6741type DisksScopedListWarningData struct {
6742	// Key: [Output Only] A key that provides more detail on the warning
6743	// being returned. For example, for warnings where there are no results
6744	// in a list request for a particular zone, this key might be scope and
6745	// the key value might be the zone name. Other examples might be a key
6746	// indicating a deprecated resource and a suggested replacement, or a
6747	// warning about invalid network settings (for example, if an instance
6748	// attempts to perform IP forwarding but is not enabled for IP
6749	// forwarding).
6750	Key string `json:"key,omitempty"`
6751
6752	// Value: [Output Only] A warning data value corresponding to the key.
6753	Value string `json:"value,omitempty"`
6754
6755	// ForceSendFields is a list of field names (e.g. "Key") to
6756	// unconditionally include in API requests. By default, fields with
6757	// empty values are omitted from API requests. However, any non-pointer,
6758	// non-interface field appearing in ForceSendFields will be sent to the
6759	// server regardless of whether the field is empty or not. This may be
6760	// used to include empty fields in Patch requests.
6761	ForceSendFields []string `json:"-"`
6762
6763	// NullFields is a list of field names (e.g. "Key") to include in API
6764	// requests with the JSON null value. By default, fields with empty
6765	// values are omitted from API requests. However, any field with an
6766	// empty value appearing in NullFields will be sent to the server as
6767	// null. It is an error if a field in this list has a non-empty value.
6768	// This may be used to include null fields in Patch requests.
6769	NullFields []string `json:"-"`
6770}
6771
6772func (s *DisksScopedListWarningData) MarshalJSON() ([]byte, error) {
6773	type NoMethod DisksScopedListWarningData
6774	raw := NoMethod(*s)
6775	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6776}
6777
6778type DistributionPolicy struct {
6779	// Zones: Zones where the regional managed instance group will create
6780	// and manage instances.
6781	Zones []*DistributionPolicyZoneConfiguration `json:"zones,omitempty"`
6782
6783	// ForceSendFields is a list of field names (e.g. "Zones") to
6784	// unconditionally include in API requests. By default, fields with
6785	// empty values are omitted from API requests. However, any non-pointer,
6786	// non-interface field appearing in ForceSendFields will be sent to the
6787	// server regardless of whether the field is empty or not. This may be
6788	// used to include empty fields in Patch requests.
6789	ForceSendFields []string `json:"-"`
6790
6791	// NullFields is a list of field names (e.g. "Zones") to include in API
6792	// requests with the JSON null value. By default, fields with empty
6793	// values are omitted from API requests. However, any field with an
6794	// empty value appearing in NullFields will be sent to the server as
6795	// null. It is an error if a field in this list has a non-empty value.
6796	// This may be used to include null fields in Patch requests.
6797	NullFields []string `json:"-"`
6798}
6799
6800func (s *DistributionPolicy) MarshalJSON() ([]byte, error) {
6801	type NoMethod DistributionPolicy
6802	raw := NoMethod(*s)
6803	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6804}
6805
6806type DistributionPolicyZoneConfiguration struct {
6807	// Zone: The URL of the zone. The zone must exist in the region where
6808	// the managed instance group is located.
6809	Zone string `json:"zone,omitempty"`
6810
6811	// ForceSendFields is a list of field names (e.g. "Zone") to
6812	// unconditionally include in API requests. By default, fields with
6813	// empty values are omitted from API requests. However, any non-pointer,
6814	// non-interface field appearing in ForceSendFields will be sent to the
6815	// server regardless of whether the field is empty or not. This may be
6816	// used to include empty fields in Patch requests.
6817	ForceSendFields []string `json:"-"`
6818
6819	// NullFields is a list of field names (e.g. "Zone") to include in API
6820	// requests with the JSON null value. By default, fields with empty
6821	// values are omitted from API requests. However, any field with an
6822	// empty value appearing in NullFields will be sent to the server as
6823	// null. It is an error if a field in this list has a non-empty value.
6824	// This may be used to include null fields in Patch requests.
6825	NullFields []string `json:"-"`
6826}
6827
6828func (s *DistributionPolicyZoneConfiguration) MarshalJSON() ([]byte, error) {
6829	type NoMethod DistributionPolicyZoneConfiguration
6830	raw := NoMethod(*s)
6831	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6832}
6833
6834// Expr: Represents an expression text. Example:
6835//
6836// title: "User account presence" description: "Determines whether the
6837// request has a user account" expression: "size(request.user) > 0"
6838type Expr struct {
6839	// Description: An optional description of the expression. This is a
6840	// longer text which describes the expression, e.g. when hovered over it
6841	// in a UI.
6842	Description string `json:"description,omitempty"`
6843
6844	// Expression: Textual representation of an expression in Common
6845	// Expression Language syntax.
6846	//
6847	// The application context of the containing message determines which
6848	// well-known feature set of CEL is supported.
6849	Expression string `json:"expression,omitempty"`
6850
6851	// Location: An optional string indicating the location of the
6852	// expression for error reporting, e.g. a file name and a position in
6853	// the file.
6854	Location string `json:"location,omitempty"`
6855
6856	// Title: An optional title for the expression, i.e. a short string
6857	// describing its purpose. This can be used e.g. in UIs which allow to
6858	// enter the expression.
6859	Title string `json:"title,omitempty"`
6860
6861	// ForceSendFields is a list of field names (e.g. "Description") to
6862	// unconditionally include in API requests. By default, fields with
6863	// empty values are omitted from API requests. However, any non-pointer,
6864	// non-interface field appearing in ForceSendFields will be sent to the
6865	// server regardless of whether the field is empty or not. This may be
6866	// used to include empty fields in Patch requests.
6867	ForceSendFields []string `json:"-"`
6868
6869	// NullFields is a list of field names (e.g. "Description") to include
6870	// in API requests with the JSON null value. By default, fields with
6871	// empty values are omitted from API requests. However, any field with
6872	// an empty value appearing in NullFields will be sent to the server as
6873	// null. It is an error if a field in this list has a non-empty value.
6874	// This may be used to include null fields in Patch requests.
6875	NullFields []string `json:"-"`
6876}
6877
6878func (s *Expr) MarshalJSON() ([]byte, error) {
6879	type NoMethod Expr
6880	raw := NoMethod(*s)
6881	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6882}
6883
6884// Firewall: Represents a Firewall resource.
6885type Firewall struct {
6886	// Allowed: The list of ALLOW rules specified by this firewall. Each
6887	// rule specifies a protocol and port-range tuple that describes a
6888	// permitted connection.
6889	Allowed []*FirewallAllowed `json:"allowed,omitempty"`
6890
6891	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
6892	// format.
6893	CreationTimestamp string `json:"creationTimestamp,omitempty"`
6894
6895	// Denied: The list of DENY rules specified by this firewall. Each rule
6896	// specifies a protocol and port-range tuple that describes a denied
6897	// connection.
6898	Denied []*FirewallDenied `json:"denied,omitempty"`
6899
6900	// Description: An optional description of this resource. Provide this
6901	// property when you create the resource.
6902	Description string `json:"description,omitempty"`
6903
6904	// DestinationRanges: If destination ranges are specified, the firewall
6905	// will apply only to traffic that has destination IP address in these
6906	// ranges. These ranges must be expressed in CIDR format. Only IPv4 is
6907	// supported.
6908	DestinationRanges []string `json:"destinationRanges,omitempty"`
6909
6910	// Direction: Direction of traffic to which this firewall applies;
6911	// default is INGRESS. Note: For INGRESS traffic, it is NOT supported to
6912	// specify destinationRanges; For EGRESS traffic, it is NOT supported to
6913	// specify sourceRanges OR sourceTags.
6914	//
6915	// Possible values:
6916	//   "EGRESS"
6917	//   "INGRESS"
6918	Direction string `json:"direction,omitempty"`
6919
6920	// Disabled: Denotes whether the firewall rule is disabled, i.e not
6921	// applied to the network it is associated with. When set to true, the
6922	// firewall rule is not enforced and the network behaves as if it did
6923	// not exist. If this is unspecified, the firewall rule will be enabled.
6924	Disabled bool `json:"disabled,omitempty"`
6925
6926	// Id: [Output Only] The unique identifier for the resource. This
6927	// identifier is defined by the server.
6928	Id uint64 `json:"id,omitempty,string"`
6929
6930	// Kind: [Output Only] Type of the resource. Always compute#firewall for
6931	// firewall rules.
6932	Kind string `json:"kind,omitempty"`
6933
6934	// LogConfig: This field denotes the logging options for a particular
6935	// firewall rule. If logging is enabled, logs will be exported to
6936	// Stackdriver.
6937	LogConfig *FirewallLogConfig `json:"logConfig,omitempty"`
6938
6939	// Name: Name of the resource; provided by the client when the resource
6940	// is created. The name must be 1-63 characters long, and comply with
6941	// RFC1035. Specifically, the name must be 1-63 characters long and
6942	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
6943	// the first character must be a lowercase letter, and all following
6944	// characters must be a dash, lowercase letter, or digit, except the
6945	// last character, which cannot be a dash.
6946	Name string `json:"name,omitempty"`
6947
6948	// Network: URL of the network resource for this firewall rule. If not
6949	// specified when creating a firewall rule, the default network is
6950	// used:
6951	// global/networks/default
6952	// If you choose to specify this property, you can specify the network
6953	// as a full or partial URL. For example, the following are all valid
6954	// URLs:
6955	// -
6956	// https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
6957	// - projects/myproject/global/networks/my-network
6958	// - global/networks/default
6959	Network string `json:"network,omitempty"`
6960
6961	// Priority: Priority for this rule. This is an integer between 0 and
6962	// 65535, both inclusive. When not specified, the value assumed is 1000.
6963	// Relative priorities determine precedence of conflicting rules. Lower
6964	// value of priority implies higher precedence (eg, a rule with priority
6965	// 0 has higher precedence than a rule with priority 1). DENY rules take
6966	// precedence over ALLOW rules having equal priority.
6967	Priority int64 `json:"priority,omitempty"`
6968
6969	// SelfLink: [Output Only] Server-defined URL for the resource.
6970	SelfLink string `json:"selfLink,omitempty"`
6971
6972	// SourceRanges: If source ranges are specified, the firewall will apply
6973	// only to traffic that has source IP address in these ranges. These
6974	// ranges must be expressed in CIDR format. One or both of sourceRanges
6975	// and sourceTags may be set. If both properties are set, the firewall
6976	// will apply to traffic that has source IP address within sourceRanges
6977	// OR the source IP that belongs to a tag listed in the sourceTags
6978	// property. The connection does not need to match both properties for
6979	// the firewall to apply. Only IPv4 is supported.
6980	SourceRanges []string `json:"sourceRanges,omitempty"`
6981
6982	// SourceServiceAccounts: If source service accounts are specified, the
6983	// firewall will apply only to traffic originating from an instance with
6984	// a service account in this list. Source service accounts cannot be
6985	// used to control traffic to an instance's external IP address because
6986	// service accounts are associated with an instance, not an IP address.
6987	// sourceRanges can be set at the same time as sourceServiceAccounts. If
6988	// both are set, the firewall will apply to traffic that has source IP
6989	// address within sourceRanges OR the source IP belongs to an instance
6990	// with service account listed in sourceServiceAccount. The connection
6991	// does not need to match both properties for the firewall to apply.
6992	// sourceServiceAccounts cannot be used at the same time as sourceTags
6993	// or targetTags.
6994	SourceServiceAccounts []string `json:"sourceServiceAccounts,omitempty"`
6995
6996	// SourceTags: If source tags are specified, the firewall rule applies
6997	// only to traffic with source IPs that match the primary network
6998	// interfaces of VM instances that have the tag and are in the same VPC
6999	// network. Source tags cannot be used to control traffic to an
7000	// instance's external IP address, it only applies to traffic between
7001	// instances in the same virtual network. Because tags are associated
7002	// with instances, not IP addresses. One or both of sourceRanges and
7003	// sourceTags may be set. If both properties are set, the firewall will
7004	// apply to traffic that has source IP address within sourceRanges OR
7005	// the source IP that belongs to a tag listed in the sourceTags
7006	// property. The connection does not need to match both properties for
7007	// the firewall to apply.
7008	SourceTags []string `json:"sourceTags,omitempty"`
7009
7010	// TargetServiceAccounts: A list of service accounts indicating sets of
7011	// instances located in the network that may make network connections as
7012	// specified in allowed[]. targetServiceAccounts cannot be used at the
7013	// same time as targetTags or sourceTags. If neither
7014	// targetServiceAccounts nor targetTags are specified, the firewall rule
7015	// applies to all instances on the specified network.
7016	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
7017
7018	// TargetTags: A list of tags that controls which instances the firewall
7019	// rule applies to. If targetTags are specified, then the firewall rule
7020	// applies only to instances in the VPC network that have one of those
7021	// tags. If no targetTags are specified, the firewall rule applies to
7022	// all instances on the specified network.
7023	TargetTags []string `json:"targetTags,omitempty"`
7024
7025	// ServerResponse contains the HTTP response code and headers from the
7026	// server.
7027	googleapi.ServerResponse `json:"-"`
7028
7029	// ForceSendFields is a list of field names (e.g. "Allowed") to
7030	// unconditionally include in API requests. By default, fields with
7031	// empty values are omitted from API requests. However, any non-pointer,
7032	// non-interface field appearing in ForceSendFields will be sent to the
7033	// server regardless of whether the field is empty or not. This may be
7034	// used to include empty fields in Patch requests.
7035	ForceSendFields []string `json:"-"`
7036
7037	// NullFields is a list of field names (e.g. "Allowed") to include in
7038	// API requests with the JSON null value. By default, fields with empty
7039	// values are omitted from API requests. However, any field with an
7040	// empty value appearing in NullFields will be sent to the server as
7041	// null. It is an error if a field in this list has a non-empty value.
7042	// This may be used to include null fields in Patch requests.
7043	NullFields []string `json:"-"`
7044}
7045
7046func (s *Firewall) MarshalJSON() ([]byte, error) {
7047	type NoMethod Firewall
7048	raw := NoMethod(*s)
7049	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7050}
7051
7052type FirewallAllowed struct {
7053	// IPProtocol: The IP protocol to which this rule applies. The protocol
7054	// type is required when creating a firewall rule. This value can either
7055	// be one of the following well known protocol strings (tcp, udp, icmp,
7056	// esp, ah, ipip, sctp), or the IP protocol number.
7057	IPProtocol string `json:"IPProtocol,omitempty"`
7058
7059	// Ports: An optional list of ports to which this rule applies. This
7060	// field is only applicable for UDP or TCP protocol. Each entry must be
7061	// either an integer or a range. If not specified, this rule applies to
7062	// connections through any port.
7063	//
7064	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
7065	Ports []string `json:"ports,omitempty"`
7066
7067	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
7068	// unconditionally include in API requests. By default, fields with
7069	// empty values are omitted from API requests. However, any non-pointer,
7070	// non-interface field appearing in ForceSendFields will be sent to the
7071	// server regardless of whether the field is empty or not. This may be
7072	// used to include empty fields in Patch requests.
7073	ForceSendFields []string `json:"-"`
7074
7075	// NullFields is a list of field names (e.g. "IPProtocol") to include in
7076	// API requests with the JSON null value. By default, fields with empty
7077	// values are omitted from API requests. However, any field with an
7078	// empty value appearing in NullFields will be sent to the server as
7079	// null. It is an error if a field in this list has a non-empty value.
7080	// This may be used to include null fields in Patch requests.
7081	NullFields []string `json:"-"`
7082}
7083
7084func (s *FirewallAllowed) MarshalJSON() ([]byte, error) {
7085	type NoMethod FirewallAllowed
7086	raw := NoMethod(*s)
7087	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7088}
7089
7090type FirewallDenied struct {
7091	// IPProtocol: The IP protocol to which this rule applies. The protocol
7092	// type is required when creating a firewall rule. This value can either
7093	// be one of the following well known protocol strings (tcp, udp, icmp,
7094	// esp, ah, ipip, sctp), or the IP protocol number.
7095	IPProtocol string `json:"IPProtocol,omitempty"`
7096
7097	// Ports: An optional list of ports to which this rule applies. This
7098	// field is only applicable for UDP or TCP protocol. Each entry must be
7099	// either an integer or a range. If not specified, this rule applies to
7100	// connections through any port.
7101	//
7102	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
7103	Ports []string `json:"ports,omitempty"`
7104
7105	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
7106	// unconditionally include in API requests. By default, fields with
7107	// empty values are omitted from API requests. However, any non-pointer,
7108	// non-interface field appearing in ForceSendFields will be sent to the
7109	// server regardless of whether the field is empty or not. This may be
7110	// used to include empty fields in Patch requests.
7111	ForceSendFields []string `json:"-"`
7112
7113	// NullFields is a list of field names (e.g. "IPProtocol") to include in
7114	// API requests with the JSON null value. By default, fields with empty
7115	// values are omitted from API requests. However, any field with an
7116	// empty value appearing in NullFields will be sent to the server as
7117	// null. It is an error if a field in this list has a non-empty value.
7118	// This may be used to include null fields in Patch requests.
7119	NullFields []string `json:"-"`
7120}
7121
7122func (s *FirewallDenied) MarshalJSON() ([]byte, error) {
7123	type NoMethod FirewallDenied
7124	raw := NoMethod(*s)
7125	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7126}
7127
7128// FirewallList: Contains a list of firewalls.
7129type FirewallList struct {
7130	// Id: [Output Only] Unique identifier for the resource; defined by the
7131	// server.
7132	Id string `json:"id,omitempty"`
7133
7134	// Items: A list of Firewall resources.
7135	Items []*Firewall `json:"items,omitempty"`
7136
7137	// Kind: [Output Only] Type of resource. Always compute#firewallList for
7138	// lists of firewalls.
7139	Kind string `json:"kind,omitempty"`
7140
7141	// NextPageToken: [Output Only] This token allows you to get the next
7142	// page of results for list requests. If the number of results is larger
7143	// than maxResults, use the nextPageToken as a value for the query
7144	// parameter pageToken in the next list request. Subsequent list
7145	// requests will have their own nextPageToken to continue paging through
7146	// the results.
7147	NextPageToken string `json:"nextPageToken,omitempty"`
7148
7149	// SelfLink: [Output Only] Server-defined URL for this resource.
7150	SelfLink string `json:"selfLink,omitempty"`
7151
7152	// Warning: [Output Only] Informational warning message.
7153	Warning *FirewallListWarning `json:"warning,omitempty"`
7154
7155	// ServerResponse contains the HTTP response code and headers from the
7156	// server.
7157	googleapi.ServerResponse `json:"-"`
7158
7159	// ForceSendFields is a list of field names (e.g. "Id") to
7160	// unconditionally include in API requests. By default, fields with
7161	// empty values are omitted from API requests. However, any non-pointer,
7162	// non-interface field appearing in ForceSendFields will be sent to the
7163	// server regardless of whether the field is empty or not. This may be
7164	// used to include empty fields in Patch requests.
7165	ForceSendFields []string `json:"-"`
7166
7167	// NullFields is a list of field names (e.g. "Id") to include in API
7168	// requests with the JSON null value. By default, fields with empty
7169	// values are omitted from API requests. However, any field with an
7170	// empty value appearing in NullFields will be sent to the server as
7171	// null. It is an error if a field in this list has a non-empty value.
7172	// This may be used to include null fields in Patch requests.
7173	NullFields []string `json:"-"`
7174}
7175
7176func (s *FirewallList) MarshalJSON() ([]byte, error) {
7177	type NoMethod FirewallList
7178	raw := NoMethod(*s)
7179	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7180}
7181
7182// FirewallListWarning: [Output Only] Informational warning message.
7183type FirewallListWarning struct {
7184	// Code: [Output Only] A warning code, if applicable. For example,
7185	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7186	// the response.
7187	//
7188	// Possible values:
7189	//   "CLEANUP_FAILED"
7190	//   "DEPRECATED_RESOURCE_USED"
7191	//   "DEPRECATED_TYPE_USED"
7192	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7193	//   "EXPERIMENTAL_TYPE_USED"
7194	//   "EXTERNAL_API_WARNING"
7195	//   "FIELD_VALUE_OVERRIDEN"
7196	//   "INJECTED_KERNELS_DEPRECATED"
7197	//   "MISSING_TYPE_DEPENDENCY"
7198	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7199	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7200	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7201	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7202	//   "NEXT_HOP_NOT_RUNNING"
7203	//   "NOT_CRITICAL_ERROR"
7204	//   "NO_RESULTS_ON_PAGE"
7205	//   "REQUIRED_TOS_AGREEMENT"
7206	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7207	//   "RESOURCE_NOT_DELETED"
7208	//   "SCHEMA_VALIDATION_IGNORED"
7209	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7210	//   "UNDECLARED_PROPERTIES"
7211	//   "UNREACHABLE"
7212	Code string `json:"code,omitempty"`
7213
7214	// Data: [Output Only] Metadata about this warning in key: value format.
7215	// For example:
7216	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7217	Data []*FirewallListWarningData `json:"data,omitempty"`
7218
7219	// Message: [Output Only] A human-readable description of the warning
7220	// code.
7221	Message string `json:"message,omitempty"`
7222
7223	// ForceSendFields is a list of field names (e.g. "Code") to
7224	// unconditionally include in API requests. By default, fields with
7225	// empty values are omitted from API requests. However, any non-pointer,
7226	// non-interface field appearing in ForceSendFields will be sent to the
7227	// server regardless of whether the field is empty or not. This may be
7228	// used to include empty fields in Patch requests.
7229	ForceSendFields []string `json:"-"`
7230
7231	// NullFields is a list of field names (e.g. "Code") to include in API
7232	// requests with the JSON null value. By default, fields with empty
7233	// values are omitted from API requests. However, any field with an
7234	// empty value appearing in NullFields will be sent to the server as
7235	// null. It is an error if a field in this list has a non-empty value.
7236	// This may be used to include null fields in Patch requests.
7237	NullFields []string `json:"-"`
7238}
7239
7240func (s *FirewallListWarning) MarshalJSON() ([]byte, error) {
7241	type NoMethod FirewallListWarning
7242	raw := NoMethod(*s)
7243	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7244}
7245
7246type FirewallListWarningData struct {
7247	// Key: [Output Only] A key that provides more detail on the warning
7248	// being returned. For example, for warnings where there are no results
7249	// in a list request for a particular zone, this key might be scope and
7250	// the key value might be the zone name. Other examples might be a key
7251	// indicating a deprecated resource and a suggested replacement, or a
7252	// warning about invalid network settings (for example, if an instance
7253	// attempts to perform IP forwarding but is not enabled for IP
7254	// forwarding).
7255	Key string `json:"key,omitempty"`
7256
7257	// Value: [Output Only] A warning data value corresponding to the key.
7258	Value string `json:"value,omitempty"`
7259
7260	// ForceSendFields is a list of field names (e.g. "Key") to
7261	// unconditionally include in API requests. By default, fields with
7262	// empty values are omitted from API requests. However, any non-pointer,
7263	// non-interface field appearing in ForceSendFields will be sent to the
7264	// server regardless of whether the field is empty or not. This may be
7265	// used to include empty fields in Patch requests.
7266	ForceSendFields []string `json:"-"`
7267
7268	// NullFields is a list of field names (e.g. "Key") to include in API
7269	// requests with the JSON null value. By default, fields with empty
7270	// values are omitted from API requests. However, any field with an
7271	// empty value appearing in NullFields will be sent to the server as
7272	// null. It is an error if a field in this list has a non-empty value.
7273	// This may be used to include null fields in Patch requests.
7274	NullFields []string `json:"-"`
7275}
7276
7277func (s *FirewallListWarningData) MarshalJSON() ([]byte, error) {
7278	type NoMethod FirewallListWarningData
7279	raw := NoMethod(*s)
7280	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7281}
7282
7283// FirewallLogConfig: The available logging options for a firewall rule.
7284type FirewallLogConfig struct {
7285	// Enable: This field denotes whether to enable logging for a particular
7286	// firewall rule.
7287	Enable bool `json:"enable,omitempty"`
7288
7289	// ForceSendFields is a list of field names (e.g. "Enable") to
7290	// unconditionally include in API requests. By default, fields with
7291	// empty values are omitted from API requests. However, any non-pointer,
7292	// non-interface field appearing in ForceSendFields will be sent to the
7293	// server regardless of whether the field is empty or not. This may be
7294	// used to include empty fields in Patch requests.
7295	ForceSendFields []string `json:"-"`
7296
7297	// NullFields is a list of field names (e.g. "Enable") to include in API
7298	// requests with the JSON null value. By default, fields with empty
7299	// values are omitted from API requests. However, any field with an
7300	// empty value appearing in NullFields will be sent to the server as
7301	// null. It is an error if a field in this list has a non-empty value.
7302	// This may be used to include null fields in Patch requests.
7303	NullFields []string `json:"-"`
7304}
7305
7306func (s *FirewallLogConfig) MarshalJSON() ([]byte, error) {
7307	type NoMethod FirewallLogConfig
7308	raw := NoMethod(*s)
7309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7310}
7311
7312// FixedOrPercent: Encapsulates numeric value that can be either
7313// absolute or relative.
7314type FixedOrPercent struct {
7315	// Calculated: [Output Only] Absolute value of VM instances calculated
7316	// based on the specific mode.
7317	//
7318	//
7319	// - If the value is fixed, then the calculated value is equal to the
7320	// fixed value.
7321	// - If the value is a percent, then the calculated value is percent/100
7322	// * targetSize. For example, the calculated value of a 80% of a managed
7323	// instance group with 150 instances would be (80/100 * 150) = 120 VM
7324	// instances. If there is a remainder, the number is rounded up.
7325	Calculated int64 `json:"calculated,omitempty"`
7326
7327	// Fixed: Specifies a fixed number of VM instances. This must be a
7328	// positive integer.
7329	Fixed int64 `json:"fixed,omitempty"`
7330
7331	// Percent: Specifies a percentage of instances between 0 to 100%,
7332	// inclusive. For example, specify 80 for 80%.
7333	Percent int64 `json:"percent,omitempty"`
7334
7335	// ForceSendFields is a list of field names (e.g. "Calculated") to
7336	// unconditionally include in API requests. By default, fields with
7337	// empty values are omitted from API requests. However, any non-pointer,
7338	// non-interface field appearing in ForceSendFields will be sent to the
7339	// server regardless of whether the field is empty or not. This may be
7340	// used to include empty fields in Patch requests.
7341	ForceSendFields []string `json:"-"`
7342
7343	// NullFields is a list of field names (e.g. "Calculated") to include in
7344	// API requests with the JSON null value. By default, fields with empty
7345	// values are omitted from API requests. However, any field with an
7346	// empty value appearing in NullFields will be sent to the server as
7347	// null. It is an error if a field in this list has a non-empty value.
7348	// This may be used to include null fields in Patch requests.
7349	NullFields []string `json:"-"`
7350}
7351
7352func (s *FixedOrPercent) MarshalJSON() ([]byte, error) {
7353	type NoMethod FixedOrPercent
7354	raw := NoMethod(*s)
7355	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7356}
7357
7358// ForwardingRule: A ForwardingRule resource. A ForwardingRule resource
7359// specifies which pool of target virtual machines to forward a packet
7360// to if it matches the given [IPAddress, IPProtocol, ports] tuple. (==
7361// resource_for beta.forwardingRules ==) (== resource_for
7362// v1.forwardingRules ==) (== resource_for beta.globalForwardingRules
7363// ==) (== resource_for v1.globalForwardingRules ==) (== resource_for
7364// beta.regionForwardingRules ==) (== resource_for
7365// v1.regionForwardingRules ==)
7366type ForwardingRule struct {
7367	// IPAddress: The IP address that this forwarding rule is serving on
7368	// behalf of.
7369	//
7370	// Addresses are restricted based on the forwarding rule's load
7371	// balancing scheme (EXTERNAL or INTERNAL) and scope (global or
7372	// regional).
7373	//
7374	// When the load balancing scheme is EXTERNAL, for global forwarding
7375	// rules, the address must be a global IP, and for regional forwarding
7376	// rules, the address must live in the same region as the forwarding
7377	// rule. If this field is empty, an ephemeral IPv4 address from the same
7378	// scope (global or regional) will be assigned. A regional forwarding
7379	// rule supports IPv4 only. A global forwarding rule supports either
7380	// IPv4 or IPv6.
7381	//
7382	// When the load balancing scheme is INTERNAL_SELF_MANAGED, this must be
7383	// a URL reference to an existing Address resource ( internal regional
7384	// static IP address), with a purpose of GCE_END_POINT and address_type
7385	// of INTERNAL.
7386	//
7387	// When the load balancing scheme is INTERNAL, this can only be an RFC
7388	// 1918 IP address belonging to the network/subnet configured for the
7389	// forwarding rule. By default, if this field is empty, an ephemeral
7390	// internal IP address will be automatically allocated from the IP range
7391	// of the subnet or network configured for this forwarding rule.
7392	//
7393	// An address can be specified either by a literal IP address or a URL
7394	// reference to an existing Address resource. The following examples are
7395	// all valid:
7396	// - 100.1.2.3
7397	// -
7398	// https://www.googleapis.com/compute/v1/projects/project/regions/region/addresses/address
7399	// - projects/project/regions/region/addresses/address
7400	// - regions/region/addresses/address
7401	// - global/addresses/address
7402	// - address
7403	IPAddress string `json:"IPAddress,omitempty"`
7404
7405	// IPProtocol: The IP protocol to which this rule applies. Valid options
7406	// are TCP, UDP, ESP, AH, SCTP or ICMP.
7407	//
7408	// When the load balancing scheme is INTERNAL, only TCP and UDP are
7409	// valid. When the load balancing scheme is INTERNAL_SELF_MANAGED, only
7410	// TCPis valid.
7411	//
7412	// Possible values:
7413	//   "AH"
7414	//   "ESP"
7415	//   "ICMP"
7416	//   "SCTP"
7417	//   "TCP"
7418	//   "UDP"
7419	IPProtocol string `json:"IPProtocol,omitempty"`
7420
7421	// AllPorts: This field is used along with the backend_service field for
7422	// internal load balancing or with the target field for internal
7423	// TargetInstance. This field cannot be used with port or portRange
7424	// fields.
7425	//
7426	// When the load balancing scheme is INTERNAL and protocol is TCP/UDP,
7427	// specify this field to allow packets addressed to any ports will be
7428	// forwarded to the backends configured with this forwarding rule.
7429	AllPorts bool `json:"allPorts,omitempty"`
7430
7431	// BackendService: This field is only used for INTERNAL load
7432	// balancing.
7433	//
7434	// For internal load balancing, this field identifies the BackendService
7435	// resource to receive the matched traffic.
7436	BackendService string `json:"backendService,omitempty"`
7437
7438	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
7439	// format.
7440	CreationTimestamp string `json:"creationTimestamp,omitempty"`
7441
7442	// Description: An optional description of this resource. Provide this
7443	// property when you create the resource.
7444	Description string `json:"description,omitempty"`
7445
7446	// Id: [Output Only] The unique identifier for the resource. This
7447	// identifier is defined by the server.
7448	Id uint64 `json:"id,omitempty,string"`
7449
7450	// IpVersion: The IP Version that will be used by this forwarding rule.
7451	// Valid options are IPV4 or IPV6. This can only be specified for an
7452	// external global forwarding rule.
7453	//
7454	// Possible values:
7455	//   "IPV4"
7456	//   "IPV6"
7457	//   "UNSPECIFIED_VERSION"
7458	IpVersion string `json:"ipVersion,omitempty"`
7459
7460	// Kind: [Output Only] Type of the resource. Always
7461	// compute#forwardingRule for Forwarding Rule resources.
7462	Kind string `json:"kind,omitempty"`
7463
7464	// LoadBalancingScheme: This signifies what the ForwardingRule will be
7465	// used for and can only take the following values: INTERNAL,
7466	// INTERNAL_SELF_MANAGED, EXTERNAL. The value of INTERNAL means that
7467	// this will be used for Internal Network Load Balancing (TCP, UDP). The
7468	// value of INTERNAL_SELF_MANAGED means that this will be used for
7469	// Internal Global HTTP(S) LB. The value of EXTERNAL means that this
7470	// will be used for External Load Balancing (HTTP(S) LB, External
7471	// TCP/UDP LB, SSL Proxy)
7472	//
7473	// Possible values:
7474	//   "EXTERNAL"
7475	//   "INTERNAL"
7476	//   "INVALID"
7477	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
7478
7479	// Name: Name of the resource; provided by the client when the resource
7480	// is created. The name must be 1-63 characters long, and comply with
7481	// RFC1035. Specifically, the name must be 1-63 characters long and
7482	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
7483	// the first character must be a lowercase letter, and all following
7484	// characters must be a dash, lowercase letter, or digit, except the
7485	// last character, which cannot be a dash.
7486	Name string `json:"name,omitempty"`
7487
7488	// Network: This field is not used for external load balancing.
7489	//
7490	// For INTERNAL and INTERNAL_SELF_MANAGED load balancing, this field
7491	// identifies the network that the load balanced IP should belong to for
7492	// this Forwarding Rule. If this field is not specified, the default
7493	// network will be used.
7494	Network string `json:"network,omitempty"`
7495
7496	// NetworkTier: This signifies the networking tier used for configuring
7497	// this load balancer and can only take the following values: PREMIUM ,
7498	// STANDARD.
7499	//
7500	// For regional ForwardingRule, the valid values are PREMIUM and
7501	// STANDARD. For GlobalForwardingRule, the valid value is PREMIUM.
7502	//
7503	// If this field is not specified, it is assumed to be PREMIUM. If
7504	// IPAddress is specified, this value must be equal to the networkTier
7505	// of the Address.
7506	//
7507	// Possible values:
7508	//   "PREMIUM"
7509	//   "STANDARD"
7510	NetworkTier string `json:"networkTier,omitempty"`
7511
7512	// PortRange: This field is used along with the target field for
7513	// TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy,
7514	// TargetVpnGateway, TargetPool, TargetInstance.
7515	//
7516	// Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets
7517	// addressed to ports in the specified range will be forwarded to
7518	// target. Forwarding rules with the same [IPAddress, IPProtocol] pair
7519	// must have disjoint port ranges.
7520	//
7521	// Some types of forwarding target have constraints on the acceptable
7522	// ports:
7523	// - TargetHttpProxy: 80, 8080
7524	// - TargetHttpsProxy: 443
7525	// - TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
7526	// 995, 1688, 1883, 5222
7527	// - TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
7528	// 995, 1688, 1883, 5222
7529	// - TargetVpnGateway: 500, 4500
7530	PortRange string `json:"portRange,omitempty"`
7531
7532	// Ports: This field is used along with the backend_service field for
7533	// internal load balancing.
7534	//
7535	// When the load balancing scheme is INTERNAL, a list of ports can be
7536	// configured, for example, ['80'], ['8000','9000'] etc. Only packets
7537	// addressed to these ports will be forwarded to the backends configured
7538	// with this forwarding rule.
7539	//
7540	// You may specify a maximum of up to 5 ports.
7541	Ports []string `json:"ports,omitempty"`
7542
7543	// Region: [Output Only] URL of the region where the regional forwarding
7544	// rule resides. This field is not applicable to global forwarding
7545	// rules. You must specify this field as part of the HTTP request URL.
7546	// It is not settable as a field in the request body.
7547	Region string `json:"region,omitempty"`
7548
7549	// SelfLink: [Output Only] Server-defined URL for the resource.
7550	SelfLink string `json:"selfLink,omitempty"`
7551
7552	// ServiceLabel: An optional prefix to the service name for this
7553	// Forwarding Rule. If specified, will be the first label of the fully
7554	// qualified service name.
7555	//
7556	// The label must be 1-63 characters long, and comply with RFC1035.
7557	// Specifically, the label must be 1-63 characters long and match the
7558	// regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
7559	// character must be a lowercase letter, and all following characters
7560	// must be a dash, lowercase letter, or digit, except the last
7561	// character, which cannot be a dash.
7562	//
7563	// This field is only used for internal load balancing.
7564	ServiceLabel string `json:"serviceLabel,omitempty"`
7565
7566	// ServiceName: [Output Only] The internal fully qualified service name
7567	// for this Forwarding Rule.
7568	//
7569	// This field is only used for internal load balancing.
7570	ServiceName string `json:"serviceName,omitempty"`
7571
7572	// Subnetwork: This field is only used for INTERNAL load balancing.
7573	//
7574	// For internal load balancing, this field identifies the subnetwork
7575	// that the load balanced IP should belong to for this Forwarding
7576	// Rule.
7577	//
7578	// If the network specified is in auto subnet mode, this field is
7579	// optional. However, if the network is in custom subnet mode, a
7580	// subnetwork must be specified.
7581	Subnetwork string `json:"subnetwork,omitempty"`
7582
7583	// Target: The URL of the target resource to receive the matched
7584	// traffic. For regional forwarding rules, this target must live in the
7585	// same region as the forwarding rule. For global forwarding rules, this
7586	// target must be a global load balancing resource. The forwarded
7587	// traffic must be of a type appropriate to the target object. For
7588	// INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets are
7589	// valid.
7590	Target string `json:"target,omitempty"`
7591
7592	// ServerResponse contains the HTTP response code and headers from the
7593	// server.
7594	googleapi.ServerResponse `json:"-"`
7595
7596	// ForceSendFields is a list of field names (e.g. "IPAddress") to
7597	// unconditionally include in API requests. By default, fields with
7598	// empty values are omitted from API requests. However, any non-pointer,
7599	// non-interface field appearing in ForceSendFields will be sent to the
7600	// server regardless of whether the field is empty or not. This may be
7601	// used to include empty fields in Patch requests.
7602	ForceSendFields []string `json:"-"`
7603
7604	// NullFields is a list of field names (e.g. "IPAddress") to include in
7605	// API requests with the JSON null value. By default, fields with empty
7606	// values are omitted from API requests. However, any field with an
7607	// empty value appearing in NullFields will be sent to the server as
7608	// null. It is an error if a field in this list has a non-empty value.
7609	// This may be used to include null fields in Patch requests.
7610	NullFields []string `json:"-"`
7611}
7612
7613func (s *ForwardingRule) MarshalJSON() ([]byte, error) {
7614	type NoMethod ForwardingRule
7615	raw := NoMethod(*s)
7616	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7617}
7618
7619type ForwardingRuleAggregatedList struct {
7620	// Id: [Output Only] Unique identifier for the resource; defined by the
7621	// server.
7622	Id string `json:"id,omitempty"`
7623
7624	// Items: A list of ForwardingRulesScopedList resources.
7625	Items map[string]ForwardingRulesScopedList `json:"items,omitempty"`
7626
7627	// Kind: [Output Only] Type of resource. Always
7628	// compute#forwardingRuleAggregatedList for lists of forwarding rules.
7629	Kind string `json:"kind,omitempty"`
7630
7631	// NextPageToken: [Output Only] This token allows you to get the next
7632	// page of results for list requests. If the number of results is larger
7633	// than maxResults, use the nextPageToken as a value for the query
7634	// parameter pageToken in the next list request. Subsequent list
7635	// requests will have their own nextPageToken to continue paging through
7636	// the results.
7637	NextPageToken string `json:"nextPageToken,omitempty"`
7638
7639	// SelfLink: [Output Only] Server-defined URL for this resource.
7640	SelfLink string `json:"selfLink,omitempty"`
7641
7642	// Warning: [Output Only] Informational warning message.
7643	Warning *ForwardingRuleAggregatedListWarning `json:"warning,omitempty"`
7644
7645	// ServerResponse contains the HTTP response code and headers from the
7646	// server.
7647	googleapi.ServerResponse `json:"-"`
7648
7649	// ForceSendFields is a list of field names (e.g. "Id") to
7650	// unconditionally include in API requests. By default, fields with
7651	// empty values are omitted from API requests. However, any non-pointer,
7652	// non-interface field appearing in ForceSendFields will be sent to the
7653	// server regardless of whether the field is empty or not. This may be
7654	// used to include empty fields in Patch requests.
7655	ForceSendFields []string `json:"-"`
7656
7657	// NullFields is a list of field names (e.g. "Id") to include in API
7658	// requests with the JSON null value. By default, fields with empty
7659	// values are omitted from API requests. However, any field with an
7660	// empty value appearing in NullFields will be sent to the server as
7661	// null. It is an error if a field in this list has a non-empty value.
7662	// This may be used to include null fields in Patch requests.
7663	NullFields []string `json:"-"`
7664}
7665
7666func (s *ForwardingRuleAggregatedList) MarshalJSON() ([]byte, error) {
7667	type NoMethod ForwardingRuleAggregatedList
7668	raw := NoMethod(*s)
7669	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7670}
7671
7672// ForwardingRuleAggregatedListWarning: [Output Only] Informational
7673// warning message.
7674type ForwardingRuleAggregatedListWarning struct {
7675	// Code: [Output Only] A warning code, if applicable. For example,
7676	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7677	// the response.
7678	//
7679	// Possible values:
7680	//   "CLEANUP_FAILED"
7681	//   "DEPRECATED_RESOURCE_USED"
7682	//   "DEPRECATED_TYPE_USED"
7683	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7684	//   "EXPERIMENTAL_TYPE_USED"
7685	//   "EXTERNAL_API_WARNING"
7686	//   "FIELD_VALUE_OVERRIDEN"
7687	//   "INJECTED_KERNELS_DEPRECATED"
7688	//   "MISSING_TYPE_DEPENDENCY"
7689	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7690	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7691	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7692	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7693	//   "NEXT_HOP_NOT_RUNNING"
7694	//   "NOT_CRITICAL_ERROR"
7695	//   "NO_RESULTS_ON_PAGE"
7696	//   "REQUIRED_TOS_AGREEMENT"
7697	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7698	//   "RESOURCE_NOT_DELETED"
7699	//   "SCHEMA_VALIDATION_IGNORED"
7700	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7701	//   "UNDECLARED_PROPERTIES"
7702	//   "UNREACHABLE"
7703	Code string `json:"code,omitempty"`
7704
7705	// Data: [Output Only] Metadata about this warning in key: value format.
7706	// For example:
7707	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7708	Data []*ForwardingRuleAggregatedListWarningData `json:"data,omitempty"`
7709
7710	// Message: [Output Only] A human-readable description of the warning
7711	// code.
7712	Message string `json:"message,omitempty"`
7713
7714	// ForceSendFields is a list of field names (e.g. "Code") to
7715	// unconditionally include in API requests. By default, fields with
7716	// empty values are omitted from API requests. However, any non-pointer,
7717	// non-interface field appearing in ForceSendFields will be sent to the
7718	// server regardless of whether the field is empty or not. This may be
7719	// used to include empty fields in Patch requests.
7720	ForceSendFields []string `json:"-"`
7721
7722	// NullFields is a list of field names (e.g. "Code") to include in API
7723	// requests with the JSON null value. By default, fields with empty
7724	// values are omitted from API requests. However, any field with an
7725	// empty value appearing in NullFields will be sent to the server as
7726	// null. It is an error if a field in this list has a non-empty value.
7727	// This may be used to include null fields in Patch requests.
7728	NullFields []string `json:"-"`
7729}
7730
7731func (s *ForwardingRuleAggregatedListWarning) MarshalJSON() ([]byte, error) {
7732	type NoMethod ForwardingRuleAggregatedListWarning
7733	raw := NoMethod(*s)
7734	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7735}
7736
7737type ForwardingRuleAggregatedListWarningData struct {
7738	// Key: [Output Only] A key that provides more detail on the warning
7739	// being returned. For example, for warnings where there are no results
7740	// in a list request for a particular zone, this key might be scope and
7741	// the key value might be the zone name. Other examples might be a key
7742	// indicating a deprecated resource and a suggested replacement, or a
7743	// warning about invalid network settings (for example, if an instance
7744	// attempts to perform IP forwarding but is not enabled for IP
7745	// forwarding).
7746	Key string `json:"key,omitempty"`
7747
7748	// Value: [Output Only] A warning data value corresponding to the key.
7749	Value string `json:"value,omitempty"`
7750
7751	// ForceSendFields is a list of field names (e.g. "Key") to
7752	// unconditionally include in API requests. By default, fields with
7753	// empty values are omitted from API requests. However, any non-pointer,
7754	// non-interface field appearing in ForceSendFields will be sent to the
7755	// server regardless of whether the field is empty or not. This may be
7756	// used to include empty fields in Patch requests.
7757	ForceSendFields []string `json:"-"`
7758
7759	// NullFields is a list of field names (e.g. "Key") to include in API
7760	// requests with the JSON null value. By default, fields with empty
7761	// values are omitted from API requests. However, any field with an
7762	// empty value appearing in NullFields will be sent to the server as
7763	// null. It is an error if a field in this list has a non-empty value.
7764	// This may be used to include null fields in Patch requests.
7765	NullFields []string `json:"-"`
7766}
7767
7768func (s *ForwardingRuleAggregatedListWarningData) MarshalJSON() ([]byte, error) {
7769	type NoMethod ForwardingRuleAggregatedListWarningData
7770	raw := NoMethod(*s)
7771	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7772}
7773
7774// ForwardingRuleList: Contains a list of ForwardingRule resources.
7775type ForwardingRuleList struct {
7776	// Id: [Output Only] Unique identifier for the resource; defined by the
7777	// server.
7778	Id string `json:"id,omitempty"`
7779
7780	// Items: A list of ForwardingRule resources.
7781	Items []*ForwardingRule `json:"items,omitempty"`
7782
7783	// Kind: Type of resource.
7784	Kind string `json:"kind,omitempty"`
7785
7786	// NextPageToken: [Output Only] This token allows you to get the next
7787	// page of results for list requests. If the number of results is larger
7788	// than maxResults, use the nextPageToken as a value for the query
7789	// parameter pageToken in the next list request. Subsequent list
7790	// requests will have their own nextPageToken to continue paging through
7791	// the results.
7792	NextPageToken string `json:"nextPageToken,omitempty"`
7793
7794	// SelfLink: [Output Only] Server-defined URL for this resource.
7795	SelfLink string `json:"selfLink,omitempty"`
7796
7797	// Warning: [Output Only] Informational warning message.
7798	Warning *ForwardingRuleListWarning `json:"warning,omitempty"`
7799
7800	// ServerResponse contains the HTTP response code and headers from the
7801	// server.
7802	googleapi.ServerResponse `json:"-"`
7803
7804	// ForceSendFields is a list of field names (e.g. "Id") to
7805	// unconditionally include in API requests. By default, fields with
7806	// empty values are omitted from API requests. However, any non-pointer,
7807	// non-interface field appearing in ForceSendFields will be sent to the
7808	// server regardless of whether the field is empty or not. This may be
7809	// used to include empty fields in Patch requests.
7810	ForceSendFields []string `json:"-"`
7811
7812	// NullFields is a list of field names (e.g. "Id") to include in API
7813	// requests with the JSON null value. By default, fields with empty
7814	// values are omitted from API requests. However, any field with an
7815	// empty value appearing in NullFields will be sent to the server as
7816	// null. It is an error if a field in this list has a non-empty value.
7817	// This may be used to include null fields in Patch requests.
7818	NullFields []string `json:"-"`
7819}
7820
7821func (s *ForwardingRuleList) MarshalJSON() ([]byte, error) {
7822	type NoMethod ForwardingRuleList
7823	raw := NoMethod(*s)
7824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7825}
7826
7827// ForwardingRuleListWarning: [Output Only] Informational warning
7828// message.
7829type ForwardingRuleListWarning struct {
7830	// Code: [Output Only] A warning code, if applicable. For example,
7831	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7832	// the response.
7833	//
7834	// Possible values:
7835	//   "CLEANUP_FAILED"
7836	//   "DEPRECATED_RESOURCE_USED"
7837	//   "DEPRECATED_TYPE_USED"
7838	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7839	//   "EXPERIMENTAL_TYPE_USED"
7840	//   "EXTERNAL_API_WARNING"
7841	//   "FIELD_VALUE_OVERRIDEN"
7842	//   "INJECTED_KERNELS_DEPRECATED"
7843	//   "MISSING_TYPE_DEPENDENCY"
7844	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7845	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7846	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7847	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7848	//   "NEXT_HOP_NOT_RUNNING"
7849	//   "NOT_CRITICAL_ERROR"
7850	//   "NO_RESULTS_ON_PAGE"
7851	//   "REQUIRED_TOS_AGREEMENT"
7852	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7853	//   "RESOURCE_NOT_DELETED"
7854	//   "SCHEMA_VALIDATION_IGNORED"
7855	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7856	//   "UNDECLARED_PROPERTIES"
7857	//   "UNREACHABLE"
7858	Code string `json:"code,omitempty"`
7859
7860	// Data: [Output Only] Metadata about this warning in key: value format.
7861	// For example:
7862	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7863	Data []*ForwardingRuleListWarningData `json:"data,omitempty"`
7864
7865	// Message: [Output Only] A human-readable description of the warning
7866	// code.
7867	Message string `json:"message,omitempty"`
7868
7869	// ForceSendFields is a list of field names (e.g. "Code") to
7870	// unconditionally include in API requests. By default, fields with
7871	// empty values are omitted from API requests. However, any non-pointer,
7872	// non-interface field appearing in ForceSendFields will be sent to the
7873	// server regardless of whether the field is empty or not. This may be
7874	// used to include empty fields in Patch requests.
7875	ForceSendFields []string `json:"-"`
7876
7877	// NullFields is a list of field names (e.g. "Code") to include in API
7878	// requests with the JSON null value. By default, fields with empty
7879	// values are omitted from API requests. However, any field with an
7880	// empty value appearing in NullFields will be sent to the server as
7881	// null. It is an error if a field in this list has a non-empty value.
7882	// This may be used to include null fields in Patch requests.
7883	NullFields []string `json:"-"`
7884}
7885
7886func (s *ForwardingRuleListWarning) MarshalJSON() ([]byte, error) {
7887	type NoMethod ForwardingRuleListWarning
7888	raw := NoMethod(*s)
7889	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7890}
7891
7892type ForwardingRuleListWarningData struct {
7893	// Key: [Output Only] A key that provides more detail on the warning
7894	// being returned. For example, for warnings where there are no results
7895	// in a list request for a particular zone, this key might be scope and
7896	// the key value might be the zone name. Other examples might be a key
7897	// indicating a deprecated resource and a suggested replacement, or a
7898	// warning about invalid network settings (for example, if an instance
7899	// attempts to perform IP forwarding but is not enabled for IP
7900	// forwarding).
7901	Key string `json:"key,omitempty"`
7902
7903	// Value: [Output Only] A warning data value corresponding to the key.
7904	Value string `json:"value,omitempty"`
7905
7906	// ForceSendFields is a list of field names (e.g. "Key") to
7907	// unconditionally include in API requests. By default, fields with
7908	// empty values are omitted from API requests. However, any non-pointer,
7909	// non-interface field appearing in ForceSendFields will be sent to the
7910	// server regardless of whether the field is empty or not. This may be
7911	// used to include empty fields in Patch requests.
7912	ForceSendFields []string `json:"-"`
7913
7914	// NullFields is a list of field names (e.g. "Key") to include in API
7915	// requests with the JSON null value. By default, fields with empty
7916	// values are omitted from API requests. However, any field with an
7917	// empty value appearing in NullFields will be sent to the server as
7918	// null. It is an error if a field in this list has a non-empty value.
7919	// This may be used to include null fields in Patch requests.
7920	NullFields []string `json:"-"`
7921}
7922
7923func (s *ForwardingRuleListWarningData) MarshalJSON() ([]byte, error) {
7924	type NoMethod ForwardingRuleListWarningData
7925	raw := NoMethod(*s)
7926	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7927}
7928
7929type ForwardingRuleReference struct {
7930	ForwardingRule string `json:"forwardingRule,omitempty"`
7931
7932	// ForceSendFields is a list of field names (e.g. "ForwardingRule") to
7933	// unconditionally include in API requests. By default, fields with
7934	// empty values are omitted from API requests. However, any non-pointer,
7935	// non-interface field appearing in ForceSendFields will be sent to the
7936	// server regardless of whether the field is empty or not. This may be
7937	// used to include empty fields in Patch requests.
7938	ForceSendFields []string `json:"-"`
7939
7940	// NullFields is a list of field names (e.g. "ForwardingRule") to
7941	// include in API requests with the JSON null value. By default, fields
7942	// with empty values are omitted from API requests. However, any field
7943	// with an empty value appearing in NullFields will be sent to the
7944	// server as null. It is an error if a field in this list has a
7945	// non-empty value. This may be used to include null fields in Patch
7946	// requests.
7947	NullFields []string `json:"-"`
7948}
7949
7950func (s *ForwardingRuleReference) MarshalJSON() ([]byte, error) {
7951	type NoMethod ForwardingRuleReference
7952	raw := NoMethod(*s)
7953	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7954}
7955
7956type ForwardingRulesScopedList struct {
7957	// ForwardingRules: A list of forwarding rules contained in this scope.
7958	ForwardingRules []*ForwardingRule `json:"forwardingRules,omitempty"`
7959
7960	// Warning: Informational warning which replaces the list of forwarding
7961	// rules when the list is empty.
7962	Warning *ForwardingRulesScopedListWarning `json:"warning,omitempty"`
7963
7964	// ForceSendFields is a list of field names (e.g. "ForwardingRules") to
7965	// unconditionally include in API requests. By default, fields with
7966	// empty values are omitted from API requests. However, any non-pointer,
7967	// non-interface field appearing in ForceSendFields will be sent to the
7968	// server regardless of whether the field is empty or not. This may be
7969	// used to include empty fields in Patch requests.
7970	ForceSendFields []string `json:"-"`
7971
7972	// NullFields is a list of field names (e.g. "ForwardingRules") to
7973	// include in API requests with the JSON null value. By default, fields
7974	// with empty values are omitted from API requests. However, any field
7975	// with an empty value appearing in NullFields will be sent to the
7976	// server as null. It is an error if a field in this list has a
7977	// non-empty value. This may be used to include null fields in Patch
7978	// requests.
7979	NullFields []string `json:"-"`
7980}
7981
7982func (s *ForwardingRulesScopedList) MarshalJSON() ([]byte, error) {
7983	type NoMethod ForwardingRulesScopedList
7984	raw := NoMethod(*s)
7985	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7986}
7987
7988// ForwardingRulesScopedListWarning: Informational warning which
7989// replaces the list of forwarding rules when the list is empty.
7990type ForwardingRulesScopedListWarning struct {
7991	// Code: [Output Only] A warning code, if applicable. For example,
7992	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7993	// the response.
7994	//
7995	// Possible values:
7996	//   "CLEANUP_FAILED"
7997	//   "DEPRECATED_RESOURCE_USED"
7998	//   "DEPRECATED_TYPE_USED"
7999	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8000	//   "EXPERIMENTAL_TYPE_USED"
8001	//   "EXTERNAL_API_WARNING"
8002	//   "FIELD_VALUE_OVERRIDEN"
8003	//   "INJECTED_KERNELS_DEPRECATED"
8004	//   "MISSING_TYPE_DEPENDENCY"
8005	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8006	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8007	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8008	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8009	//   "NEXT_HOP_NOT_RUNNING"
8010	//   "NOT_CRITICAL_ERROR"
8011	//   "NO_RESULTS_ON_PAGE"
8012	//   "REQUIRED_TOS_AGREEMENT"
8013	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8014	//   "RESOURCE_NOT_DELETED"
8015	//   "SCHEMA_VALIDATION_IGNORED"
8016	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8017	//   "UNDECLARED_PROPERTIES"
8018	//   "UNREACHABLE"
8019	Code string `json:"code,omitempty"`
8020
8021	// Data: [Output Only] Metadata about this warning in key: value format.
8022	// For example:
8023	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8024	Data []*ForwardingRulesScopedListWarningData `json:"data,omitempty"`
8025
8026	// Message: [Output Only] A human-readable description of the warning
8027	// code.
8028	Message string `json:"message,omitempty"`
8029
8030	// ForceSendFields is a list of field names (e.g. "Code") to
8031	// unconditionally include in API requests. By default, fields with
8032	// empty values are omitted from API requests. However, any non-pointer,
8033	// non-interface field appearing in ForceSendFields will be sent to the
8034	// server regardless of whether the field is empty or not. This may be
8035	// used to include empty fields in Patch requests.
8036	ForceSendFields []string `json:"-"`
8037
8038	// NullFields is a list of field names (e.g. "Code") to include in API
8039	// requests with the JSON null value. By default, fields with empty
8040	// values are omitted from API requests. However, any field with an
8041	// empty value appearing in NullFields will be sent to the server as
8042	// null. It is an error if a field in this list has a non-empty value.
8043	// This may be used to include null fields in Patch requests.
8044	NullFields []string `json:"-"`
8045}
8046
8047func (s *ForwardingRulesScopedListWarning) MarshalJSON() ([]byte, error) {
8048	type NoMethod ForwardingRulesScopedListWarning
8049	raw := NoMethod(*s)
8050	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8051}
8052
8053type ForwardingRulesScopedListWarningData struct {
8054	// Key: [Output Only] A key that provides more detail on the warning
8055	// being returned. For example, for warnings where there are no results
8056	// in a list request for a particular zone, this key might be scope and
8057	// the key value might be the zone name. Other examples might be a key
8058	// indicating a deprecated resource and a suggested replacement, or a
8059	// warning about invalid network settings (for example, if an instance
8060	// attempts to perform IP forwarding but is not enabled for IP
8061	// forwarding).
8062	Key string `json:"key,omitempty"`
8063
8064	// Value: [Output Only] A warning data value corresponding to the key.
8065	Value string `json:"value,omitempty"`
8066
8067	// ForceSendFields is a list of field names (e.g. "Key") to
8068	// unconditionally include in API requests. By default, fields with
8069	// empty values are omitted from API requests. However, any non-pointer,
8070	// non-interface field appearing in ForceSendFields will be sent to the
8071	// server regardless of whether the field is empty or not. This may be
8072	// used to include empty fields in Patch requests.
8073	ForceSendFields []string `json:"-"`
8074
8075	// NullFields is a list of field names (e.g. "Key") to include in API
8076	// requests with the JSON null value. By default, fields with empty
8077	// values are omitted from API requests. However, any field with an
8078	// empty value appearing in NullFields will be sent to the server as
8079	// null. It is an error if a field in this list has a non-empty value.
8080	// This may be used to include null fields in Patch requests.
8081	NullFields []string `json:"-"`
8082}
8083
8084func (s *ForwardingRulesScopedListWarningData) MarshalJSON() ([]byte, error) {
8085	type NoMethod ForwardingRulesScopedListWarningData
8086	raw := NoMethod(*s)
8087	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8088}
8089
8090type GlobalSetLabelsRequest struct {
8091	// LabelFingerprint: The fingerprint of the previous set of labels for
8092	// this resource, used to detect conflicts. The fingerprint is initially
8093	// generated by Compute Engine and changes after every request to modify
8094	// or update labels. You must always provide an up-to-date fingerprint
8095	// hash when updating or changing labels, otherwise the request will
8096	// fail with error 412 conditionNotMet. Make a get() request to the
8097	// resource to get the latest fingerprint.
8098	LabelFingerprint string `json:"labelFingerprint,omitempty"`
8099
8100	// Labels: A list of labels to apply for this resource. Each label key &
8101	// value must comply with RFC1035. Specifically, the name must be 1-63
8102	// characters long and match the regular expression
8103	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
8104	// a lowercase letter, and all following characters must be a dash,
8105	// lowercase letter, or digit, except the last character, which cannot
8106	// be a dash. For example, "webserver-frontend": "images". A label value
8107	// can also be empty (e.g. "my-label": "").
8108	Labels map[string]string `json:"labels,omitempty"`
8109
8110	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
8111	// unconditionally include in API requests. By default, fields with
8112	// empty values are omitted from API requests. However, any non-pointer,
8113	// non-interface field appearing in ForceSendFields will be sent to the
8114	// server regardless of whether the field is empty or not. This may be
8115	// used to include empty fields in Patch requests.
8116	ForceSendFields []string `json:"-"`
8117
8118	// NullFields is a list of field names (e.g. "LabelFingerprint") to
8119	// include in API requests with the JSON null value. By default, fields
8120	// with empty values are omitted from API requests. However, any field
8121	// with an empty value appearing in NullFields will be sent to the
8122	// server as null. It is an error if a field in this list has a
8123	// non-empty value. This may be used to include null fields in Patch
8124	// requests.
8125	NullFields []string `json:"-"`
8126}
8127
8128func (s *GlobalSetLabelsRequest) MarshalJSON() ([]byte, error) {
8129	type NoMethod GlobalSetLabelsRequest
8130	raw := NoMethod(*s)
8131	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8132}
8133
8134type GlobalSetPolicyRequest struct {
8135	// Bindings: Flatten Policy to create a backward compatible wire-format.
8136	// Deprecated. Use 'policy' to specify bindings.
8137	Bindings []*Binding `json:"bindings,omitempty"`
8138
8139	// Etag: Flatten Policy to create a backward compatible wire-format.
8140	// Deprecated. Use 'policy' to specify the etag.
8141	Etag string `json:"etag,omitempty"`
8142
8143	// Policy: REQUIRED: The complete policy to be applied to the
8144	// 'resource'. The size of the policy is limited to a few 10s of KB. An
8145	// empty policy is in general a valid policy but certain services (like
8146	// Projects) might reject them.
8147	Policy *Policy `json:"policy,omitempty"`
8148
8149	// ForceSendFields is a list of field names (e.g. "Bindings") to
8150	// unconditionally include in API requests. By default, fields with
8151	// empty values are omitted from API requests. However, any non-pointer,
8152	// non-interface field appearing in ForceSendFields will be sent to the
8153	// server regardless of whether the field is empty or not. This may be
8154	// used to include empty fields in Patch requests.
8155	ForceSendFields []string `json:"-"`
8156
8157	// NullFields is a list of field names (e.g. "Bindings") to include in
8158	// API requests with the JSON null value. By default, fields with empty
8159	// values are omitted from API requests. However, any field with an
8160	// empty value appearing in NullFields will be sent to the server as
8161	// null. It is an error if a field in this list has a non-empty value.
8162	// This may be used to include null fields in Patch requests.
8163	NullFields []string `json:"-"`
8164}
8165
8166func (s *GlobalSetPolicyRequest) MarshalJSON() ([]byte, error) {
8167	type NoMethod GlobalSetPolicyRequest
8168	raw := NoMethod(*s)
8169	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8170}
8171
8172// GuestOsFeature: Guest OS features.
8173type GuestOsFeature struct {
8174	// Type: The ID of a supported feature. Read  Enabling guest operating
8175	// system features to see a list of available options.
8176	//
8177	// Possible values:
8178	//   "FEATURE_TYPE_UNSPECIFIED"
8179	//   "MULTI_IP_SUBNET"
8180	//   "SECURE_BOOT"
8181	//   "UEFI_COMPATIBLE"
8182	//   "VIRTIO_SCSI_MULTIQUEUE"
8183	//   "WINDOWS"
8184	Type string `json:"type,omitempty"`
8185
8186	// ForceSendFields is a list of field names (e.g. "Type") to
8187	// unconditionally include in API requests. By default, fields with
8188	// empty values are omitted from API requests. However, any non-pointer,
8189	// non-interface field appearing in ForceSendFields will be sent to the
8190	// server regardless of whether the field is empty or not. This may be
8191	// used to include empty fields in Patch requests.
8192	ForceSendFields []string `json:"-"`
8193
8194	// NullFields is a list of field names (e.g. "Type") to include in API
8195	// requests with the JSON null value. By default, fields with empty
8196	// values are omitted from API requests. However, any field with an
8197	// empty value appearing in NullFields will be sent to the server as
8198	// null. It is an error if a field in this list has a non-empty value.
8199	// This may be used to include null fields in Patch requests.
8200	NullFields []string `json:"-"`
8201}
8202
8203func (s *GuestOsFeature) MarshalJSON() ([]byte, error) {
8204	type NoMethod GuestOsFeature
8205	raw := NoMethod(*s)
8206	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8207}
8208
8209type HTTP2HealthCheck struct {
8210	// Host: The value of the host header in the HTTP/2 health check
8211	// request. If left empty (default value), the IP on behalf of which
8212	// this health check is performed will be used.
8213	Host string `json:"host,omitempty"`
8214
8215	// Port: The TCP port number for the health check request. The default
8216	// value is 443. Valid values are 1 through 65535.
8217	Port int64 `json:"port,omitempty"`
8218
8219	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
8220	// both port and port_name are defined, port takes precedence.
8221	PortName string `json:"portName,omitempty"`
8222
8223	// PortSpecification: Specifies how port is selected for health
8224	// checking, can be one of following values:
8225	// USE_FIXED_PORT: The port number in
8226	// port
8227	// is used for health checking.
8228	// USE_NAMED_PORT: The
8229	// portName
8230	// is used for health checking.
8231	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
8232	// each network endpoint is used for health checking. For other
8233	// backends, the port or named port specified in the Backend Service is
8234	// used for health checking.
8235	//
8236	//
8237	// If not specified, HTTP2 health check follows behavior specified
8238	// in
8239	// port
8240	// and
8241	// portName
8242	// fields.
8243	//
8244	// Possible values:
8245	//   "USE_FIXED_PORT"
8246	//   "USE_NAMED_PORT"
8247	//   "USE_SERVING_PORT"
8248	PortSpecification string `json:"portSpecification,omitempty"`
8249
8250	// ProxyHeader: Specifies the type of proxy header to append before
8251	// sending data to the backend, either NONE or PROXY_V1. The default is
8252	// NONE.
8253	//
8254	// Possible values:
8255	//   "NONE"
8256	//   "PROXY_V1"
8257	ProxyHeader string `json:"proxyHeader,omitempty"`
8258
8259	// RequestPath: The request path of the HTTP/2 health check request. The
8260	// default value is /.
8261	RequestPath string `json:"requestPath,omitempty"`
8262
8263	// Response: The string to match anywhere in the first 1024 bytes of the
8264	// response body. If left empty (the default value), the status code
8265	// determines health. The response data can only be ASCII.
8266	Response string `json:"response,omitempty"`
8267
8268	// ForceSendFields is a list of field names (e.g. "Host") to
8269	// unconditionally include in API requests. By default, fields with
8270	// empty values are omitted from API requests. However, any non-pointer,
8271	// non-interface field appearing in ForceSendFields will be sent to the
8272	// server regardless of whether the field is empty or not. This may be
8273	// used to include empty fields in Patch requests.
8274	ForceSendFields []string `json:"-"`
8275
8276	// NullFields is a list of field names (e.g. "Host") to include in API
8277	// requests with the JSON null value. By default, fields with empty
8278	// values are omitted from API requests. However, any field with an
8279	// empty value appearing in NullFields will be sent to the server as
8280	// null. It is an error if a field in this list has a non-empty value.
8281	// This may be used to include null fields in Patch requests.
8282	NullFields []string `json:"-"`
8283}
8284
8285func (s *HTTP2HealthCheck) MarshalJSON() ([]byte, error) {
8286	type NoMethod HTTP2HealthCheck
8287	raw := NoMethod(*s)
8288	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8289}
8290
8291type HTTPHealthCheck struct {
8292	// Host: The value of the host header in the HTTP health check request.
8293	// If left empty (default value), the IP on behalf of which this health
8294	// check is performed will be used.
8295	Host string `json:"host,omitempty"`
8296
8297	// Port: The TCP port number for the health check request. The default
8298	// value is 80. Valid values are 1 through 65535.
8299	Port int64 `json:"port,omitempty"`
8300
8301	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
8302	// both port and port_name are defined, port takes precedence.
8303	PortName string `json:"portName,omitempty"`
8304
8305	// PortSpecification: Specifies how port is selected for health
8306	// checking, can be one of following values:
8307	// USE_FIXED_PORT: The port number in
8308	// port
8309	// is used for health checking.
8310	// USE_NAMED_PORT: The
8311	// portName
8312	// is used for health checking.
8313	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
8314	// each network endpoint is used for health checking. For other
8315	// backends, the port or named port specified in the Backend Service is
8316	// used for health checking.
8317	//
8318	//
8319	// If not specified, HTTP health check follows behavior specified
8320	// in
8321	// port
8322	// and
8323	// portName
8324	// fields.
8325	//
8326	// Possible values:
8327	//   "USE_FIXED_PORT"
8328	//   "USE_NAMED_PORT"
8329	//   "USE_SERVING_PORT"
8330	PortSpecification string `json:"portSpecification,omitempty"`
8331
8332	// ProxyHeader: Specifies the type of proxy header to append before
8333	// sending data to the backend, either NONE or PROXY_V1. The default is
8334	// NONE.
8335	//
8336	// Possible values:
8337	//   "NONE"
8338	//   "PROXY_V1"
8339	ProxyHeader string `json:"proxyHeader,omitempty"`
8340
8341	// RequestPath: The request path of the HTTP health check request. The
8342	// default value is /.
8343	RequestPath string `json:"requestPath,omitempty"`
8344
8345	// Response: The string to match anywhere in the first 1024 bytes of the
8346	// response body. If left empty (the default value), the status code
8347	// determines health. The response data can only be ASCII.
8348	Response string `json:"response,omitempty"`
8349
8350	// ForceSendFields is a list of field names (e.g. "Host") to
8351	// unconditionally include in API requests. By default, fields with
8352	// empty values are omitted from API requests. However, any non-pointer,
8353	// non-interface field appearing in ForceSendFields will be sent to the
8354	// server regardless of whether the field is empty or not. This may be
8355	// used to include empty fields in Patch requests.
8356	ForceSendFields []string `json:"-"`
8357
8358	// NullFields is a list of field names (e.g. "Host") to include in API
8359	// requests with the JSON null value. By default, fields with empty
8360	// values are omitted from API requests. However, any field with an
8361	// empty value appearing in NullFields will be sent to the server as
8362	// null. It is an error if a field in this list has a non-empty value.
8363	// This may be used to include null fields in Patch requests.
8364	NullFields []string `json:"-"`
8365}
8366
8367func (s *HTTPHealthCheck) MarshalJSON() ([]byte, error) {
8368	type NoMethod HTTPHealthCheck
8369	raw := NoMethod(*s)
8370	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8371}
8372
8373type HTTPSHealthCheck struct {
8374	// Host: The value of the host header in the HTTPS health check request.
8375	// If left empty (default value), the IP on behalf of which this health
8376	// check is performed will be used.
8377	Host string `json:"host,omitempty"`
8378
8379	// Port: The TCP port number for the health check request. The default
8380	// value is 443. Valid values are 1 through 65535.
8381	Port int64 `json:"port,omitempty"`
8382
8383	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
8384	// both port and port_name are defined, port takes precedence.
8385	PortName string `json:"portName,omitempty"`
8386
8387	// PortSpecification: Specifies how port is selected for health
8388	// checking, can be one of following values:
8389	// USE_FIXED_PORT: The port number in
8390	// port
8391	// is used for health checking.
8392	// USE_NAMED_PORT: The
8393	// portName
8394	// is used for health checking.
8395	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
8396	// each network endpoint is used for health checking. For other
8397	// backends, the port or named port specified in the Backend Service is
8398	// used for health checking.
8399	//
8400	//
8401	// If not specified, HTTPS health check follows behavior specified
8402	// in
8403	// port
8404	// and
8405	// portName
8406	// fields.
8407	//
8408	// Possible values:
8409	//   "USE_FIXED_PORT"
8410	//   "USE_NAMED_PORT"
8411	//   "USE_SERVING_PORT"
8412	PortSpecification string `json:"portSpecification,omitempty"`
8413
8414	// ProxyHeader: Specifies the type of proxy header to append before
8415	// sending data to the backend, either NONE or PROXY_V1. The default is
8416	// NONE.
8417	//
8418	// Possible values:
8419	//   "NONE"
8420	//   "PROXY_V1"
8421	ProxyHeader string `json:"proxyHeader,omitempty"`
8422
8423	// RequestPath: The request path of the HTTPS health check request. The
8424	// default value is /.
8425	RequestPath string `json:"requestPath,omitempty"`
8426
8427	// Response: The string to match anywhere in the first 1024 bytes of the
8428	// response body. If left empty (the default value), the status code
8429	// determines health. The response data can only be ASCII.
8430	Response string `json:"response,omitempty"`
8431
8432	// ForceSendFields is a list of field names (e.g. "Host") to
8433	// unconditionally include in API requests. By default, fields with
8434	// empty values are omitted from API requests. However, any non-pointer,
8435	// non-interface field appearing in ForceSendFields will be sent to the
8436	// server regardless of whether the field is empty or not. This may be
8437	// used to include empty fields in Patch requests.
8438	ForceSendFields []string `json:"-"`
8439
8440	// NullFields is a list of field names (e.g. "Host") to include in API
8441	// requests with the JSON null value. By default, fields with empty
8442	// values are omitted from API requests. However, any field with an
8443	// empty value appearing in NullFields will be sent to the server as
8444	// null. It is an error if a field in this list has a non-empty value.
8445	// This may be used to include null fields in Patch requests.
8446	NullFields []string `json:"-"`
8447}
8448
8449func (s *HTTPSHealthCheck) MarshalJSON() ([]byte, error) {
8450	type NoMethod HTTPSHealthCheck
8451	raw := NoMethod(*s)
8452	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8453}
8454
8455// HealthCheck: An HealthCheck resource. This resource defines a
8456// template for how individual virtual machines should be checked for
8457// health, via one of the supported protocols.
8458type HealthCheck struct {
8459	// CheckIntervalSec: How often (in seconds) to send a health check. The
8460	// default value is 5 seconds.
8461	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
8462
8463	// CreationTimestamp: [Output Only] Creation timestamp in 3339 text
8464	// format.
8465	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8466
8467	// Description: An optional description of this resource. Provide this
8468	// property when you create the resource.
8469	Description string `json:"description,omitempty"`
8470
8471	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
8472	// after this many consecutive successes. The default value is 2.
8473	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
8474
8475	Http2HealthCheck *HTTP2HealthCheck `json:"http2HealthCheck,omitempty"`
8476
8477	HttpHealthCheck *HTTPHealthCheck `json:"httpHealthCheck,omitempty"`
8478
8479	HttpsHealthCheck *HTTPSHealthCheck `json:"httpsHealthCheck,omitempty"`
8480
8481	// Id: [Output Only] The unique identifier for the resource. This
8482	// identifier is defined by the server.
8483	Id uint64 `json:"id,omitempty,string"`
8484
8485	// Kind: Type of the resource.
8486	Kind string `json:"kind,omitempty"`
8487
8488	// Name: Name of the resource. Provided by the client when the resource
8489	// is created. The name must be 1-63 characters long, and comply with
8490	// RFC1035. Specifically, the name must be 1-63 characters long and
8491	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
8492	// the first character must be a lowercase letter, and all following
8493	// characters must be a dash, lowercase letter, or digit, except the
8494	// last character, which cannot be a dash.
8495	Name string `json:"name,omitempty"`
8496
8497	// SelfLink: [Output Only] Server-defined URL for the resource.
8498	SelfLink string `json:"selfLink,omitempty"`
8499
8500	SslHealthCheck *SSLHealthCheck `json:"sslHealthCheck,omitempty"`
8501
8502	TcpHealthCheck *TCPHealthCheck `json:"tcpHealthCheck,omitempty"`
8503
8504	// TimeoutSec: How long (in seconds) to wait before claiming failure.
8505	// The default value is 5 seconds. It is invalid for timeoutSec to have
8506	// greater value than checkIntervalSec.
8507	TimeoutSec int64 `json:"timeoutSec,omitempty"`
8508
8509	// Type: Specifies the type of the healthCheck, either TCP, SSL, HTTP,
8510	// HTTPS or HTTP2. If not specified, the default is TCP. Exactly one of
8511	// the protocol-specific health check field must be specified, which
8512	// must match type field.
8513	//
8514	// Possible values:
8515	//   "HTTP"
8516	//   "HTTP2"
8517	//   "HTTPS"
8518	//   "INVALID"
8519	//   "SSL"
8520	//   "TCP"
8521	Type string `json:"type,omitempty"`
8522
8523	// UnhealthyThreshold: A so-far healthy instance will be marked
8524	// unhealthy after this many consecutive failures. The default value is
8525	// 2.
8526	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
8527
8528	// ServerResponse contains the HTTP response code and headers from the
8529	// server.
8530	googleapi.ServerResponse `json:"-"`
8531
8532	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
8533	// unconditionally include in API requests. By default, fields with
8534	// empty values are omitted from API requests. However, any non-pointer,
8535	// non-interface field appearing in ForceSendFields will be sent to the
8536	// server regardless of whether the field is empty or not. This may be
8537	// used to include empty fields in Patch requests.
8538	ForceSendFields []string `json:"-"`
8539
8540	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
8541	// include in API requests with the JSON null value. By default, fields
8542	// with empty values are omitted from API requests. However, any field
8543	// with an empty value appearing in NullFields will be sent to the
8544	// server as null. It is an error if a field in this list has a
8545	// non-empty value. This may be used to include null fields in Patch
8546	// requests.
8547	NullFields []string `json:"-"`
8548}
8549
8550func (s *HealthCheck) MarshalJSON() ([]byte, error) {
8551	type NoMethod HealthCheck
8552	raw := NoMethod(*s)
8553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8554}
8555
8556// HealthCheckList: Contains a list of HealthCheck resources.
8557type HealthCheckList struct {
8558	// Id: [Output Only] Unique identifier for the resource; defined by the
8559	// server.
8560	Id string `json:"id,omitempty"`
8561
8562	// Items: A list of HealthCheck resources.
8563	Items []*HealthCheck `json:"items,omitempty"`
8564
8565	// Kind: Type of resource.
8566	Kind string `json:"kind,omitempty"`
8567
8568	// NextPageToken: [Output Only] This token allows you to get the next
8569	// page of results for list requests. If the number of results is larger
8570	// than maxResults, use the nextPageToken as a value for the query
8571	// parameter pageToken in the next list request. Subsequent list
8572	// requests will have their own nextPageToken to continue paging through
8573	// the results.
8574	NextPageToken string `json:"nextPageToken,omitempty"`
8575
8576	// SelfLink: [Output Only] Server-defined URL for this resource.
8577	SelfLink string `json:"selfLink,omitempty"`
8578
8579	// Warning: [Output Only] Informational warning message.
8580	Warning *HealthCheckListWarning `json:"warning,omitempty"`
8581
8582	// ServerResponse contains the HTTP response code and headers from the
8583	// server.
8584	googleapi.ServerResponse `json:"-"`
8585
8586	// ForceSendFields is a list of field names (e.g. "Id") to
8587	// unconditionally include in API requests. By default, fields with
8588	// empty values are omitted from API requests. However, any non-pointer,
8589	// non-interface field appearing in ForceSendFields will be sent to the
8590	// server regardless of whether the field is empty or not. This may be
8591	// used to include empty fields in Patch requests.
8592	ForceSendFields []string `json:"-"`
8593
8594	// NullFields is a list of field names (e.g. "Id") to include in API
8595	// requests with the JSON null value. By default, fields with empty
8596	// values are omitted from API requests. However, any field with an
8597	// empty value appearing in NullFields will be sent to the server as
8598	// null. It is an error if a field in this list has a non-empty value.
8599	// This may be used to include null fields in Patch requests.
8600	NullFields []string `json:"-"`
8601}
8602
8603func (s *HealthCheckList) MarshalJSON() ([]byte, error) {
8604	type NoMethod HealthCheckList
8605	raw := NoMethod(*s)
8606	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8607}
8608
8609// HealthCheckListWarning: [Output Only] Informational warning message.
8610type HealthCheckListWarning struct {
8611	// Code: [Output Only] A warning code, if applicable. For example,
8612	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8613	// the response.
8614	//
8615	// Possible values:
8616	//   "CLEANUP_FAILED"
8617	//   "DEPRECATED_RESOURCE_USED"
8618	//   "DEPRECATED_TYPE_USED"
8619	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8620	//   "EXPERIMENTAL_TYPE_USED"
8621	//   "EXTERNAL_API_WARNING"
8622	//   "FIELD_VALUE_OVERRIDEN"
8623	//   "INJECTED_KERNELS_DEPRECATED"
8624	//   "MISSING_TYPE_DEPENDENCY"
8625	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8626	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8627	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8628	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8629	//   "NEXT_HOP_NOT_RUNNING"
8630	//   "NOT_CRITICAL_ERROR"
8631	//   "NO_RESULTS_ON_PAGE"
8632	//   "REQUIRED_TOS_AGREEMENT"
8633	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8634	//   "RESOURCE_NOT_DELETED"
8635	//   "SCHEMA_VALIDATION_IGNORED"
8636	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8637	//   "UNDECLARED_PROPERTIES"
8638	//   "UNREACHABLE"
8639	Code string `json:"code,omitempty"`
8640
8641	// Data: [Output Only] Metadata about this warning in key: value format.
8642	// For example:
8643	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8644	Data []*HealthCheckListWarningData `json:"data,omitempty"`
8645
8646	// Message: [Output Only] A human-readable description of the warning
8647	// code.
8648	Message string `json:"message,omitempty"`
8649
8650	// ForceSendFields is a list of field names (e.g. "Code") to
8651	// unconditionally include in API requests. By default, fields with
8652	// empty values are omitted from API requests. However, any non-pointer,
8653	// non-interface field appearing in ForceSendFields will be sent to the
8654	// server regardless of whether the field is empty or not. This may be
8655	// used to include empty fields in Patch requests.
8656	ForceSendFields []string `json:"-"`
8657
8658	// NullFields is a list of field names (e.g. "Code") to include in API
8659	// requests with the JSON null value. By default, fields with empty
8660	// values are omitted from API requests. However, any field with an
8661	// empty value appearing in NullFields will be sent to the server as
8662	// null. It is an error if a field in this list has a non-empty value.
8663	// This may be used to include null fields in Patch requests.
8664	NullFields []string `json:"-"`
8665}
8666
8667func (s *HealthCheckListWarning) MarshalJSON() ([]byte, error) {
8668	type NoMethod HealthCheckListWarning
8669	raw := NoMethod(*s)
8670	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8671}
8672
8673type HealthCheckListWarningData struct {
8674	// Key: [Output Only] A key that provides more detail on the warning
8675	// being returned. For example, for warnings where there are no results
8676	// in a list request for a particular zone, this key might be scope and
8677	// the key value might be the zone name. Other examples might be a key
8678	// indicating a deprecated resource and a suggested replacement, or a
8679	// warning about invalid network settings (for example, if an instance
8680	// attempts to perform IP forwarding but is not enabled for IP
8681	// forwarding).
8682	Key string `json:"key,omitempty"`
8683
8684	// Value: [Output Only] A warning data value corresponding to the key.
8685	Value string `json:"value,omitempty"`
8686
8687	// ForceSendFields is a list of field names (e.g. "Key") to
8688	// unconditionally include in API requests. By default, fields with
8689	// empty values are omitted from API requests. However, any non-pointer,
8690	// non-interface field appearing in ForceSendFields will be sent to the
8691	// server regardless of whether the field is empty or not. This may be
8692	// used to include empty fields in Patch requests.
8693	ForceSendFields []string `json:"-"`
8694
8695	// NullFields is a list of field names (e.g. "Key") to include in API
8696	// requests with the JSON null value. By default, fields with empty
8697	// values are omitted from API requests. However, any field with an
8698	// empty value appearing in NullFields will be sent to the server as
8699	// null. It is an error if a field in this list has a non-empty value.
8700	// This may be used to include null fields in Patch requests.
8701	NullFields []string `json:"-"`
8702}
8703
8704func (s *HealthCheckListWarningData) MarshalJSON() ([]byte, error) {
8705	type NoMethod HealthCheckListWarningData
8706	raw := NoMethod(*s)
8707	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8708}
8709
8710// HealthCheckReference: A full or valid partial URL to a health check.
8711// For example, the following are valid URLs:
8712// -
8713// https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check
8714// - projects/project-id/global/httpHealthChecks/health-check
8715// - global/httpHealthChecks/health-check
8716type HealthCheckReference struct {
8717	HealthCheck string `json:"healthCheck,omitempty"`
8718
8719	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
8720	// unconditionally include in API requests. By default, fields with
8721	// empty values are omitted from API requests. However, any non-pointer,
8722	// non-interface field appearing in ForceSendFields will be sent to the
8723	// server regardless of whether the field is empty or not. This may be
8724	// used to include empty fields in Patch requests.
8725	ForceSendFields []string `json:"-"`
8726
8727	// NullFields is a list of field names (e.g. "HealthCheck") to include
8728	// in API requests with the JSON null value. By default, fields with
8729	// empty values are omitted from API requests. However, any field with
8730	// an empty value appearing in NullFields will be sent to the server as
8731	// null. It is an error if a field in this list has a non-empty value.
8732	// This may be used to include null fields in Patch requests.
8733	NullFields []string `json:"-"`
8734}
8735
8736func (s *HealthCheckReference) MarshalJSON() ([]byte, error) {
8737	type NoMethod HealthCheckReference
8738	raw := NoMethod(*s)
8739	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8740}
8741
8742type HealthStatus struct {
8743	// HealthState: Health state of the instance.
8744	//
8745	// Possible values:
8746	//   "HEALTHY"
8747	//   "UNHEALTHY"
8748	HealthState string `json:"healthState,omitempty"`
8749
8750	// Instance: URL of the instance resource.
8751	Instance string `json:"instance,omitempty"`
8752
8753	// IpAddress: The IP address represented by this resource.
8754	IpAddress string `json:"ipAddress,omitempty"`
8755
8756	// Port: The port on the instance.
8757	Port int64 `json:"port,omitempty"`
8758
8759	// ForceSendFields is a list of field names (e.g. "HealthState") to
8760	// unconditionally include in API requests. By default, fields with
8761	// empty values are omitted from API requests. However, any non-pointer,
8762	// non-interface field appearing in ForceSendFields will be sent to the
8763	// server regardless of whether the field is empty or not. This may be
8764	// used to include empty fields in Patch requests.
8765	ForceSendFields []string `json:"-"`
8766
8767	// NullFields is a list of field names (e.g. "HealthState") to include
8768	// in API requests with the JSON null value. By default, fields with
8769	// empty values are omitted from API requests. However, any field with
8770	// an empty value appearing in NullFields will be sent to the server as
8771	// null. It is an error if a field in this list has a non-empty value.
8772	// This may be used to include null fields in Patch requests.
8773	NullFields []string `json:"-"`
8774}
8775
8776func (s *HealthStatus) MarshalJSON() ([]byte, error) {
8777	type NoMethod HealthStatus
8778	raw := NoMethod(*s)
8779	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8780}
8781
8782type HealthStatusForNetworkEndpoint struct {
8783	// BackendService: URL of the backend service associated with the health
8784	// state of the network endpoint.
8785	BackendService *BackendServiceReference `json:"backendService,omitempty"`
8786
8787	// ForwardingRule: URL of the forwarding rule associated with the health
8788	// state of the network endpoint.
8789	ForwardingRule *ForwardingRuleReference `json:"forwardingRule,omitempty"`
8790
8791	// HealthCheck: URL of the health check associated with the health state
8792	// of the network endpoint.
8793	HealthCheck *HealthCheckReference `json:"healthCheck,omitempty"`
8794
8795	// HealthState: Health state of the network endpoint determined based on
8796	// the health checks configured.
8797	//
8798	// Possible values:
8799	//   "DRAINING"
8800	//   "HEALTHY"
8801	//   "UNHEALTHY"
8802	//   "UNKNOWN"
8803	HealthState string `json:"healthState,omitempty"`
8804
8805	// ForceSendFields is a list of field names (e.g. "BackendService") to
8806	// unconditionally include in API requests. By default, fields with
8807	// empty values are omitted from API requests. However, any non-pointer,
8808	// non-interface field appearing in ForceSendFields will be sent to the
8809	// server regardless of whether the field is empty or not. This may be
8810	// used to include empty fields in Patch requests.
8811	ForceSendFields []string `json:"-"`
8812
8813	// NullFields is a list of field names (e.g. "BackendService") to
8814	// include in API requests with the JSON null value. By default, fields
8815	// with empty values are omitted from API requests. However, any field
8816	// with an empty value appearing in NullFields will be sent to the
8817	// server as null. It is an error if a field in this list has a
8818	// non-empty value. This may be used to include null fields in Patch
8819	// requests.
8820	NullFields []string `json:"-"`
8821}
8822
8823func (s *HealthStatusForNetworkEndpoint) MarshalJSON() ([]byte, error) {
8824	type NoMethod HealthStatusForNetworkEndpoint
8825	raw := NoMethod(*s)
8826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8827}
8828
8829// HostRule: UrlMaps A host-matching rule for a URL. If matched, will
8830// use the named PathMatcher to select the BackendService.
8831type HostRule struct {
8832	// Description: An optional description of this resource. Provide this
8833	// property when you create the resource.
8834	Description string `json:"description,omitempty"`
8835
8836	// Hosts: The list of host patterns to match. They must be valid
8837	// hostnames, except * will match any string of ([a-z0-9-.]*). In that
8838	// case, * must be the first character and must be followed in the
8839	// pattern by either - or ..
8840	Hosts []string `json:"hosts,omitempty"`
8841
8842	// PathMatcher: The name of the PathMatcher to use to match the path
8843	// portion of the URL if the hostRule matches the URL's host portion.
8844	PathMatcher string `json:"pathMatcher,omitempty"`
8845
8846	// ForceSendFields is a list of field names (e.g. "Description") to
8847	// unconditionally include in API requests. By default, fields with
8848	// empty values are omitted from API requests. However, any non-pointer,
8849	// non-interface field appearing in ForceSendFields will be sent to the
8850	// server regardless of whether the field is empty or not. This may be
8851	// used to include empty fields in Patch requests.
8852	ForceSendFields []string `json:"-"`
8853
8854	// NullFields is a list of field names (e.g. "Description") to include
8855	// in API requests with the JSON null value. By default, fields with
8856	// empty values are omitted from API requests. However, any field with
8857	// an empty value appearing in NullFields will be sent to the server as
8858	// null. It is an error if a field in this list has a non-empty value.
8859	// This may be used to include null fields in Patch requests.
8860	NullFields []string `json:"-"`
8861}
8862
8863func (s *HostRule) MarshalJSON() ([]byte, error) {
8864	type NoMethod HostRule
8865	raw := NoMethod(*s)
8866	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8867}
8868
8869// HttpHealthCheck: An HttpHealthCheck resource. This resource defines a
8870// template for how individual instances should be checked for health,
8871// via HTTP.
8872type HttpHealthCheck struct {
8873	// CheckIntervalSec: How often (in seconds) to send a health check. The
8874	// default value is 5 seconds.
8875	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
8876
8877	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
8878	// format.
8879	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8880
8881	// Description: An optional description of this resource. Provide this
8882	// property when you create the resource.
8883	Description string `json:"description,omitempty"`
8884
8885	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
8886	// after this many consecutive successes. The default value is 2.
8887	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
8888
8889	// Host: The value of the host header in the HTTP health check request.
8890	// If left empty (default value), the public IP on behalf of which this
8891	// health check is performed will be used.
8892	Host string `json:"host,omitempty"`
8893
8894	// Id: [Output Only] The unique identifier for the resource. This
8895	// identifier is defined by the server.
8896	Id uint64 `json:"id,omitempty,string"`
8897
8898	// Kind: [Output Only] Type of the resource. Always
8899	// compute#httpHealthCheck for HTTP health checks.
8900	Kind string `json:"kind,omitempty"`
8901
8902	// Name: Name of the resource. Provided by the client when the resource
8903	// is created. The name must be 1-63 characters long, and comply with
8904	// RFC1035. Specifically, the name must be 1-63 characters long and
8905	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
8906	// the first character must be a lowercase letter, and all following
8907	// characters must be a dash, lowercase letter, or digit, except the
8908	// last character, which cannot be a dash.
8909	Name string `json:"name,omitempty"`
8910
8911	// Port: The TCP port number for the HTTP health check request. The
8912	// default value is 80.
8913	Port int64 `json:"port,omitempty"`
8914
8915	// RequestPath: The request path of the HTTP health check request. The
8916	// default value is /.
8917	RequestPath string `json:"requestPath,omitempty"`
8918
8919	// SelfLink: [Output Only] Server-defined URL for the resource.
8920	SelfLink string `json:"selfLink,omitempty"`
8921
8922	// TimeoutSec: How long (in seconds) to wait before claiming failure.
8923	// The default value is 5 seconds. It is invalid for timeoutSec to have
8924	// greater value than checkIntervalSec.
8925	TimeoutSec int64 `json:"timeoutSec,omitempty"`
8926
8927	// UnhealthyThreshold: A so-far healthy instance will be marked
8928	// unhealthy after this many consecutive failures. The default value is
8929	// 2.
8930	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
8931
8932	// ServerResponse contains the HTTP response code and headers from the
8933	// server.
8934	googleapi.ServerResponse `json:"-"`
8935
8936	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
8937	// unconditionally include in API requests. By default, fields with
8938	// empty values are omitted from API requests. However, any non-pointer,
8939	// non-interface field appearing in ForceSendFields will be sent to the
8940	// server regardless of whether the field is empty or not. This may be
8941	// used to include empty fields in Patch requests.
8942	ForceSendFields []string `json:"-"`
8943
8944	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
8945	// include in API requests with the JSON null value. By default, fields
8946	// with empty values are omitted from API requests. However, any field
8947	// with an empty value appearing in NullFields will be sent to the
8948	// server as null. It is an error if a field in this list has a
8949	// non-empty value. This may be used to include null fields in Patch
8950	// requests.
8951	NullFields []string `json:"-"`
8952}
8953
8954func (s *HttpHealthCheck) MarshalJSON() ([]byte, error) {
8955	type NoMethod HttpHealthCheck
8956	raw := NoMethod(*s)
8957	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8958}
8959
8960// HttpHealthCheckList: Contains a list of HttpHealthCheck resources.
8961type HttpHealthCheckList struct {
8962	// Id: [Output Only] Unique identifier for the resource; defined by the
8963	// server.
8964	Id string `json:"id,omitempty"`
8965
8966	// Items: A list of HttpHealthCheck resources.
8967	Items []*HttpHealthCheck `json:"items,omitempty"`
8968
8969	// Kind: Type of resource.
8970	Kind string `json:"kind,omitempty"`
8971
8972	// NextPageToken: [Output Only] This token allows you to get the next
8973	// page of results for list requests. If the number of results is larger
8974	// than maxResults, use the nextPageToken as a value for the query
8975	// parameter pageToken in the next list request. Subsequent list
8976	// requests will have their own nextPageToken to continue paging through
8977	// the results.
8978	NextPageToken string `json:"nextPageToken,omitempty"`
8979
8980	// SelfLink: [Output Only] Server-defined URL for this resource.
8981	SelfLink string `json:"selfLink,omitempty"`
8982
8983	// Warning: [Output Only] Informational warning message.
8984	Warning *HttpHealthCheckListWarning `json:"warning,omitempty"`
8985
8986	// ServerResponse contains the HTTP response code and headers from the
8987	// server.
8988	googleapi.ServerResponse `json:"-"`
8989
8990	// ForceSendFields is a list of field names (e.g. "Id") to
8991	// unconditionally include in API requests. By default, fields with
8992	// empty values are omitted from API requests. However, any non-pointer,
8993	// non-interface field appearing in ForceSendFields will be sent to the
8994	// server regardless of whether the field is empty or not. This may be
8995	// used to include empty fields in Patch requests.
8996	ForceSendFields []string `json:"-"`
8997
8998	// NullFields is a list of field names (e.g. "Id") to include in API
8999	// requests with the JSON null value. By default, fields with empty
9000	// values are omitted from API requests. However, any field with an
9001	// empty value appearing in NullFields will be sent to the server as
9002	// null. It is an error if a field in this list has a non-empty value.
9003	// This may be used to include null fields in Patch requests.
9004	NullFields []string `json:"-"`
9005}
9006
9007func (s *HttpHealthCheckList) MarshalJSON() ([]byte, error) {
9008	type NoMethod HttpHealthCheckList
9009	raw := NoMethod(*s)
9010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9011}
9012
9013// HttpHealthCheckListWarning: [Output Only] Informational warning
9014// message.
9015type HttpHealthCheckListWarning struct {
9016	// Code: [Output Only] A warning code, if applicable. For example,
9017	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9018	// the response.
9019	//
9020	// Possible values:
9021	//   "CLEANUP_FAILED"
9022	//   "DEPRECATED_RESOURCE_USED"
9023	//   "DEPRECATED_TYPE_USED"
9024	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9025	//   "EXPERIMENTAL_TYPE_USED"
9026	//   "EXTERNAL_API_WARNING"
9027	//   "FIELD_VALUE_OVERRIDEN"
9028	//   "INJECTED_KERNELS_DEPRECATED"
9029	//   "MISSING_TYPE_DEPENDENCY"
9030	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9031	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9032	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9033	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9034	//   "NEXT_HOP_NOT_RUNNING"
9035	//   "NOT_CRITICAL_ERROR"
9036	//   "NO_RESULTS_ON_PAGE"
9037	//   "REQUIRED_TOS_AGREEMENT"
9038	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9039	//   "RESOURCE_NOT_DELETED"
9040	//   "SCHEMA_VALIDATION_IGNORED"
9041	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9042	//   "UNDECLARED_PROPERTIES"
9043	//   "UNREACHABLE"
9044	Code string `json:"code,omitempty"`
9045
9046	// Data: [Output Only] Metadata about this warning in key: value format.
9047	// For example:
9048	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9049	Data []*HttpHealthCheckListWarningData `json:"data,omitempty"`
9050
9051	// Message: [Output Only] A human-readable description of the warning
9052	// code.
9053	Message string `json:"message,omitempty"`
9054
9055	// ForceSendFields is a list of field names (e.g. "Code") to
9056	// unconditionally include in API requests. By default, fields with
9057	// empty values are omitted from API requests. However, any non-pointer,
9058	// non-interface field appearing in ForceSendFields will be sent to the
9059	// server regardless of whether the field is empty or not. This may be
9060	// used to include empty fields in Patch requests.
9061	ForceSendFields []string `json:"-"`
9062
9063	// NullFields is a list of field names (e.g. "Code") to include in API
9064	// requests with the JSON null value. By default, fields with empty
9065	// values are omitted from API requests. However, any field with an
9066	// empty value appearing in NullFields will be sent to the server as
9067	// null. It is an error if a field in this list has a non-empty value.
9068	// This may be used to include null fields in Patch requests.
9069	NullFields []string `json:"-"`
9070}
9071
9072func (s *HttpHealthCheckListWarning) MarshalJSON() ([]byte, error) {
9073	type NoMethod HttpHealthCheckListWarning
9074	raw := NoMethod(*s)
9075	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9076}
9077
9078type HttpHealthCheckListWarningData struct {
9079	// Key: [Output Only] A key that provides more detail on the warning
9080	// being returned. For example, for warnings where there are no results
9081	// in a list request for a particular zone, this key might be scope and
9082	// the key value might be the zone name. Other examples might be a key
9083	// indicating a deprecated resource and a suggested replacement, or a
9084	// warning about invalid network settings (for example, if an instance
9085	// attempts to perform IP forwarding but is not enabled for IP
9086	// forwarding).
9087	Key string `json:"key,omitempty"`
9088
9089	// Value: [Output Only] A warning data value corresponding to the key.
9090	Value string `json:"value,omitempty"`
9091
9092	// ForceSendFields is a list of field names (e.g. "Key") to
9093	// unconditionally include in API requests. By default, fields with
9094	// empty values are omitted from API requests. However, any non-pointer,
9095	// non-interface field appearing in ForceSendFields will be sent to the
9096	// server regardless of whether the field is empty or not. This may be
9097	// used to include empty fields in Patch requests.
9098	ForceSendFields []string `json:"-"`
9099
9100	// NullFields is a list of field names (e.g. "Key") to include in API
9101	// requests with the JSON null value. By default, fields with empty
9102	// values are omitted from API requests. However, any field with an
9103	// empty value appearing in NullFields will be sent to the server as
9104	// null. It is an error if a field in this list has a non-empty value.
9105	// This may be used to include null fields in Patch requests.
9106	NullFields []string `json:"-"`
9107}
9108
9109func (s *HttpHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
9110	type NoMethod HttpHealthCheckListWarningData
9111	raw := NoMethod(*s)
9112	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9113}
9114
9115// HttpsHealthCheck: An HttpsHealthCheck resource. This resource defines
9116// a template for how individual instances should be checked for health,
9117// via HTTPS.
9118type HttpsHealthCheck struct {
9119	// CheckIntervalSec: How often (in seconds) to send a health check. The
9120	// default value is 5 seconds.
9121	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
9122
9123	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
9124	// format.
9125	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9126
9127	// Description: An optional description of this resource. Provide this
9128	// property when you create the resource.
9129	Description string `json:"description,omitempty"`
9130
9131	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
9132	// after this many consecutive successes. The default value is 2.
9133	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
9134
9135	// Host: The value of the host header in the HTTPS health check request.
9136	// If left empty (default value), the public IP on behalf of which this
9137	// health check is performed will be used.
9138	Host string `json:"host,omitempty"`
9139
9140	// Id: [Output Only] The unique identifier for the resource. This
9141	// identifier is defined by the server.
9142	Id uint64 `json:"id,omitempty,string"`
9143
9144	// Kind: Type of the resource.
9145	Kind string `json:"kind,omitempty"`
9146
9147	// Name: Name of the resource. Provided by the client when the resource
9148	// is created. The name must be 1-63 characters long, and comply with
9149	// RFC1035. Specifically, the name must be 1-63 characters long and
9150	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
9151	// the first character must be a lowercase letter, and all following
9152	// characters must be a dash, lowercase letter, or digit, except the
9153	// last character, which cannot be a dash.
9154	Name string `json:"name,omitempty"`
9155
9156	// Port: The TCP port number for the HTTPS health check request. The
9157	// default value is 443.
9158	Port int64 `json:"port,omitempty"`
9159
9160	// RequestPath: The request path of the HTTPS health check request. The
9161	// default value is "/".
9162	RequestPath string `json:"requestPath,omitempty"`
9163
9164	// SelfLink: [Output Only] Server-defined URL for the resource.
9165	SelfLink string `json:"selfLink,omitempty"`
9166
9167	// TimeoutSec: How long (in seconds) to wait before claiming failure.
9168	// The default value is 5 seconds. It is invalid for timeoutSec to have
9169	// a greater value than checkIntervalSec.
9170	TimeoutSec int64 `json:"timeoutSec,omitempty"`
9171
9172	// UnhealthyThreshold: A so-far healthy instance will be marked
9173	// unhealthy after this many consecutive failures. The default value is
9174	// 2.
9175	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
9176
9177	// ServerResponse contains the HTTP response code and headers from the
9178	// server.
9179	googleapi.ServerResponse `json:"-"`
9180
9181	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
9182	// unconditionally include in API requests. By default, fields with
9183	// empty values are omitted from API requests. However, any non-pointer,
9184	// non-interface field appearing in ForceSendFields will be sent to the
9185	// server regardless of whether the field is empty or not. This may be
9186	// used to include empty fields in Patch requests.
9187	ForceSendFields []string `json:"-"`
9188
9189	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
9190	// include in API requests with the JSON null value. By default, fields
9191	// with empty values are omitted from API requests. However, any field
9192	// with an empty value appearing in NullFields will be sent to the
9193	// server as null. It is an error if a field in this list has a
9194	// non-empty value. This may be used to include null fields in Patch
9195	// requests.
9196	NullFields []string `json:"-"`
9197}
9198
9199func (s *HttpsHealthCheck) MarshalJSON() ([]byte, error) {
9200	type NoMethod HttpsHealthCheck
9201	raw := NoMethod(*s)
9202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9203}
9204
9205// HttpsHealthCheckList: Contains a list of HttpsHealthCheck resources.
9206type HttpsHealthCheckList struct {
9207	// Id: [Output Only] Unique identifier for the resource; defined by the
9208	// server.
9209	Id string `json:"id,omitempty"`
9210
9211	// Items: A list of HttpsHealthCheck resources.
9212	Items []*HttpsHealthCheck `json:"items,omitempty"`
9213
9214	// Kind: Type of resource.
9215	Kind string `json:"kind,omitempty"`
9216
9217	// NextPageToken: [Output Only] This token allows you to get the next
9218	// page of results for list requests. If the number of results is larger
9219	// than maxResults, use the nextPageToken as a value for the query
9220	// parameter pageToken in the next list request. Subsequent list
9221	// requests will have their own nextPageToken to continue paging through
9222	// the results.
9223	NextPageToken string `json:"nextPageToken,omitempty"`
9224
9225	// SelfLink: [Output Only] Server-defined URL for this resource.
9226	SelfLink string `json:"selfLink,omitempty"`
9227
9228	// Warning: [Output Only] Informational warning message.
9229	Warning *HttpsHealthCheckListWarning `json:"warning,omitempty"`
9230
9231	// ServerResponse contains the HTTP response code and headers from the
9232	// server.
9233	googleapi.ServerResponse `json:"-"`
9234
9235	// ForceSendFields is a list of field names (e.g. "Id") to
9236	// unconditionally include in API requests. By default, fields with
9237	// empty values are omitted from API requests. However, any non-pointer,
9238	// non-interface field appearing in ForceSendFields will be sent to the
9239	// server regardless of whether the field is empty or not. This may be
9240	// used to include empty fields in Patch requests.
9241	ForceSendFields []string `json:"-"`
9242
9243	// NullFields is a list of field names (e.g. "Id") to include in API
9244	// requests with the JSON null value. By default, fields with empty
9245	// values are omitted from API requests. However, any field with an
9246	// empty value appearing in NullFields will be sent to the server as
9247	// null. It is an error if a field in this list has a non-empty value.
9248	// This may be used to include null fields in Patch requests.
9249	NullFields []string `json:"-"`
9250}
9251
9252func (s *HttpsHealthCheckList) MarshalJSON() ([]byte, error) {
9253	type NoMethod HttpsHealthCheckList
9254	raw := NoMethod(*s)
9255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9256}
9257
9258// HttpsHealthCheckListWarning: [Output Only] Informational warning
9259// message.
9260type HttpsHealthCheckListWarning struct {
9261	// Code: [Output Only] A warning code, if applicable. For example,
9262	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9263	// the response.
9264	//
9265	// Possible values:
9266	//   "CLEANUP_FAILED"
9267	//   "DEPRECATED_RESOURCE_USED"
9268	//   "DEPRECATED_TYPE_USED"
9269	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9270	//   "EXPERIMENTAL_TYPE_USED"
9271	//   "EXTERNAL_API_WARNING"
9272	//   "FIELD_VALUE_OVERRIDEN"
9273	//   "INJECTED_KERNELS_DEPRECATED"
9274	//   "MISSING_TYPE_DEPENDENCY"
9275	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9276	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9277	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9278	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9279	//   "NEXT_HOP_NOT_RUNNING"
9280	//   "NOT_CRITICAL_ERROR"
9281	//   "NO_RESULTS_ON_PAGE"
9282	//   "REQUIRED_TOS_AGREEMENT"
9283	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9284	//   "RESOURCE_NOT_DELETED"
9285	//   "SCHEMA_VALIDATION_IGNORED"
9286	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9287	//   "UNDECLARED_PROPERTIES"
9288	//   "UNREACHABLE"
9289	Code string `json:"code,omitempty"`
9290
9291	// Data: [Output Only] Metadata about this warning in key: value format.
9292	// For example:
9293	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9294	Data []*HttpsHealthCheckListWarningData `json:"data,omitempty"`
9295
9296	// Message: [Output Only] A human-readable description of the warning
9297	// code.
9298	Message string `json:"message,omitempty"`
9299
9300	// ForceSendFields is a list of field names (e.g. "Code") to
9301	// unconditionally include in API requests. By default, fields with
9302	// empty values are omitted from API requests. However, any non-pointer,
9303	// non-interface field appearing in ForceSendFields will be sent to the
9304	// server regardless of whether the field is empty or not. This may be
9305	// used to include empty fields in Patch requests.
9306	ForceSendFields []string `json:"-"`
9307
9308	// NullFields is a list of field names (e.g. "Code") to include in API
9309	// requests with the JSON null value. By default, fields with empty
9310	// values are omitted from API requests. However, any field with an
9311	// empty value appearing in NullFields will be sent to the server as
9312	// null. It is an error if a field in this list has a non-empty value.
9313	// This may be used to include null fields in Patch requests.
9314	NullFields []string `json:"-"`
9315}
9316
9317func (s *HttpsHealthCheckListWarning) MarshalJSON() ([]byte, error) {
9318	type NoMethod HttpsHealthCheckListWarning
9319	raw := NoMethod(*s)
9320	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9321}
9322
9323type HttpsHealthCheckListWarningData struct {
9324	// Key: [Output Only] A key that provides more detail on the warning
9325	// being returned. For example, for warnings where there are no results
9326	// in a list request for a particular zone, this key might be scope and
9327	// the key value might be the zone name. Other examples might be a key
9328	// indicating a deprecated resource and a suggested replacement, or a
9329	// warning about invalid network settings (for example, if an instance
9330	// attempts to perform IP forwarding but is not enabled for IP
9331	// forwarding).
9332	Key string `json:"key,omitempty"`
9333
9334	// Value: [Output Only] A warning data value corresponding to the key.
9335	Value string `json:"value,omitempty"`
9336
9337	// ForceSendFields is a list of field names (e.g. "Key") to
9338	// unconditionally include in API requests. By default, fields with
9339	// empty values are omitted from API requests. However, any non-pointer,
9340	// non-interface field appearing in ForceSendFields will be sent to the
9341	// server regardless of whether the field is empty or not. This may be
9342	// used to include empty fields in Patch requests.
9343	ForceSendFields []string `json:"-"`
9344
9345	// NullFields is a list of field names (e.g. "Key") to include in API
9346	// requests with the JSON null value. By default, fields with empty
9347	// values are omitted from API requests. However, any field with an
9348	// empty value appearing in NullFields will be sent to the server as
9349	// null. It is an error if a field in this list has a non-empty value.
9350	// This may be used to include null fields in Patch requests.
9351	NullFields []string `json:"-"`
9352}
9353
9354func (s *HttpsHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
9355	type NoMethod HttpsHealthCheckListWarningData
9356	raw := NoMethod(*s)
9357	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9358}
9359
9360// Image: An Image resource. (== resource_for beta.images ==) (==
9361// resource_for v1.images ==)
9362type Image struct {
9363	// ArchiveSizeBytes: Size of the image tar.gz archive stored in Google
9364	// Cloud Storage (in bytes).
9365	ArchiveSizeBytes int64 `json:"archiveSizeBytes,omitempty,string"`
9366
9367	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
9368	// format.
9369	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9370
9371	// Deprecated: The deprecation status associated with this image.
9372	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
9373
9374	// Description: An optional description of this resource. Provide this
9375	// property when you create the resource.
9376	Description string `json:"description,omitempty"`
9377
9378	// DiskSizeGb: Size of the image when restored onto a persistent disk
9379	// (in GB).
9380	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
9381
9382	// Family: The name of the image family to which this image belongs. You
9383	// can create disks by specifying an image family instead of a specific
9384	// image name. The image family always returns its latest image that is
9385	// not deprecated. The name of the image family must comply with
9386	// RFC1035.
9387	Family string `json:"family,omitempty"`
9388
9389	// GuestOsFeatures: A list of features to enable on the guest operating
9390	// system. Applicable only for bootable images. Read  Enabling guest
9391	// operating system features to see a list of available options.
9392	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
9393
9394	// Id: [Output Only] The unique identifier for the resource. This
9395	// identifier is defined by the server.
9396	Id uint64 `json:"id,omitempty,string"`
9397
9398	// ImageEncryptionKey: Encrypts the image using a customer-supplied
9399	// encryption key.
9400	//
9401	// After you encrypt an image with a customer-supplied key, you must
9402	// provide the same key if you use the image later (e.g. to create a
9403	// disk from the image).
9404	//
9405	// Customer-supplied encryption keys do not protect access to metadata
9406	// of the disk.
9407	//
9408	// If you do not provide an encryption key when creating the image, then
9409	// the disk will be encrypted using an automatically generated key and
9410	// you do not need to provide a key to use the image later.
9411	ImageEncryptionKey *CustomerEncryptionKey `json:"imageEncryptionKey,omitempty"`
9412
9413	// Kind: [Output Only] Type of the resource. Always compute#image for
9414	// images.
9415	Kind string `json:"kind,omitempty"`
9416
9417	// LabelFingerprint: A fingerprint for the labels being applied to this
9418	// image, which is essentially a hash of the labels used for optimistic
9419	// locking. The fingerprint is initially generated by Compute Engine and
9420	// changes after every request to modify or update labels. You must
9421	// always provide an up-to-date fingerprint hash in order to update or
9422	// change labels, otherwise the request will fail with error 412
9423	// conditionNotMet.
9424	//
9425	// To see the latest fingerprint, make a get() request to retrieve an
9426	// image.
9427	LabelFingerprint string `json:"labelFingerprint,omitempty"`
9428
9429	// Labels: Labels to apply to this image. These can be later modified by
9430	// the setLabels method.
9431	Labels map[string]string `json:"labels,omitempty"`
9432
9433	// LicenseCodes: Integer license codes indicating which licenses are
9434	// attached to this image.
9435	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
9436
9437	// Licenses: Any applicable license URI.
9438	Licenses []string `json:"licenses,omitempty"`
9439
9440	// Name: Name of the resource; provided by the client when the resource
9441	// is created. The name must be 1-63 characters long, and comply with
9442	// RFC1035. Specifically, the name must be 1-63 characters long and
9443	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
9444	// the first character must be a lowercase letter, and all following
9445	// characters must be a dash, lowercase letter, or digit, except the
9446	// last character, which cannot be a dash.
9447	Name string `json:"name,omitempty"`
9448
9449	// RawDisk: The parameters of the raw disk image.
9450	RawDisk *ImageRawDisk `json:"rawDisk,omitempty"`
9451
9452	// SelfLink: [Output Only] Server-defined URL for the resource.
9453	SelfLink string `json:"selfLink,omitempty"`
9454
9455	// SourceDisk: URL of the source disk used to create this image. This
9456	// can be a full or valid partial URL. You must provide either this
9457	// property or the rawDisk.source property but not both to create an
9458	// image. For example, the following are valid values:
9459	// -
9460	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
9461	// - projects/project/zones/zone/disks/disk
9462	// - zones/zone/disks/disk
9463	SourceDisk string `json:"sourceDisk,omitempty"`
9464
9465	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
9466	// source disk. Required if the source disk is protected by a
9467	// customer-supplied encryption key.
9468	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
9469
9470	// SourceDiskId: [Output Only] The ID value of the disk used to create
9471	// this image. This value may be used to determine whether the image was
9472	// taken from the current or a previous instance of a given disk name.
9473	SourceDiskId string `json:"sourceDiskId,omitempty"`
9474
9475	// SourceImage: URL of the source image used to create this image. This
9476	// can be a full or valid partial URL. You must provide exactly one of:
9477	//
9478	// - this property, or
9479	// - the rawDisk.source property, or
9480	// - the sourceDisk property   in order to create an image.
9481	SourceImage string `json:"sourceImage,omitempty"`
9482
9483	// SourceImageEncryptionKey: The customer-supplied encryption key of the
9484	// source image. Required if the source image is protected by a
9485	// customer-supplied encryption key.
9486	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
9487
9488	// SourceImageId: [Output Only] The ID value of the image used to create
9489	// this image. This value may be used to determine whether the image was
9490	// taken from the current or a previous instance of a given image name.
9491	SourceImageId string `json:"sourceImageId,omitempty"`
9492
9493	// SourceSnapshot: URL of the source snapshot used to create this image.
9494	// This can be a full or valid partial URL. You must provide exactly one
9495	// of:
9496	// - this property, or
9497	// - the sourceImage property, or
9498	// - the rawDisk.source property, or
9499	// - the sourceDisk property   in order to create an image.
9500	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
9501
9502	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
9503	// the source snapshot. Required if the source snapshot is protected by
9504	// a customer-supplied encryption key.
9505	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
9506
9507	// SourceSnapshotId: [Output Only] The ID value of the snapshot used to
9508	// create this image. This value may be used to determine whether the
9509	// snapshot was taken from the current or a previous instance of a given
9510	// snapshot name.
9511	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
9512
9513	// SourceType: The type of the image used to create this disk. The
9514	// default and only value is RAW
9515	//
9516	// Possible values:
9517	//   "RAW" (default)
9518	SourceType string `json:"sourceType,omitempty"`
9519
9520	// Status: [Output Only] The status of the image. An image can be used
9521	// to create other resources, such as instances, only after the image
9522	// has been successfully created and the status is set to READY.
9523	// Possible values are FAILED, PENDING, or READY.
9524	//
9525	// Possible values:
9526	//   "DELETING"
9527	//   "FAILED"
9528	//   "PENDING"
9529	//   "READY"
9530	Status string `json:"status,omitempty"`
9531
9532	// ServerResponse contains the HTTP response code and headers from the
9533	// server.
9534	googleapi.ServerResponse `json:"-"`
9535
9536	// ForceSendFields is a list of field names (e.g. "ArchiveSizeBytes") to
9537	// unconditionally include in API requests. By default, fields with
9538	// empty values are omitted from API requests. However, any non-pointer,
9539	// non-interface field appearing in ForceSendFields will be sent to the
9540	// server regardless of whether the field is empty or not. This may be
9541	// used to include empty fields in Patch requests.
9542	ForceSendFields []string `json:"-"`
9543
9544	// NullFields is a list of field names (e.g. "ArchiveSizeBytes") to
9545	// include in API requests with the JSON null value. By default, fields
9546	// with empty values are omitted from API requests. However, any field
9547	// with an empty value appearing in NullFields will be sent to the
9548	// server as null. It is an error if a field in this list has a
9549	// non-empty value. This may be used to include null fields in Patch
9550	// requests.
9551	NullFields []string `json:"-"`
9552}
9553
9554func (s *Image) MarshalJSON() ([]byte, error) {
9555	type NoMethod Image
9556	raw := NoMethod(*s)
9557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9558}
9559
9560// ImageRawDisk: The parameters of the raw disk image.
9561type ImageRawDisk struct {
9562	// ContainerType: The format used to encode and transmit the block
9563	// device, which should be TAR. This is just a container and
9564	// transmission format and not a runtime format. Provided by the client
9565	// when the disk image is created.
9566	//
9567	// Possible values:
9568	//   "TAR"
9569	ContainerType string `json:"containerType,omitempty"`
9570
9571	// Sha1Checksum: An optional SHA1 checksum of the disk image before
9572	// unpackaging provided by the client when the disk image is created.
9573	Sha1Checksum string `json:"sha1Checksum,omitempty"`
9574
9575	// Source: The full Google Cloud Storage URL where the disk image is
9576	// stored. You must provide either this property or the sourceDisk
9577	// property but not both.
9578	Source string `json:"source,omitempty"`
9579
9580	// ForceSendFields is a list of field names (e.g. "ContainerType") to
9581	// unconditionally include in API requests. By default, fields with
9582	// empty values are omitted from API requests. However, any non-pointer,
9583	// non-interface field appearing in ForceSendFields will be sent to the
9584	// server regardless of whether the field is empty or not. This may be
9585	// used to include empty fields in Patch requests.
9586	ForceSendFields []string `json:"-"`
9587
9588	// NullFields is a list of field names (e.g. "ContainerType") to include
9589	// in API requests with the JSON null value. By default, fields with
9590	// empty values are omitted from API requests. However, any field with
9591	// an empty value appearing in NullFields will be sent to the server as
9592	// null. It is an error if a field in this list has a non-empty value.
9593	// This may be used to include null fields in Patch requests.
9594	NullFields []string `json:"-"`
9595}
9596
9597func (s *ImageRawDisk) MarshalJSON() ([]byte, error) {
9598	type NoMethod ImageRawDisk
9599	raw := NoMethod(*s)
9600	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9601}
9602
9603// ImageList: Contains a list of images.
9604type ImageList struct {
9605	// Id: [Output Only] Unique identifier for the resource; defined by the
9606	// server.
9607	Id string `json:"id,omitempty"`
9608
9609	// Items: A list of Image resources.
9610	Items []*Image `json:"items,omitempty"`
9611
9612	// Kind: Type of resource.
9613	Kind string `json:"kind,omitempty"`
9614
9615	// NextPageToken: [Output Only] This token allows you to get the next
9616	// page of results for list requests. If the number of results is larger
9617	// than maxResults, use the nextPageToken as a value for the query
9618	// parameter pageToken in the next list request. Subsequent list
9619	// requests will have their own nextPageToken to continue paging through
9620	// the results.
9621	NextPageToken string `json:"nextPageToken,omitempty"`
9622
9623	// SelfLink: [Output Only] Server-defined URL for this resource.
9624	SelfLink string `json:"selfLink,omitempty"`
9625
9626	// Warning: [Output Only] Informational warning message.
9627	Warning *ImageListWarning `json:"warning,omitempty"`
9628
9629	// ServerResponse contains the HTTP response code and headers from the
9630	// server.
9631	googleapi.ServerResponse `json:"-"`
9632
9633	// ForceSendFields is a list of field names (e.g. "Id") to
9634	// unconditionally include in API requests. By default, fields with
9635	// empty values are omitted from API requests. However, any non-pointer,
9636	// non-interface field appearing in ForceSendFields will be sent to the
9637	// server regardless of whether the field is empty or not. This may be
9638	// used to include empty fields in Patch requests.
9639	ForceSendFields []string `json:"-"`
9640
9641	// NullFields is a list of field names (e.g. "Id") to include in API
9642	// requests with the JSON null value. By default, fields with empty
9643	// values are omitted from API requests. However, any field with an
9644	// empty value appearing in NullFields will be sent to the server as
9645	// null. It is an error if a field in this list has a non-empty value.
9646	// This may be used to include null fields in Patch requests.
9647	NullFields []string `json:"-"`
9648}
9649
9650func (s *ImageList) MarshalJSON() ([]byte, error) {
9651	type NoMethod ImageList
9652	raw := NoMethod(*s)
9653	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9654}
9655
9656// ImageListWarning: [Output Only] Informational warning message.
9657type ImageListWarning struct {
9658	// Code: [Output Only] A warning code, if applicable. For example,
9659	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9660	// the response.
9661	//
9662	// Possible values:
9663	//   "CLEANUP_FAILED"
9664	//   "DEPRECATED_RESOURCE_USED"
9665	//   "DEPRECATED_TYPE_USED"
9666	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9667	//   "EXPERIMENTAL_TYPE_USED"
9668	//   "EXTERNAL_API_WARNING"
9669	//   "FIELD_VALUE_OVERRIDEN"
9670	//   "INJECTED_KERNELS_DEPRECATED"
9671	//   "MISSING_TYPE_DEPENDENCY"
9672	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9673	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9674	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9675	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9676	//   "NEXT_HOP_NOT_RUNNING"
9677	//   "NOT_CRITICAL_ERROR"
9678	//   "NO_RESULTS_ON_PAGE"
9679	//   "REQUIRED_TOS_AGREEMENT"
9680	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9681	//   "RESOURCE_NOT_DELETED"
9682	//   "SCHEMA_VALIDATION_IGNORED"
9683	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9684	//   "UNDECLARED_PROPERTIES"
9685	//   "UNREACHABLE"
9686	Code string `json:"code,omitempty"`
9687
9688	// Data: [Output Only] Metadata about this warning in key: value format.
9689	// For example:
9690	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9691	Data []*ImageListWarningData `json:"data,omitempty"`
9692
9693	// Message: [Output Only] A human-readable description of the warning
9694	// code.
9695	Message string `json:"message,omitempty"`
9696
9697	// ForceSendFields is a list of field names (e.g. "Code") to
9698	// unconditionally include in API requests. By default, fields with
9699	// empty values are omitted from API requests. However, any non-pointer,
9700	// non-interface field appearing in ForceSendFields will be sent to the
9701	// server regardless of whether the field is empty or not. This may be
9702	// used to include empty fields in Patch requests.
9703	ForceSendFields []string `json:"-"`
9704
9705	// NullFields is a list of field names (e.g. "Code") to include in API
9706	// requests with the JSON null value. By default, fields with empty
9707	// values are omitted from API requests. However, any field with an
9708	// empty value appearing in NullFields will be sent to the server as
9709	// null. It is an error if a field in this list has a non-empty value.
9710	// This may be used to include null fields in Patch requests.
9711	NullFields []string `json:"-"`
9712}
9713
9714func (s *ImageListWarning) MarshalJSON() ([]byte, error) {
9715	type NoMethod ImageListWarning
9716	raw := NoMethod(*s)
9717	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9718}
9719
9720type ImageListWarningData struct {
9721	// Key: [Output Only] A key that provides more detail on the warning
9722	// being returned. For example, for warnings where there are no results
9723	// in a list request for a particular zone, this key might be scope and
9724	// the key value might be the zone name. Other examples might be a key
9725	// indicating a deprecated resource and a suggested replacement, or a
9726	// warning about invalid network settings (for example, if an instance
9727	// attempts to perform IP forwarding but is not enabled for IP
9728	// forwarding).
9729	Key string `json:"key,omitempty"`
9730
9731	// Value: [Output Only] A warning data value corresponding to the key.
9732	Value string `json:"value,omitempty"`
9733
9734	// ForceSendFields is a list of field names (e.g. "Key") to
9735	// unconditionally include in API requests. By default, fields with
9736	// empty values are omitted from API requests. However, any non-pointer,
9737	// non-interface field appearing in ForceSendFields will be sent to the
9738	// server regardless of whether the field is empty or not. This may be
9739	// used to include empty fields in Patch requests.
9740	ForceSendFields []string `json:"-"`
9741
9742	// NullFields is a list of field names (e.g. "Key") to include in API
9743	// requests with the JSON null value. By default, fields with empty
9744	// values are omitted from API requests. However, any field with an
9745	// empty value appearing in NullFields will be sent to the server as
9746	// null. It is an error if a field in this list has a non-empty value.
9747	// This may be used to include null fields in Patch requests.
9748	NullFields []string `json:"-"`
9749}
9750
9751func (s *ImageListWarningData) MarshalJSON() ([]byte, error) {
9752	type NoMethod ImageListWarningData
9753	raw := NoMethod(*s)
9754	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9755}
9756
9757// Instance: An Instance resource. (== resource_for beta.instances ==)
9758// (== resource_for v1.instances ==)
9759type Instance struct {
9760	// CanIpForward: Allows this instance to send and receive packets with
9761	// non-matching destination or source IPs. This is required if you plan
9762	// to use this instance to forward routes. For more information, see
9763	// Enabling IP Forwarding.
9764	CanIpForward bool `json:"canIpForward,omitempty"`
9765
9766	// CpuPlatform: [Output Only] The CPU platform used by this instance.
9767	CpuPlatform string `json:"cpuPlatform,omitempty"`
9768
9769	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
9770	// format.
9771	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9772
9773	// DeletionProtection: Whether the resource should be protected against
9774	// deletion.
9775	DeletionProtection bool `json:"deletionProtection,omitempty"`
9776
9777	// Description: An optional description of this resource. Provide this
9778	// property when you create the resource.
9779	Description string `json:"description,omitempty"`
9780
9781	// Disks: Array of disks associated with this instance. Persistent disks
9782	// must be created before you can assign them.
9783	Disks []*AttachedDisk `json:"disks,omitempty"`
9784
9785	// GuestAccelerators: A list of the type and count of accelerator cards
9786	// attached to the instance.
9787	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
9788
9789	Hostname string `json:"hostname,omitempty"`
9790
9791	// Id: [Output Only] The unique identifier for the resource. This
9792	// identifier is defined by the server.
9793	Id uint64 `json:"id,omitempty,string"`
9794
9795	// Kind: [Output Only] Type of the resource. Always compute#instance for
9796	// instances.
9797	Kind string `json:"kind,omitempty"`
9798
9799	// LabelFingerprint: A fingerprint for this request, which is
9800	// essentially a hash of the label's contents and used for optimistic
9801	// locking. The fingerprint is initially generated by Compute Engine and
9802	// changes after every request to modify or update labels. You must
9803	// always provide an up-to-date fingerprint hash in order to update or
9804	// change labels.
9805	//
9806	// To see the latest fingerprint, make get() request to the instance.
9807	LabelFingerprint string `json:"labelFingerprint,omitempty"`
9808
9809	// Labels: Labels to apply to this instance. These can be later modified
9810	// by the setLabels method.
9811	Labels map[string]string `json:"labels,omitempty"`
9812
9813	// MachineType: Full or partial URL of the machine type resource to use
9814	// for this instance, in the format:
9815	// zones/zone/machineTypes/machine-type. This is provided by the client
9816	// when the instance is created. For example, the following is a valid
9817	// partial url to a predefined machine
9818	// type:
9819	// zones/us-central1-f/machineTypes/n1-standard-1
9820	//
9821	//
9822	// To create a custom machine type, provide a URL to a machine type in
9823	// the following format, where CPUS is 1 or an even number up to 32 (2,
9824	// 4, 6, ... 24, etc), and MEMORY is the total memory for this instance.
9825	// Memory must be a multiple of 256 MB and must be supplied in MB (e.g.
9826	// 5 GB of memory is 5120
9827	// MB):
9828	// zones/zone/machineTypes/custom-CPUS-MEMORY
9829	//
9830	//
9831	// For example: zones/us-central1-f/machineTypes/custom-4-5120
9832	//
9833	// For a full list of restrictions, read the Specifications for custom
9834	// machine types.
9835	MachineType string `json:"machineType,omitempty"`
9836
9837	// Metadata: The metadata key/value pairs assigned to this instance.
9838	// This includes custom metadata and predefined keys.
9839	Metadata *Metadata `json:"metadata,omitempty"`
9840
9841	// MinCpuPlatform: Specifies a minimum CPU platform for the VM instance.
9842	// Applicable values are the friendly names of CPU platforms, such as
9843	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
9844	// Bridge".
9845	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
9846
9847	// Name: The name of the resource, provided by the client when initially
9848	// creating the resource. The resource name must be 1-63 characters
9849	// long, and comply with RFC1035. Specifically, the name must be 1-63
9850	// characters long and match the regular expression
9851	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
9852	// a lowercase letter, and all following characters must be a dash,
9853	// lowercase letter, or digit, except the last character, which cannot
9854	// be a dash.
9855	Name string `json:"name,omitempty"`
9856
9857	// NetworkInterfaces: An array of network configurations for this
9858	// instance. These specify how interfaces are configured to interact
9859	// with other network services, such as connecting to the internet.
9860	// Multiple interfaces are supported per instance.
9861	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
9862
9863	// Scheduling: Sets the scheduling options for this instance.
9864	Scheduling *Scheduling `json:"scheduling,omitempty"`
9865
9866	// SelfLink: [Output Only] Server-defined URL for this resource.
9867	SelfLink string `json:"selfLink,omitempty"`
9868
9869	// ServiceAccounts: A list of service accounts, with their specified
9870	// scopes, authorized for this instance. Only one service account per VM
9871	// instance is supported.
9872	//
9873	// Service accounts generate access tokens that can be accessed through
9874	// the metadata server and used to authenticate applications on the
9875	// instance. See Service Accounts for more information.
9876	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
9877
9878	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
9879
9880	ShieldedInstanceIntegrityPolicy *ShieldedInstanceIntegrityPolicy `json:"shieldedInstanceIntegrityPolicy,omitempty"`
9881
9882	// StartRestricted: [Output Only] Whether a VM has been restricted for
9883	// start because Compute Engine has detected suspicious activity.
9884	StartRestricted bool `json:"startRestricted,omitempty"`
9885
9886	// Status: [Output Only] The status of the instance. One of the
9887	// following values: PROVISIONING, STAGING, RUNNING, STOPPING, STOPPED,
9888	// SUSPENDING, SUSPENDED, and TERMINATED.
9889	//
9890	// Possible values:
9891	//   "PROVISIONING"
9892	//   "REPAIRING"
9893	//   "RUNNING"
9894	//   "STAGING"
9895	//   "STOPPED"
9896	//   "STOPPING"
9897	//   "SUSPENDED"
9898	//   "SUSPENDING"
9899	//   "TERMINATED"
9900	Status string `json:"status,omitempty"`
9901
9902	// StatusMessage: [Output Only] An optional, human-readable explanation
9903	// of the status.
9904	StatusMessage string `json:"statusMessage,omitempty"`
9905
9906	// Tags: Tags to apply to this instance. Tags are used to identify valid
9907	// sources or targets for network firewalls and are specified by the
9908	// client during instance creation. The tags can be later modified by
9909	// the setTags method. Each tag within the list must comply with
9910	// RFC1035. Multiple tags can be specified via the 'tags.items' field.
9911	Tags *Tags `json:"tags,omitempty"`
9912
9913	// Zone: [Output Only] URL of the zone where the instance resides. You
9914	// must specify this field as part of the HTTP request URL. It is not
9915	// settable as a field in the request body.
9916	Zone string `json:"zone,omitempty"`
9917
9918	// ServerResponse contains the HTTP response code and headers from the
9919	// server.
9920	googleapi.ServerResponse `json:"-"`
9921
9922	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
9923	// unconditionally include in API requests. By default, fields with
9924	// empty values are omitted from API requests. However, any non-pointer,
9925	// non-interface field appearing in ForceSendFields will be sent to the
9926	// server regardless of whether the field is empty or not. This may be
9927	// used to include empty fields in Patch requests.
9928	ForceSendFields []string `json:"-"`
9929
9930	// NullFields is a list of field names (e.g. "CanIpForward") to include
9931	// in API requests with the JSON null value. By default, fields with
9932	// empty values are omitted from API requests. However, any field with
9933	// an empty value appearing in NullFields will be sent to the server as
9934	// null. It is an error if a field in this list has a non-empty value.
9935	// This may be used to include null fields in Patch requests.
9936	NullFields []string `json:"-"`
9937}
9938
9939func (s *Instance) MarshalJSON() ([]byte, error) {
9940	type NoMethod Instance
9941	raw := NoMethod(*s)
9942	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9943}
9944
9945type InstanceAggregatedList struct {
9946	// Id: [Output Only] Unique identifier for the resource; defined by the
9947	// server.
9948	Id string `json:"id,omitempty"`
9949
9950	// Items: A list of InstancesScopedList resources.
9951	Items map[string]InstancesScopedList `json:"items,omitempty"`
9952
9953	// Kind: [Output Only] Type of resource. Always
9954	// compute#instanceAggregatedList for aggregated lists of Instance
9955	// resources.
9956	Kind string `json:"kind,omitempty"`
9957
9958	// NextPageToken: [Output Only] This token allows you to get the next
9959	// page of results for list requests. If the number of results is larger
9960	// than maxResults, use the nextPageToken as a value for the query
9961	// parameter pageToken in the next list request. Subsequent list
9962	// requests will have their own nextPageToken to continue paging through
9963	// the results.
9964	NextPageToken string `json:"nextPageToken,omitempty"`
9965
9966	// SelfLink: [Output Only] Server-defined URL for this resource.
9967	SelfLink string `json:"selfLink,omitempty"`
9968
9969	// Warning: [Output Only] Informational warning message.
9970	Warning *InstanceAggregatedListWarning `json:"warning,omitempty"`
9971
9972	// ServerResponse contains the HTTP response code and headers from the
9973	// server.
9974	googleapi.ServerResponse `json:"-"`
9975
9976	// ForceSendFields is a list of field names (e.g. "Id") to
9977	// unconditionally include in API requests. By default, fields with
9978	// empty values are omitted from API requests. However, any non-pointer,
9979	// non-interface field appearing in ForceSendFields will be sent to the
9980	// server regardless of whether the field is empty or not. This may be
9981	// used to include empty fields in Patch requests.
9982	ForceSendFields []string `json:"-"`
9983
9984	// NullFields is a list of field names (e.g. "Id") to include in API
9985	// requests with the JSON null value. By default, fields with empty
9986	// values are omitted from API requests. However, any field with an
9987	// empty value appearing in NullFields will be sent to the server as
9988	// null. It is an error if a field in this list has a non-empty value.
9989	// This may be used to include null fields in Patch requests.
9990	NullFields []string `json:"-"`
9991}
9992
9993func (s *InstanceAggregatedList) MarshalJSON() ([]byte, error) {
9994	type NoMethod InstanceAggregatedList
9995	raw := NoMethod(*s)
9996	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9997}
9998
9999// InstanceAggregatedListWarning: [Output Only] Informational warning
10000// message.
10001type InstanceAggregatedListWarning struct {
10002	// Code: [Output Only] A warning code, if applicable. For example,
10003	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10004	// the response.
10005	//
10006	// Possible values:
10007	//   "CLEANUP_FAILED"
10008	//   "DEPRECATED_RESOURCE_USED"
10009	//   "DEPRECATED_TYPE_USED"
10010	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10011	//   "EXPERIMENTAL_TYPE_USED"
10012	//   "EXTERNAL_API_WARNING"
10013	//   "FIELD_VALUE_OVERRIDEN"
10014	//   "INJECTED_KERNELS_DEPRECATED"
10015	//   "MISSING_TYPE_DEPENDENCY"
10016	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10017	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10018	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10019	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10020	//   "NEXT_HOP_NOT_RUNNING"
10021	//   "NOT_CRITICAL_ERROR"
10022	//   "NO_RESULTS_ON_PAGE"
10023	//   "REQUIRED_TOS_AGREEMENT"
10024	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10025	//   "RESOURCE_NOT_DELETED"
10026	//   "SCHEMA_VALIDATION_IGNORED"
10027	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10028	//   "UNDECLARED_PROPERTIES"
10029	//   "UNREACHABLE"
10030	Code string `json:"code,omitempty"`
10031
10032	// Data: [Output Only] Metadata about this warning in key: value format.
10033	// For example:
10034	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10035	Data []*InstanceAggregatedListWarningData `json:"data,omitempty"`
10036
10037	// Message: [Output Only] A human-readable description of the warning
10038	// code.
10039	Message string `json:"message,omitempty"`
10040
10041	// ForceSendFields is a list of field names (e.g. "Code") to
10042	// unconditionally include in API requests. By default, fields with
10043	// empty values are omitted from API requests. However, any non-pointer,
10044	// non-interface field appearing in ForceSendFields will be sent to the
10045	// server regardless of whether the field is empty or not. This may be
10046	// used to include empty fields in Patch requests.
10047	ForceSendFields []string `json:"-"`
10048
10049	// NullFields is a list of field names (e.g. "Code") to include in API
10050	// requests with the JSON null value. By default, fields with empty
10051	// values are omitted from API requests. However, any field with an
10052	// empty value appearing in NullFields will be sent to the server as
10053	// null. It is an error if a field in this list has a non-empty value.
10054	// This may be used to include null fields in Patch requests.
10055	NullFields []string `json:"-"`
10056}
10057
10058func (s *InstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
10059	type NoMethod InstanceAggregatedListWarning
10060	raw := NoMethod(*s)
10061	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10062}
10063
10064type InstanceAggregatedListWarningData struct {
10065	// Key: [Output Only] A key that provides more detail on the warning
10066	// being returned. For example, for warnings where there are no results
10067	// in a list request for a particular zone, this key might be scope and
10068	// the key value might be the zone name. Other examples might be a key
10069	// indicating a deprecated resource and a suggested replacement, or a
10070	// warning about invalid network settings (for example, if an instance
10071	// attempts to perform IP forwarding but is not enabled for IP
10072	// forwarding).
10073	Key string `json:"key,omitempty"`
10074
10075	// Value: [Output Only] A warning data value corresponding to the key.
10076	Value string `json:"value,omitempty"`
10077
10078	// ForceSendFields is a list of field names (e.g. "Key") to
10079	// unconditionally include in API requests. By default, fields with
10080	// empty values are omitted from API requests. However, any non-pointer,
10081	// non-interface field appearing in ForceSendFields will be sent to the
10082	// server regardless of whether the field is empty or not. This may be
10083	// used to include empty fields in Patch requests.
10084	ForceSendFields []string `json:"-"`
10085
10086	// NullFields is a list of field names (e.g. "Key") to include in API
10087	// requests with the JSON null value. By default, fields with empty
10088	// values are omitted from API requests. However, any field with an
10089	// empty value appearing in NullFields will be sent to the server as
10090	// null. It is an error if a field in this list has a non-empty value.
10091	// This may be used to include null fields in Patch requests.
10092	NullFields []string `json:"-"`
10093}
10094
10095func (s *InstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
10096	type NoMethod InstanceAggregatedListWarningData
10097	raw := NoMethod(*s)
10098	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10099}
10100
10101// InstanceGroup: InstanceGroups (== resource_for beta.instanceGroups
10102// ==) (== resource_for v1.instanceGroups ==) (== resource_for
10103// beta.regionInstanceGroups ==) (== resource_for
10104// v1.regionInstanceGroups ==)
10105type InstanceGroup struct {
10106	// CreationTimestamp: [Output Only] The creation timestamp for this
10107	// instance group in RFC3339 text format.
10108	CreationTimestamp string `json:"creationTimestamp,omitempty"`
10109
10110	// Description: An optional description of this resource. Provide this
10111	// property when you create the resource.
10112	Description string `json:"description,omitempty"`
10113
10114	// Fingerprint: [Output Only] The fingerprint of the named ports. The
10115	// system uses this fingerprint to detect conflicts when multiple users
10116	// change the named ports concurrently.
10117	Fingerprint string `json:"fingerprint,omitempty"`
10118
10119	// Id: [Output Only] A unique identifier for this instance group,
10120	// generated by the server.
10121	Id uint64 `json:"id,omitempty,string"`
10122
10123	// Kind: [Output Only] The resource type, which is always
10124	// compute#instanceGroup for instance groups.
10125	Kind string `json:"kind,omitempty"`
10126
10127	// Name: The name of the instance group. The name must be 1-63
10128	// characters long, and comply with RFC1035.
10129	Name string `json:"name,omitempty"`
10130
10131	// NamedPorts: Assigns a name to a port number. For example: {name:
10132	// "http", port: 80}
10133	//
10134	// This allows the system to reference ports by the assigned name
10135	// instead of a port number. Named ports can also contain multiple
10136	// ports. For example: [{name: "http", port: 80},{name: "http", port:
10137	// 8080}]
10138	//
10139	// Named ports apply to all instances in this instance group.
10140	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
10141
10142	// Network: The URL of the network to which all instances in the
10143	// instance group belong.
10144	Network string `json:"network,omitempty"`
10145
10146	// Region: [Output Only] The URL of the region where the instance group
10147	// is located (for regional resources).
10148	Region string `json:"region,omitempty"`
10149
10150	// SelfLink: [Output Only] The URL for this instance group. The server
10151	// generates this URL.
10152	SelfLink string `json:"selfLink,omitempty"`
10153
10154	// Size: [Output Only] The total number of instances in the instance
10155	// group.
10156	Size int64 `json:"size,omitempty"`
10157
10158	// Subnetwork: [Output Only] The URL of the subnetwork to which all
10159	// instances in the instance group belong.
10160	Subnetwork string `json:"subnetwork,omitempty"`
10161
10162	// Zone: [Output Only] The URL of the zone where the instance group is
10163	// located (for zonal resources).
10164	Zone string `json:"zone,omitempty"`
10165
10166	// ServerResponse contains the HTTP response code and headers from the
10167	// server.
10168	googleapi.ServerResponse `json:"-"`
10169
10170	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
10171	// to unconditionally include in API requests. By default, fields with
10172	// empty values are omitted from API requests. However, any non-pointer,
10173	// non-interface field appearing in ForceSendFields will be sent to the
10174	// server regardless of whether the field is empty or not. This may be
10175	// used to include empty fields in Patch requests.
10176	ForceSendFields []string `json:"-"`
10177
10178	// NullFields is a list of field names (e.g. "CreationTimestamp") to
10179	// include in API requests with the JSON null value. By default, fields
10180	// with empty values are omitted from API requests. However, any field
10181	// with an empty value appearing in NullFields will be sent to the
10182	// server as null. It is an error if a field in this list has a
10183	// non-empty value. This may be used to include null fields in Patch
10184	// requests.
10185	NullFields []string `json:"-"`
10186}
10187
10188func (s *InstanceGroup) MarshalJSON() ([]byte, error) {
10189	type NoMethod InstanceGroup
10190	raw := NoMethod(*s)
10191	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10192}
10193
10194type InstanceGroupAggregatedList struct {
10195	// Id: [Output Only] Unique identifier for the resource; defined by the
10196	// server.
10197	Id string `json:"id,omitempty"`
10198
10199	// Items: A list of InstanceGroupsScopedList resources.
10200	Items map[string]InstanceGroupsScopedList `json:"items,omitempty"`
10201
10202	// Kind: [Output Only] The resource type, which is always
10203	// compute#instanceGroupAggregatedList for aggregated lists of instance
10204	// groups.
10205	Kind string `json:"kind,omitempty"`
10206
10207	// NextPageToken: [Output Only] This token allows you to get the next
10208	// page of results for list requests. If the number of results is larger
10209	// than maxResults, use the nextPageToken as a value for the query
10210	// parameter pageToken in the next list request. Subsequent list
10211	// requests will have their own nextPageToken to continue paging through
10212	// the results.
10213	NextPageToken string `json:"nextPageToken,omitempty"`
10214
10215	// SelfLink: [Output Only] Server-defined URL for this resource.
10216	SelfLink string `json:"selfLink,omitempty"`
10217
10218	// Warning: [Output Only] Informational warning message.
10219	Warning *InstanceGroupAggregatedListWarning `json:"warning,omitempty"`
10220
10221	// ServerResponse contains the HTTP response code and headers from the
10222	// server.
10223	googleapi.ServerResponse `json:"-"`
10224
10225	// ForceSendFields is a list of field names (e.g. "Id") to
10226	// unconditionally include in API requests. By default, fields with
10227	// empty values are omitted from API requests. However, any non-pointer,
10228	// non-interface field appearing in ForceSendFields will be sent to the
10229	// server regardless of whether the field is empty or not. This may be
10230	// used to include empty fields in Patch requests.
10231	ForceSendFields []string `json:"-"`
10232
10233	// NullFields is a list of field names (e.g. "Id") to include in API
10234	// requests with the JSON null value. By default, fields with empty
10235	// values are omitted from API requests. However, any field with an
10236	// empty value appearing in NullFields will be sent to the server as
10237	// null. It is an error if a field in this list has a non-empty value.
10238	// This may be used to include null fields in Patch requests.
10239	NullFields []string `json:"-"`
10240}
10241
10242func (s *InstanceGroupAggregatedList) MarshalJSON() ([]byte, error) {
10243	type NoMethod InstanceGroupAggregatedList
10244	raw := NoMethod(*s)
10245	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10246}
10247
10248// InstanceGroupAggregatedListWarning: [Output Only] Informational
10249// warning message.
10250type InstanceGroupAggregatedListWarning struct {
10251	// Code: [Output Only] A warning code, if applicable. For example,
10252	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10253	// the response.
10254	//
10255	// Possible values:
10256	//   "CLEANUP_FAILED"
10257	//   "DEPRECATED_RESOURCE_USED"
10258	//   "DEPRECATED_TYPE_USED"
10259	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10260	//   "EXPERIMENTAL_TYPE_USED"
10261	//   "EXTERNAL_API_WARNING"
10262	//   "FIELD_VALUE_OVERRIDEN"
10263	//   "INJECTED_KERNELS_DEPRECATED"
10264	//   "MISSING_TYPE_DEPENDENCY"
10265	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10266	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10267	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10268	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10269	//   "NEXT_HOP_NOT_RUNNING"
10270	//   "NOT_CRITICAL_ERROR"
10271	//   "NO_RESULTS_ON_PAGE"
10272	//   "REQUIRED_TOS_AGREEMENT"
10273	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10274	//   "RESOURCE_NOT_DELETED"
10275	//   "SCHEMA_VALIDATION_IGNORED"
10276	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10277	//   "UNDECLARED_PROPERTIES"
10278	//   "UNREACHABLE"
10279	Code string `json:"code,omitempty"`
10280
10281	// Data: [Output Only] Metadata about this warning in key: value format.
10282	// For example:
10283	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10284	Data []*InstanceGroupAggregatedListWarningData `json:"data,omitempty"`
10285
10286	// Message: [Output Only] A human-readable description of the warning
10287	// code.
10288	Message string `json:"message,omitempty"`
10289
10290	// ForceSendFields is a list of field names (e.g. "Code") to
10291	// unconditionally include in API requests. By default, fields with
10292	// empty values are omitted from API requests. However, any non-pointer,
10293	// non-interface field appearing in ForceSendFields will be sent to the
10294	// server regardless of whether the field is empty or not. This may be
10295	// used to include empty fields in Patch requests.
10296	ForceSendFields []string `json:"-"`
10297
10298	// NullFields is a list of field names (e.g. "Code") to include in API
10299	// requests with the JSON null value. By default, fields with empty
10300	// values are omitted from API requests. However, any field with an
10301	// empty value appearing in NullFields will be sent to the server as
10302	// null. It is an error if a field in this list has a non-empty value.
10303	// This may be used to include null fields in Patch requests.
10304	NullFields []string `json:"-"`
10305}
10306
10307func (s *InstanceGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
10308	type NoMethod InstanceGroupAggregatedListWarning
10309	raw := NoMethod(*s)
10310	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10311}
10312
10313type InstanceGroupAggregatedListWarningData struct {
10314	// Key: [Output Only] A key that provides more detail on the warning
10315	// being returned. For example, for warnings where there are no results
10316	// in a list request for a particular zone, this key might be scope and
10317	// the key value might be the zone name. Other examples might be a key
10318	// indicating a deprecated resource and a suggested replacement, or a
10319	// warning about invalid network settings (for example, if an instance
10320	// attempts to perform IP forwarding but is not enabled for IP
10321	// forwarding).
10322	Key string `json:"key,omitempty"`
10323
10324	// Value: [Output Only] A warning data value corresponding to the key.
10325	Value string `json:"value,omitempty"`
10326
10327	// ForceSendFields is a list of field names (e.g. "Key") to
10328	// unconditionally include in API requests. By default, fields with
10329	// empty values are omitted from API requests. However, any non-pointer,
10330	// non-interface field appearing in ForceSendFields will be sent to the
10331	// server regardless of whether the field is empty or not. This may be
10332	// used to include empty fields in Patch requests.
10333	ForceSendFields []string `json:"-"`
10334
10335	// NullFields is a list of field names (e.g. "Key") to include in API
10336	// requests with the JSON null value. By default, fields with empty
10337	// values are omitted from API requests. However, any field with an
10338	// empty value appearing in NullFields will be sent to the server as
10339	// null. It is an error if a field in this list has a non-empty value.
10340	// This may be used to include null fields in Patch requests.
10341	NullFields []string `json:"-"`
10342}
10343
10344func (s *InstanceGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
10345	type NoMethod InstanceGroupAggregatedListWarningData
10346	raw := NoMethod(*s)
10347	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10348}
10349
10350// InstanceGroupList: A list of InstanceGroup resources.
10351type InstanceGroupList struct {
10352	// Id: [Output Only] Unique identifier for the resource; defined by the
10353	// server.
10354	Id string `json:"id,omitempty"`
10355
10356	// Items: A list of InstanceGroup resources.
10357	Items []*InstanceGroup `json:"items,omitempty"`
10358
10359	// Kind: [Output Only] The resource type, which is always
10360	// compute#instanceGroupList for instance group lists.
10361	Kind string `json:"kind,omitempty"`
10362
10363	// NextPageToken: [Output Only] This token allows you to get the next
10364	// page of results for list requests. If the number of results is larger
10365	// than maxResults, use the nextPageToken as a value for the query
10366	// parameter pageToken in the next list request. Subsequent list
10367	// requests will have their own nextPageToken to continue paging through
10368	// the results.
10369	NextPageToken string `json:"nextPageToken,omitempty"`
10370
10371	// SelfLink: [Output Only] Server-defined URL for this resource.
10372	SelfLink string `json:"selfLink,omitempty"`
10373
10374	// Warning: [Output Only] Informational warning message.
10375	Warning *InstanceGroupListWarning `json:"warning,omitempty"`
10376
10377	// ServerResponse contains the HTTP response code and headers from the
10378	// server.
10379	googleapi.ServerResponse `json:"-"`
10380
10381	// ForceSendFields is a list of field names (e.g. "Id") to
10382	// unconditionally include in API requests. By default, fields with
10383	// empty values are omitted from API requests. However, any non-pointer,
10384	// non-interface field appearing in ForceSendFields will be sent to the
10385	// server regardless of whether the field is empty or not. This may be
10386	// used to include empty fields in Patch requests.
10387	ForceSendFields []string `json:"-"`
10388
10389	// NullFields is a list of field names (e.g. "Id") to include in API
10390	// requests with the JSON null value. By default, fields with empty
10391	// values are omitted from API requests. However, any field with an
10392	// empty value appearing in NullFields will be sent to the server as
10393	// null. It is an error if a field in this list has a non-empty value.
10394	// This may be used to include null fields in Patch requests.
10395	NullFields []string `json:"-"`
10396}
10397
10398func (s *InstanceGroupList) MarshalJSON() ([]byte, error) {
10399	type NoMethod InstanceGroupList
10400	raw := NoMethod(*s)
10401	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10402}
10403
10404// InstanceGroupListWarning: [Output Only] Informational warning
10405// message.
10406type InstanceGroupListWarning struct {
10407	// Code: [Output Only] A warning code, if applicable. For example,
10408	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10409	// the response.
10410	//
10411	// Possible values:
10412	//   "CLEANUP_FAILED"
10413	//   "DEPRECATED_RESOURCE_USED"
10414	//   "DEPRECATED_TYPE_USED"
10415	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10416	//   "EXPERIMENTAL_TYPE_USED"
10417	//   "EXTERNAL_API_WARNING"
10418	//   "FIELD_VALUE_OVERRIDEN"
10419	//   "INJECTED_KERNELS_DEPRECATED"
10420	//   "MISSING_TYPE_DEPENDENCY"
10421	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10422	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10423	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10424	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10425	//   "NEXT_HOP_NOT_RUNNING"
10426	//   "NOT_CRITICAL_ERROR"
10427	//   "NO_RESULTS_ON_PAGE"
10428	//   "REQUIRED_TOS_AGREEMENT"
10429	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10430	//   "RESOURCE_NOT_DELETED"
10431	//   "SCHEMA_VALIDATION_IGNORED"
10432	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10433	//   "UNDECLARED_PROPERTIES"
10434	//   "UNREACHABLE"
10435	Code string `json:"code,omitempty"`
10436
10437	// Data: [Output Only] Metadata about this warning in key: value format.
10438	// For example:
10439	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10440	Data []*InstanceGroupListWarningData `json:"data,omitempty"`
10441
10442	// Message: [Output Only] A human-readable description of the warning
10443	// code.
10444	Message string `json:"message,omitempty"`
10445
10446	// ForceSendFields is a list of field names (e.g. "Code") to
10447	// unconditionally include in API requests. By default, fields with
10448	// empty values are omitted from API requests. However, any non-pointer,
10449	// non-interface field appearing in ForceSendFields will be sent to the
10450	// server regardless of whether the field is empty or not. This may be
10451	// used to include empty fields in Patch requests.
10452	ForceSendFields []string `json:"-"`
10453
10454	// NullFields is a list of field names (e.g. "Code") to include in API
10455	// requests with the JSON null value. By default, fields with empty
10456	// values are omitted from API requests. However, any field with an
10457	// empty value appearing in NullFields will be sent to the server as
10458	// null. It is an error if a field in this list has a non-empty value.
10459	// This may be used to include null fields in Patch requests.
10460	NullFields []string `json:"-"`
10461}
10462
10463func (s *InstanceGroupListWarning) MarshalJSON() ([]byte, error) {
10464	type NoMethod InstanceGroupListWarning
10465	raw := NoMethod(*s)
10466	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10467}
10468
10469type InstanceGroupListWarningData struct {
10470	// Key: [Output Only] A key that provides more detail on the warning
10471	// being returned. For example, for warnings where there are no results
10472	// in a list request for a particular zone, this key might be scope and
10473	// the key value might be the zone name. Other examples might be a key
10474	// indicating a deprecated resource and a suggested replacement, or a
10475	// warning about invalid network settings (for example, if an instance
10476	// attempts to perform IP forwarding but is not enabled for IP
10477	// forwarding).
10478	Key string `json:"key,omitempty"`
10479
10480	// Value: [Output Only] A warning data value corresponding to the key.
10481	Value string `json:"value,omitempty"`
10482
10483	// ForceSendFields is a list of field names (e.g. "Key") to
10484	// unconditionally include in API requests. By default, fields with
10485	// empty values are omitted from API requests. However, any non-pointer,
10486	// non-interface field appearing in ForceSendFields will be sent to the
10487	// server regardless of whether the field is empty or not. This may be
10488	// used to include empty fields in Patch requests.
10489	ForceSendFields []string `json:"-"`
10490
10491	// NullFields is a list of field names (e.g. "Key") to include in API
10492	// requests with the JSON null value. By default, fields with empty
10493	// values are omitted from API requests. However, any field with an
10494	// empty value appearing in NullFields will be sent to the server as
10495	// null. It is an error if a field in this list has a non-empty value.
10496	// This may be used to include null fields in Patch requests.
10497	NullFields []string `json:"-"`
10498}
10499
10500func (s *InstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
10501	type NoMethod InstanceGroupListWarningData
10502	raw := NoMethod(*s)
10503	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10504}
10505
10506// InstanceGroupManager: An Instance Group Manager resource. (==
10507// resource_for beta.instanceGroupManagers ==) (== resource_for
10508// v1.instanceGroupManagers ==) (== resource_for
10509// beta.regionInstanceGroupManagers ==) (== resource_for
10510// v1.regionInstanceGroupManagers ==)
10511type InstanceGroupManager struct {
10512	// AutoHealingPolicies: The autohealing policy for this managed instance
10513	// group. You can specify only one value.
10514	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
10515
10516	// BaseInstanceName: The base instance name to use for instances in this
10517	// group. The value must be 1-58 characters long. Instances are named by
10518	// appending a hyphen and a random four-character string to the base
10519	// instance name. The base instance name must comply with RFC1035.
10520	BaseInstanceName string `json:"baseInstanceName,omitempty"`
10521
10522	// CreationTimestamp: [Output Only] The creation timestamp for this
10523	// managed instance group in RFC3339 text format.
10524	CreationTimestamp string `json:"creationTimestamp,omitempty"`
10525
10526	// CurrentActions: [Output Only] The list of instance actions and the
10527	// number of instances in this managed instance group that are scheduled
10528	// for each of those actions.
10529	CurrentActions *InstanceGroupManagerActionsSummary `json:"currentActions,omitempty"`
10530
10531	// Description: An optional description of this resource. Provide this
10532	// property when you create the resource.
10533	Description string `json:"description,omitempty"`
10534
10535	// DistributionPolicy: Policy specifying intended distribution of
10536	// instances in regional managed instance group.
10537	DistributionPolicy *DistributionPolicy `json:"distributionPolicy,omitempty"`
10538
10539	// Fingerprint: Fingerprint of this resource. This field may be used in
10540	// optimistic locking. It will be ignored when inserting an
10541	// InstanceGroupManager. An up-to-date fingerprint must be provided in
10542	// order to update the InstanceGroupManager, otherwise the request will
10543	// fail with error 412 conditionNotMet.
10544	//
10545	// To see the latest fingerprint, make a get() request to retrieve an
10546	// InstanceGroupManager.
10547	Fingerprint string `json:"fingerprint,omitempty"`
10548
10549	// Id: [Output Only] A unique identifier for this resource type. The
10550	// server generates this identifier.
10551	Id uint64 `json:"id,omitempty,string"`
10552
10553	// InstanceGroup: [Output Only] The URL of the Instance Group resource.
10554	InstanceGroup string `json:"instanceGroup,omitempty"`
10555
10556	// InstanceTemplate: The URL of the instance template that is specified
10557	// for this managed instance group. The group uses this template to
10558	// create all new instances in the managed instance group.
10559	InstanceTemplate string `json:"instanceTemplate,omitempty"`
10560
10561	// Kind: [Output Only] The resource type, which is always
10562	// compute#instanceGroupManager for managed instance groups.
10563	Kind string `json:"kind,omitempty"`
10564
10565	// Name: The name of the managed instance group. The name must be 1-63
10566	// characters long, and comply with RFC1035.
10567	Name string `json:"name,omitempty"`
10568
10569	// NamedPorts: Named ports configured for the Instance Groups
10570	// complementary to this Instance Group Manager.
10571	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
10572
10573	// Region: [Output Only] The URL of the region where the managed
10574	// instance group resides (for regional resources).
10575	Region string `json:"region,omitempty"`
10576
10577	// SelfLink: [Output Only] The URL for this managed instance group. The
10578	// server defines this URL.
10579	SelfLink string `json:"selfLink,omitempty"`
10580
10581	// Status: [Output Only] The status of this managed instance group.
10582	Status *InstanceGroupManagerStatus `json:"status,omitempty"`
10583
10584	// TargetPools: The URLs for all TargetPool resources to which instances
10585	// in the instanceGroup field are added. The target pools automatically
10586	// apply to all of the instances in the managed instance group.
10587	TargetPools []string `json:"targetPools,omitempty"`
10588
10589	// TargetSize: The target number of running instances for this managed
10590	// instance group. Deleting or abandoning instances reduces this number.
10591	// Resizing the group changes this number.
10592	TargetSize int64 `json:"targetSize,omitempty"`
10593
10594	// UpdatePolicy: The update policy for this managed instance group.
10595	UpdatePolicy *InstanceGroupManagerUpdatePolicy `json:"updatePolicy,omitempty"`
10596
10597	// Versions: Specifies the instance templates used by this managed
10598	// instance group to create instances.
10599	//
10600	// Each version is defined by an instanceTemplate and a name. Every
10601	// version can appear at most once per instance group. This field
10602	// overrides the top-level instanceTemplate field. Read more about the
10603	// relationships between these fields. Exactly one version must leave
10604	// the targetSize field unset. That version will be applied to all
10605	// remaining instances. For more information, read about canary updates.
10606	Versions []*InstanceGroupManagerVersion `json:"versions,omitempty"`
10607
10608	// Zone: [Output Only] The URL of the zone where the managed instance
10609	// group is located (for zonal resources).
10610	Zone string `json:"zone,omitempty"`
10611
10612	// ServerResponse contains the HTTP response code and headers from the
10613	// server.
10614	googleapi.ServerResponse `json:"-"`
10615
10616	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
10617	// to unconditionally include in API requests. By default, fields with
10618	// empty values are omitted from API requests. However, any non-pointer,
10619	// non-interface field appearing in ForceSendFields will be sent to the
10620	// server regardless of whether the field is empty or not. This may be
10621	// used to include empty fields in Patch requests.
10622	ForceSendFields []string `json:"-"`
10623
10624	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
10625	// include in API requests with the JSON null value. By default, fields
10626	// with empty values are omitted from API requests. However, any field
10627	// with an empty value appearing in NullFields will be sent to the
10628	// server as null. It is an error if a field in this list has a
10629	// non-empty value. This may be used to include null fields in Patch
10630	// requests.
10631	NullFields []string `json:"-"`
10632}
10633
10634func (s *InstanceGroupManager) MarshalJSON() ([]byte, error) {
10635	type NoMethod InstanceGroupManager
10636	raw := NoMethod(*s)
10637	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10638}
10639
10640type InstanceGroupManagerActionsSummary struct {
10641	// Abandoning: [Output Only] The total number of instances in the
10642	// managed instance group that are scheduled to be abandoned. Abandoning
10643	// an instance removes it from the managed instance group without
10644	// deleting it.
10645	Abandoning int64 `json:"abandoning,omitempty"`
10646
10647	// Creating: [Output Only] The number of instances in the managed
10648	// instance group that are scheduled to be created or are currently
10649	// being created. If the group fails to create any of these instances,
10650	// it tries again until it creates the instance successfully.
10651	//
10652	// If you have disabled creation retries, this field will not be
10653	// populated; instead, the creatingWithoutRetries field will be
10654	// populated.
10655	Creating int64 `json:"creating,omitempty"`
10656
10657	// CreatingWithoutRetries: [Output Only] The number of instances that
10658	// the managed instance group will attempt to create. The group attempts
10659	// to create each instance only once. If the group fails to create any
10660	// of these instances, it decreases the group's targetSize value
10661	// accordingly.
10662	CreatingWithoutRetries int64 `json:"creatingWithoutRetries,omitempty"`
10663
10664	// Deleting: [Output Only] The number of instances in the managed
10665	// instance group that are scheduled to be deleted or are currently
10666	// being deleted.
10667	Deleting int64 `json:"deleting,omitempty"`
10668
10669	// None: [Output Only] The number of instances in the managed instance
10670	// group that are running and have no scheduled actions.
10671	None int64 `json:"none,omitempty"`
10672
10673	// Recreating: [Output Only] The number of instances in the managed
10674	// instance group that are scheduled to be recreated or are currently
10675	// being being recreated. Recreating an instance deletes the existing
10676	// root persistent disk and creates a new disk from the image that is
10677	// defined in the instance template.
10678	Recreating int64 `json:"recreating,omitempty"`
10679
10680	// Refreshing: [Output Only] The number of instances in the managed
10681	// instance group that are being reconfigured with properties that do
10682	// not require a restart or a recreate action. For example, setting or
10683	// removing target pools for the instance.
10684	Refreshing int64 `json:"refreshing,omitempty"`
10685
10686	// Restarting: [Output Only] The number of instances in the managed
10687	// instance group that are scheduled to be restarted or are currently
10688	// being restarted.
10689	Restarting int64 `json:"restarting,omitempty"`
10690
10691	// Verifying: [Output Only] The number of instances in the managed
10692	// instance group that are being verified. See the
10693	// managedInstances[].currentAction property in the listManagedInstances
10694	// method documentation.
10695	Verifying int64 `json:"verifying,omitempty"`
10696
10697	// ForceSendFields is a list of field names (e.g. "Abandoning") to
10698	// unconditionally include in API requests. By default, fields with
10699	// empty values are omitted from API requests. However, any non-pointer,
10700	// non-interface field appearing in ForceSendFields will be sent to the
10701	// server regardless of whether the field is empty or not. This may be
10702	// used to include empty fields in Patch requests.
10703	ForceSendFields []string `json:"-"`
10704
10705	// NullFields is a list of field names (e.g. "Abandoning") to include in
10706	// API requests with the JSON null value. By default, fields with empty
10707	// values are omitted from API requests. However, any field with an
10708	// empty value appearing in NullFields will be sent to the server as
10709	// null. It is an error if a field in this list has a non-empty value.
10710	// This may be used to include null fields in Patch requests.
10711	NullFields []string `json:"-"`
10712}
10713
10714func (s *InstanceGroupManagerActionsSummary) MarshalJSON() ([]byte, error) {
10715	type NoMethod InstanceGroupManagerActionsSummary
10716	raw := NoMethod(*s)
10717	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10718}
10719
10720type InstanceGroupManagerAggregatedList struct {
10721	// Id: [Output Only] Unique identifier for the resource; defined by the
10722	// server.
10723	Id string `json:"id,omitempty"`
10724
10725	// Items: A list of InstanceGroupManagersScopedList resources.
10726	Items map[string]InstanceGroupManagersScopedList `json:"items,omitempty"`
10727
10728	// Kind: [Output Only] The resource type, which is always
10729	// compute#instanceGroupManagerAggregatedList for an aggregated list of
10730	// managed instance groups.
10731	Kind string `json:"kind,omitempty"`
10732
10733	// NextPageToken: [Output Only] This token allows you to get the next
10734	// page of results for list requests. If the number of results is larger
10735	// than maxResults, use the nextPageToken as a value for the query
10736	// parameter pageToken in the next list request. Subsequent list
10737	// requests will have their own nextPageToken to continue paging through
10738	// the results.
10739	NextPageToken string `json:"nextPageToken,omitempty"`
10740
10741	// SelfLink: [Output Only] Server-defined URL for this resource.
10742	SelfLink string `json:"selfLink,omitempty"`
10743
10744	// Warning: [Output Only] Informational warning message.
10745	Warning *InstanceGroupManagerAggregatedListWarning `json:"warning,omitempty"`
10746
10747	// ServerResponse contains the HTTP response code and headers from the
10748	// server.
10749	googleapi.ServerResponse `json:"-"`
10750
10751	// ForceSendFields is a list of field names (e.g. "Id") to
10752	// unconditionally include in API requests. By default, fields with
10753	// empty values are omitted from API requests. However, any non-pointer,
10754	// non-interface field appearing in ForceSendFields will be sent to the
10755	// server regardless of whether the field is empty or not. This may be
10756	// used to include empty fields in Patch requests.
10757	ForceSendFields []string `json:"-"`
10758
10759	// NullFields is a list of field names (e.g. "Id") to include in API
10760	// requests with the JSON null value. By default, fields with empty
10761	// values are omitted from API requests. However, any field with an
10762	// empty value appearing in NullFields will be sent to the server as
10763	// null. It is an error if a field in this list has a non-empty value.
10764	// This may be used to include null fields in Patch requests.
10765	NullFields []string `json:"-"`
10766}
10767
10768func (s *InstanceGroupManagerAggregatedList) MarshalJSON() ([]byte, error) {
10769	type NoMethod InstanceGroupManagerAggregatedList
10770	raw := NoMethod(*s)
10771	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10772}
10773
10774// InstanceGroupManagerAggregatedListWarning: [Output Only]
10775// Informational warning message.
10776type InstanceGroupManagerAggregatedListWarning struct {
10777	// Code: [Output Only] A warning code, if applicable. For example,
10778	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10779	// the response.
10780	//
10781	// Possible values:
10782	//   "CLEANUP_FAILED"
10783	//   "DEPRECATED_RESOURCE_USED"
10784	//   "DEPRECATED_TYPE_USED"
10785	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10786	//   "EXPERIMENTAL_TYPE_USED"
10787	//   "EXTERNAL_API_WARNING"
10788	//   "FIELD_VALUE_OVERRIDEN"
10789	//   "INJECTED_KERNELS_DEPRECATED"
10790	//   "MISSING_TYPE_DEPENDENCY"
10791	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10792	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10793	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10794	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10795	//   "NEXT_HOP_NOT_RUNNING"
10796	//   "NOT_CRITICAL_ERROR"
10797	//   "NO_RESULTS_ON_PAGE"
10798	//   "REQUIRED_TOS_AGREEMENT"
10799	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10800	//   "RESOURCE_NOT_DELETED"
10801	//   "SCHEMA_VALIDATION_IGNORED"
10802	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10803	//   "UNDECLARED_PROPERTIES"
10804	//   "UNREACHABLE"
10805	Code string `json:"code,omitempty"`
10806
10807	// Data: [Output Only] Metadata about this warning in key: value format.
10808	// For example:
10809	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10810	Data []*InstanceGroupManagerAggregatedListWarningData `json:"data,omitempty"`
10811
10812	// Message: [Output Only] A human-readable description of the warning
10813	// code.
10814	Message string `json:"message,omitempty"`
10815
10816	// ForceSendFields is a list of field names (e.g. "Code") to
10817	// unconditionally include in API requests. By default, fields with
10818	// empty values are omitted from API requests. However, any non-pointer,
10819	// non-interface field appearing in ForceSendFields will be sent to the
10820	// server regardless of whether the field is empty or not. This may be
10821	// used to include empty fields in Patch requests.
10822	ForceSendFields []string `json:"-"`
10823
10824	// NullFields is a list of field names (e.g. "Code") to include in API
10825	// requests with the JSON null value. By default, fields with empty
10826	// values are omitted from API requests. However, any field with an
10827	// empty value appearing in NullFields will be sent to the server as
10828	// null. It is an error if a field in this list has a non-empty value.
10829	// This may be used to include null fields in Patch requests.
10830	NullFields []string `json:"-"`
10831}
10832
10833func (s *InstanceGroupManagerAggregatedListWarning) MarshalJSON() ([]byte, error) {
10834	type NoMethod InstanceGroupManagerAggregatedListWarning
10835	raw := NoMethod(*s)
10836	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10837}
10838
10839type InstanceGroupManagerAggregatedListWarningData struct {
10840	// Key: [Output Only] A key that provides more detail on the warning
10841	// being returned. For example, for warnings where there are no results
10842	// in a list request for a particular zone, this key might be scope and
10843	// the key value might be the zone name. Other examples might be a key
10844	// indicating a deprecated resource and a suggested replacement, or a
10845	// warning about invalid network settings (for example, if an instance
10846	// attempts to perform IP forwarding but is not enabled for IP
10847	// forwarding).
10848	Key string `json:"key,omitempty"`
10849
10850	// Value: [Output Only] A warning data value corresponding to the key.
10851	Value string `json:"value,omitempty"`
10852
10853	// ForceSendFields is a list of field names (e.g. "Key") to
10854	// unconditionally include in API requests. By default, fields with
10855	// empty values are omitted from API requests. However, any non-pointer,
10856	// non-interface field appearing in ForceSendFields will be sent to the
10857	// server regardless of whether the field is empty or not. This may be
10858	// used to include empty fields in Patch requests.
10859	ForceSendFields []string `json:"-"`
10860
10861	// NullFields is a list of field names (e.g. "Key") to include in API
10862	// requests with the JSON null value. By default, fields with empty
10863	// values are omitted from API requests. However, any field with an
10864	// empty value appearing in NullFields will be sent to the server as
10865	// null. It is an error if a field in this list has a non-empty value.
10866	// This may be used to include null fields in Patch requests.
10867	NullFields []string `json:"-"`
10868}
10869
10870func (s *InstanceGroupManagerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
10871	type NoMethod InstanceGroupManagerAggregatedListWarningData
10872	raw := NoMethod(*s)
10873	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10874}
10875
10876type InstanceGroupManagerAutoHealingPolicy struct {
10877	// HealthCheck: The URL for the health check that signals autohealing.
10878	HealthCheck string `json:"healthCheck,omitempty"`
10879
10880	// InitialDelaySec: The number of seconds that the managed instance
10881	// group waits before it applies autohealing policies to new instances
10882	// or recently recreated instances. This initial delay allows instances
10883	// to initialize and run their startup scripts before the instance group
10884	// determines that they are UNHEALTHY. This prevents the managed
10885	// instance group from recreating its instances prematurely. This value
10886	// must be from range [0, 3600].
10887	InitialDelaySec int64 `json:"initialDelaySec,omitempty"`
10888
10889	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
10890	// unconditionally include in API requests. By default, fields with
10891	// empty values are omitted from API requests. However, any non-pointer,
10892	// non-interface field appearing in ForceSendFields will be sent to the
10893	// server regardless of whether the field is empty or not. This may be
10894	// used to include empty fields in Patch requests.
10895	ForceSendFields []string `json:"-"`
10896
10897	// NullFields is a list of field names (e.g. "HealthCheck") to include
10898	// in API requests with the JSON null value. By default, fields with
10899	// empty values are omitted from API requests. However, any field with
10900	// an empty value appearing in NullFields will be sent to the server as
10901	// null. It is an error if a field in this list has a non-empty value.
10902	// This may be used to include null fields in Patch requests.
10903	NullFields []string `json:"-"`
10904}
10905
10906func (s *InstanceGroupManagerAutoHealingPolicy) MarshalJSON() ([]byte, error) {
10907	type NoMethod InstanceGroupManagerAutoHealingPolicy
10908	raw := NoMethod(*s)
10909	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10910}
10911
10912// InstanceGroupManagerList: [Output Only] A list of managed instance
10913// groups.
10914type InstanceGroupManagerList struct {
10915	// Id: [Output Only] Unique identifier for the resource; defined by the
10916	// server.
10917	Id string `json:"id,omitempty"`
10918
10919	// Items: A list of InstanceGroupManager resources.
10920	Items []*InstanceGroupManager `json:"items,omitempty"`
10921
10922	// Kind: [Output Only] The resource type, which is always
10923	// compute#instanceGroupManagerList for a list of managed instance
10924	// groups.
10925	Kind string `json:"kind,omitempty"`
10926
10927	// NextPageToken: [Output Only] This token allows you to get the next
10928	// page of results for list requests. If the number of results is larger
10929	// than maxResults, use the nextPageToken as a value for the query
10930	// parameter pageToken in the next list request. Subsequent list
10931	// requests will have their own nextPageToken to continue paging through
10932	// the results.
10933	NextPageToken string `json:"nextPageToken,omitempty"`
10934
10935	// SelfLink: [Output Only] Server-defined URL for this resource.
10936	SelfLink string `json:"selfLink,omitempty"`
10937
10938	// Warning: [Output Only] Informational warning message.
10939	Warning *InstanceGroupManagerListWarning `json:"warning,omitempty"`
10940
10941	// ServerResponse contains the HTTP response code and headers from the
10942	// server.
10943	googleapi.ServerResponse `json:"-"`
10944
10945	// ForceSendFields is a list of field names (e.g. "Id") to
10946	// unconditionally include in API requests. By default, fields with
10947	// empty values are omitted from API requests. However, any non-pointer,
10948	// non-interface field appearing in ForceSendFields will be sent to the
10949	// server regardless of whether the field is empty or not. This may be
10950	// used to include empty fields in Patch requests.
10951	ForceSendFields []string `json:"-"`
10952
10953	// NullFields is a list of field names (e.g. "Id") to include in API
10954	// requests with the JSON null value. By default, fields with empty
10955	// values are omitted from API requests. However, any field with an
10956	// empty value appearing in NullFields will be sent to the server as
10957	// null. It is an error if a field in this list has a non-empty value.
10958	// This may be used to include null fields in Patch requests.
10959	NullFields []string `json:"-"`
10960}
10961
10962func (s *InstanceGroupManagerList) MarshalJSON() ([]byte, error) {
10963	type NoMethod InstanceGroupManagerList
10964	raw := NoMethod(*s)
10965	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10966}
10967
10968// InstanceGroupManagerListWarning: [Output Only] Informational warning
10969// message.
10970type InstanceGroupManagerListWarning struct {
10971	// Code: [Output Only] A warning code, if applicable. For example,
10972	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10973	// the response.
10974	//
10975	// Possible values:
10976	//   "CLEANUP_FAILED"
10977	//   "DEPRECATED_RESOURCE_USED"
10978	//   "DEPRECATED_TYPE_USED"
10979	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10980	//   "EXPERIMENTAL_TYPE_USED"
10981	//   "EXTERNAL_API_WARNING"
10982	//   "FIELD_VALUE_OVERRIDEN"
10983	//   "INJECTED_KERNELS_DEPRECATED"
10984	//   "MISSING_TYPE_DEPENDENCY"
10985	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10986	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10987	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10988	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10989	//   "NEXT_HOP_NOT_RUNNING"
10990	//   "NOT_CRITICAL_ERROR"
10991	//   "NO_RESULTS_ON_PAGE"
10992	//   "REQUIRED_TOS_AGREEMENT"
10993	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10994	//   "RESOURCE_NOT_DELETED"
10995	//   "SCHEMA_VALIDATION_IGNORED"
10996	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10997	//   "UNDECLARED_PROPERTIES"
10998	//   "UNREACHABLE"
10999	Code string `json:"code,omitempty"`
11000
11001	// Data: [Output Only] Metadata about this warning in key: value format.
11002	// For example:
11003	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11004	Data []*InstanceGroupManagerListWarningData `json:"data,omitempty"`
11005
11006	// Message: [Output Only] A human-readable description of the warning
11007	// code.
11008	Message string `json:"message,omitempty"`
11009
11010	// ForceSendFields is a list of field names (e.g. "Code") to
11011	// unconditionally include in API requests. By default, fields with
11012	// empty values are omitted from API requests. However, any non-pointer,
11013	// non-interface field appearing in ForceSendFields will be sent to the
11014	// server regardless of whether the field is empty or not. This may be
11015	// used to include empty fields in Patch requests.
11016	ForceSendFields []string `json:"-"`
11017
11018	// NullFields is a list of field names (e.g. "Code") to include in API
11019	// requests with the JSON null value. By default, fields with empty
11020	// values are omitted from API requests. However, any field with an
11021	// empty value appearing in NullFields will be sent to the server as
11022	// null. It is an error if a field in this list has a non-empty value.
11023	// This may be used to include null fields in Patch requests.
11024	NullFields []string `json:"-"`
11025}
11026
11027func (s *InstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
11028	type NoMethod InstanceGroupManagerListWarning
11029	raw := NoMethod(*s)
11030	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11031}
11032
11033type InstanceGroupManagerListWarningData struct {
11034	// Key: [Output Only] A key that provides more detail on the warning
11035	// being returned. For example, for warnings where there are no results
11036	// in a list request for a particular zone, this key might be scope and
11037	// the key value might be the zone name. Other examples might be a key
11038	// indicating a deprecated resource and a suggested replacement, or a
11039	// warning about invalid network settings (for example, if an instance
11040	// attempts to perform IP forwarding but is not enabled for IP
11041	// forwarding).
11042	Key string `json:"key,omitempty"`
11043
11044	// Value: [Output Only] A warning data value corresponding to the key.
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 *InstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
11065	type NoMethod InstanceGroupManagerListWarningData
11066	raw := NoMethod(*s)
11067	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11068}
11069
11070type InstanceGroupManagerStatus struct {
11071	// IsStable: [Output Only] A bit indicating whether the managed instance
11072	// group is in a stable state. A stable state means that: none of the
11073	// instances in the managed instance group is currently undergoing any
11074	// type of change (for example, creation, restart, or deletion); no
11075	// future changes are scheduled for instances in the managed instance
11076	// group; and the managed instance group itself is not being modified.
11077	IsStable bool `json:"isStable,omitempty"`
11078
11079	// ForceSendFields is a list of field names (e.g. "IsStable") to
11080	// unconditionally include in API requests. By default, fields with
11081	// empty values are omitted from API requests. However, any non-pointer,
11082	// non-interface field appearing in ForceSendFields will be sent to the
11083	// server regardless of whether the field is empty or not. This may be
11084	// used to include empty fields in Patch requests.
11085	ForceSendFields []string `json:"-"`
11086
11087	// NullFields is a list of field names (e.g. "IsStable") to include in
11088	// API requests with the JSON null value. By default, fields with empty
11089	// values are omitted from API requests. However, any field with an
11090	// empty value appearing in NullFields will be sent to the server as
11091	// null. It is an error if a field in this list has a non-empty value.
11092	// This may be used to include null fields in Patch requests.
11093	NullFields []string `json:"-"`
11094}
11095
11096func (s *InstanceGroupManagerStatus) MarshalJSON() ([]byte, error) {
11097	type NoMethod InstanceGroupManagerStatus
11098	raw := NoMethod(*s)
11099	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11100}
11101
11102type InstanceGroupManagerUpdatePolicy struct {
11103	// MaxSurge: The maximum number of instances that can be created above
11104	// the specified targetSize during the update process. By default, a
11105	// fixed value of 1 is used. This value can be either a fixed number or
11106	// a percentage if the instance group has 10 or more instances. If you
11107	// set a percentage, the number of instances will be rounded up if
11108	// necessary.
11109	//
11110	// At least one of either maxSurge or maxUnavailable must be greater
11111	// than 0. Learn more about maxSurge.
11112	MaxSurge *FixedOrPercent `json:"maxSurge,omitempty"`
11113
11114	// MaxUnavailable: The maximum number of instances that can be
11115	// unavailable during the update process. An instance is considered
11116	// available if all of the following conditions are satisfied:
11117	//
11118	//
11119	// - The instance's status is RUNNING.
11120	// - If there is a health check on the instance group, the instance's
11121	// liveness health check result must be HEALTHY at least once. If there
11122	// is no health check on the group, then the instance only needs to have
11123	// a status of RUNNING to be considered available.  By default, a fixed
11124	// value of 1 is used. This value can be either a fixed number or a
11125	// percentage if the instance group has 10 or more instances. If you set
11126	// a percentage, the number of instances will be rounded up if
11127	// necessary.
11128	//
11129	// At least one of either maxSurge or maxUnavailable must be greater
11130	// than 0. Learn more about maxUnavailable.
11131	MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"`
11132
11133	// MinimalAction: Minimal action to be taken on an instance. You can
11134	// specify either RESTART to restart existing instances or REPLACE to
11135	// delete and create new instances from the target template. If you
11136	// specify a RESTART, the Updater will attempt to perform that action
11137	// only. However, if the Updater determines that the minimal action you
11138	// specify is not enough to perform the update, it might perform a more
11139	// disruptive action.
11140	//
11141	// Possible values:
11142	//   "REPLACE"
11143	//   "RESTART"
11144	MinimalAction string `json:"minimalAction,omitempty"`
11145
11146	// Possible values:
11147	//   "OPPORTUNISTIC"
11148	//   "PROACTIVE"
11149	Type string `json:"type,omitempty"`
11150
11151	// ForceSendFields is a list of field names (e.g. "MaxSurge") to
11152	// unconditionally include in API requests. By default, fields with
11153	// empty values are omitted from API requests. However, any non-pointer,
11154	// non-interface field appearing in ForceSendFields will be sent to the
11155	// server regardless of whether the field is empty or not. This may be
11156	// used to include empty fields in Patch requests.
11157	ForceSendFields []string `json:"-"`
11158
11159	// NullFields is a list of field names (e.g. "MaxSurge") to include in
11160	// API requests with the JSON null value. By default, fields with empty
11161	// values are omitted from API requests. However, any field with an
11162	// empty value appearing in NullFields will be sent to the server as
11163	// null. It is an error if a field in this list has a non-empty value.
11164	// This may be used to include null fields in Patch requests.
11165	NullFields []string `json:"-"`
11166}
11167
11168func (s *InstanceGroupManagerUpdatePolicy) MarshalJSON() ([]byte, error) {
11169	type NoMethod InstanceGroupManagerUpdatePolicy
11170	raw := NoMethod(*s)
11171	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11172}
11173
11174type InstanceGroupManagerVersion struct {
11175	// InstanceTemplate: The URL of the instance template that is specified
11176	// for this managed instance group. The group uses this template to
11177	// create new instances in the managed instance group until the
11178	// `targetSize` for this version is reached.
11179	InstanceTemplate string `json:"instanceTemplate,omitempty"`
11180
11181	// Name: Name of the version. Unique among all versions in the scope of
11182	// this managed instance group.
11183	Name string `json:"name,omitempty"`
11184
11185	// TargetSize: Specifies the intended number of instances to be created
11186	// from the instanceTemplate. The final number of instances created from
11187	// the template will be equal to:
11188	// - If expressed as a fixed number, the minimum of either
11189	// targetSize.fixed or instanceGroupManager.targetSize is used.
11190	// - if expressed as a percent, the targetSize would be
11191	// (targetSize.percent/100 * InstanceGroupManager.targetSize) If there
11192	// is a remainder, the number is rounded up.  If unset, this version
11193	// will update any remaining instances not updated by another version.
11194	// Read Starting a canary update for more information.
11195	TargetSize *FixedOrPercent `json:"targetSize,omitempty"`
11196
11197	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
11198	// unconditionally include in API requests. By default, fields with
11199	// empty values are omitted from API requests. However, any non-pointer,
11200	// non-interface field appearing in ForceSendFields will be sent to the
11201	// server regardless of whether the field is empty or not. This may be
11202	// used to include empty fields in Patch requests.
11203	ForceSendFields []string `json:"-"`
11204
11205	// NullFields is a list of field names (e.g. "InstanceTemplate") to
11206	// include in API requests with the JSON null value. By default, fields
11207	// with empty values are omitted from API requests. However, any field
11208	// with an empty value appearing in NullFields will be sent to the
11209	// server as null. It is an error if a field in this list has a
11210	// non-empty value. This may be used to include null fields in Patch
11211	// requests.
11212	NullFields []string `json:"-"`
11213}
11214
11215func (s *InstanceGroupManagerVersion) MarshalJSON() ([]byte, error) {
11216	type NoMethod InstanceGroupManagerVersion
11217	raw := NoMethod(*s)
11218	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11219}
11220
11221type InstanceGroupManagersAbandonInstancesRequest struct {
11222	// Instances: The URLs of one or more instances to abandon. This can be
11223	// a full URL or a partial URL, such as
11224	// zones/[ZONE]/instances/[INSTANCE_NAME].
11225	Instances []string `json:"instances,omitempty"`
11226
11227	// ForceSendFields is a list of field names (e.g. "Instances") to
11228	// unconditionally include in API requests. By default, fields with
11229	// empty values are omitted from API requests. However, any non-pointer,
11230	// non-interface field appearing in ForceSendFields will be sent to the
11231	// server regardless of whether the field is empty or not. This may be
11232	// used to include empty fields in Patch requests.
11233	ForceSendFields []string `json:"-"`
11234
11235	// NullFields is a list of field names (e.g. "Instances") to include in
11236	// API requests with the JSON null value. By default, fields with empty
11237	// values are omitted from API requests. However, any field with an
11238	// empty value appearing in NullFields will be sent to the server as
11239	// null. It is an error if a field in this list has a non-empty value.
11240	// This may be used to include null fields in Patch requests.
11241	NullFields []string `json:"-"`
11242}
11243
11244func (s *InstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
11245	type NoMethod InstanceGroupManagersAbandonInstancesRequest
11246	raw := NoMethod(*s)
11247	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11248}
11249
11250type InstanceGroupManagersDeleteInstancesRequest struct {
11251	// Instances: The URLs of one or more instances to delete. This can be a
11252	// full URL or a partial URL, such as
11253	// zones/[ZONE]/instances/[INSTANCE_NAME].
11254	Instances []string `json:"instances,omitempty"`
11255
11256	// ForceSendFields is a list of field names (e.g. "Instances") to
11257	// unconditionally include in API requests. By default, fields with
11258	// empty values are omitted from API requests. However, any non-pointer,
11259	// non-interface field appearing in ForceSendFields will be sent to the
11260	// server regardless of whether the field is empty or not. This may be
11261	// used to include empty fields in Patch requests.
11262	ForceSendFields []string `json:"-"`
11263
11264	// NullFields is a list of field names (e.g. "Instances") to include in
11265	// API requests with the JSON null value. By default, fields with empty
11266	// values are omitted from API requests. However, any field with an
11267	// empty value appearing in NullFields will be sent to the server as
11268	// null. It is an error if a field in this list has a non-empty value.
11269	// This may be used to include null fields in Patch requests.
11270	NullFields []string `json:"-"`
11271}
11272
11273func (s *InstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
11274	type NoMethod InstanceGroupManagersDeleteInstancesRequest
11275	raw := NoMethod(*s)
11276	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11277}
11278
11279type InstanceGroupManagersListManagedInstancesResponse struct {
11280	// ManagedInstances: [Output Only] The list of instances in the managed
11281	// instance group.
11282	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
11283
11284	// ServerResponse contains the HTTP response code and headers from the
11285	// server.
11286	googleapi.ServerResponse `json:"-"`
11287
11288	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
11289	// unconditionally include in API requests. By default, fields with
11290	// empty values are omitted from API requests. However, any non-pointer,
11291	// non-interface field appearing in ForceSendFields will be sent to the
11292	// server regardless of whether the field is empty or not. This may be
11293	// used to include empty fields in Patch requests.
11294	ForceSendFields []string `json:"-"`
11295
11296	// NullFields is a list of field names (e.g. "ManagedInstances") to
11297	// include in API requests with the JSON null value. By default, fields
11298	// with empty values are omitted from API requests. However, any field
11299	// with an empty value appearing in NullFields will be sent to the
11300	// server as null. It is an error if a field in this list has a
11301	// non-empty value. This may be used to include null fields in Patch
11302	// requests.
11303	NullFields []string `json:"-"`
11304}
11305
11306func (s *InstanceGroupManagersListManagedInstancesResponse) MarshalJSON() ([]byte, error) {
11307	type NoMethod InstanceGroupManagersListManagedInstancesResponse
11308	raw := NoMethod(*s)
11309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11310}
11311
11312type InstanceGroupManagersRecreateInstancesRequest struct {
11313	// Instances: The URLs of one or more instances to recreate. This can be
11314	// a full URL or a partial URL, such as
11315	// zones/[ZONE]/instances/[INSTANCE_NAME].
11316	Instances []string `json:"instances,omitempty"`
11317
11318	// ForceSendFields is a list of field names (e.g. "Instances") to
11319	// unconditionally include in API requests. By default, fields with
11320	// empty values are omitted from API requests. However, any non-pointer,
11321	// non-interface field appearing in ForceSendFields will be sent to the
11322	// server regardless of whether the field is empty or not. This may be
11323	// used to include empty fields in Patch requests.
11324	ForceSendFields []string `json:"-"`
11325
11326	// NullFields is a list of field names (e.g. "Instances") to include in
11327	// API requests with the JSON null value. By default, fields with empty
11328	// values are omitted from API requests. However, any field with an
11329	// empty value appearing in NullFields will be sent to the server as
11330	// null. It is an error if a field in this list has a non-empty value.
11331	// This may be used to include null fields in Patch requests.
11332	NullFields []string `json:"-"`
11333}
11334
11335func (s *InstanceGroupManagersRecreateInstancesRequest) MarshalJSON() ([]byte, error) {
11336	type NoMethod InstanceGroupManagersRecreateInstancesRequest
11337	raw := NoMethod(*s)
11338	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11339}
11340
11341type InstanceGroupManagersScopedList struct {
11342	// InstanceGroupManagers: [Output Only] The list of managed instance
11343	// groups that are contained in the specified project and zone.
11344	InstanceGroupManagers []*InstanceGroupManager `json:"instanceGroupManagers,omitempty"`
11345
11346	// Warning: [Output Only] The warning that replaces the list of managed
11347	// instance groups when the list is empty.
11348	Warning *InstanceGroupManagersScopedListWarning `json:"warning,omitempty"`
11349
11350	// ForceSendFields is a list of field names (e.g.
11351	// "InstanceGroupManagers") to unconditionally include in API requests.
11352	// By default, fields with empty values are omitted from API requests.
11353	// However, any non-pointer, non-interface field appearing in
11354	// ForceSendFields will be sent to the server regardless of whether the
11355	// field is empty or not. This may be used to include empty fields in
11356	// Patch requests.
11357	ForceSendFields []string `json:"-"`
11358
11359	// NullFields is a list of field names (e.g. "InstanceGroupManagers") to
11360	// include in API requests with the JSON null value. By default, fields
11361	// with empty values are omitted from API requests. However, any field
11362	// with an empty value appearing in NullFields will be sent to the
11363	// server as null. It is an error if a field in this list has a
11364	// non-empty value. This may be used to include null fields in Patch
11365	// requests.
11366	NullFields []string `json:"-"`
11367}
11368
11369func (s *InstanceGroupManagersScopedList) MarshalJSON() ([]byte, error) {
11370	type NoMethod InstanceGroupManagersScopedList
11371	raw := NoMethod(*s)
11372	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11373}
11374
11375// InstanceGroupManagersScopedListWarning: [Output Only] The warning
11376// that replaces the list of managed instance groups when the list is
11377// empty.
11378type InstanceGroupManagersScopedListWarning struct {
11379	// Code: [Output Only] A warning code, if applicable. For example,
11380	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11381	// the response.
11382	//
11383	// Possible values:
11384	//   "CLEANUP_FAILED"
11385	//   "DEPRECATED_RESOURCE_USED"
11386	//   "DEPRECATED_TYPE_USED"
11387	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11388	//   "EXPERIMENTAL_TYPE_USED"
11389	//   "EXTERNAL_API_WARNING"
11390	//   "FIELD_VALUE_OVERRIDEN"
11391	//   "INJECTED_KERNELS_DEPRECATED"
11392	//   "MISSING_TYPE_DEPENDENCY"
11393	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11394	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11395	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11396	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11397	//   "NEXT_HOP_NOT_RUNNING"
11398	//   "NOT_CRITICAL_ERROR"
11399	//   "NO_RESULTS_ON_PAGE"
11400	//   "REQUIRED_TOS_AGREEMENT"
11401	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11402	//   "RESOURCE_NOT_DELETED"
11403	//   "SCHEMA_VALIDATION_IGNORED"
11404	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11405	//   "UNDECLARED_PROPERTIES"
11406	//   "UNREACHABLE"
11407	Code string `json:"code,omitempty"`
11408
11409	// Data: [Output Only] Metadata about this warning in key: value format.
11410	// For example:
11411	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11412	Data []*InstanceGroupManagersScopedListWarningData `json:"data,omitempty"`
11413
11414	// Message: [Output Only] A human-readable description of the warning
11415	// code.
11416	Message string `json:"message,omitempty"`
11417
11418	// ForceSendFields is a list of field names (e.g. "Code") to
11419	// unconditionally include in API requests. By default, fields with
11420	// empty values are omitted from API requests. However, any non-pointer,
11421	// non-interface field appearing in ForceSendFields will be sent to the
11422	// server regardless of whether the field is empty or not. This may be
11423	// used to include empty fields in Patch requests.
11424	ForceSendFields []string `json:"-"`
11425
11426	// NullFields is a list of field names (e.g. "Code") to include in API
11427	// requests with the JSON null value. By default, fields with empty
11428	// values are omitted from API requests. However, any field with an
11429	// empty value appearing in NullFields will be sent to the server as
11430	// null. It is an error if a field in this list has a non-empty value.
11431	// This may be used to include null fields in Patch requests.
11432	NullFields []string `json:"-"`
11433}
11434
11435func (s *InstanceGroupManagersScopedListWarning) MarshalJSON() ([]byte, error) {
11436	type NoMethod InstanceGroupManagersScopedListWarning
11437	raw := NoMethod(*s)
11438	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11439}
11440
11441type InstanceGroupManagersScopedListWarningData struct {
11442	// Key: [Output Only] A key that provides more detail on the warning
11443	// being returned. For example, for warnings where there are no results
11444	// in a list request for a particular zone, this key might be scope and
11445	// the key value might be the zone name. Other examples might be a key
11446	// indicating a deprecated resource and a suggested replacement, or a
11447	// warning about invalid network settings (for example, if an instance
11448	// attempts to perform IP forwarding but is not enabled for IP
11449	// forwarding).
11450	Key string `json:"key,omitempty"`
11451
11452	// Value: [Output Only] A warning data value corresponding to the key.
11453	Value string `json:"value,omitempty"`
11454
11455	// ForceSendFields is a list of field names (e.g. "Key") to
11456	// unconditionally include in API requests. By default, fields with
11457	// empty values are omitted from API requests. However, any non-pointer,
11458	// non-interface field appearing in ForceSendFields will be sent to the
11459	// server regardless of whether the field is empty or not. This may be
11460	// used to include empty fields in Patch requests.
11461	ForceSendFields []string `json:"-"`
11462
11463	// NullFields is a list of field names (e.g. "Key") to include in API
11464	// requests with the JSON null value. By default, fields with empty
11465	// values are omitted from API requests. However, any field with an
11466	// empty value appearing in NullFields will be sent to the server as
11467	// null. It is an error if a field in this list has a non-empty value.
11468	// This may be used to include null fields in Patch requests.
11469	NullFields []string `json:"-"`
11470}
11471
11472func (s *InstanceGroupManagersScopedListWarningData) MarshalJSON() ([]byte, error) {
11473	type NoMethod InstanceGroupManagersScopedListWarningData
11474	raw := NoMethod(*s)
11475	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11476}
11477
11478type InstanceGroupManagersSetInstanceTemplateRequest struct {
11479	// InstanceTemplate: The URL of the instance template that is specified
11480	// for this managed instance group. The group uses this template to
11481	// create all new instances in the managed instance group.
11482	InstanceTemplate string `json:"instanceTemplate,omitempty"`
11483
11484	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
11485	// unconditionally include in API requests. By default, fields with
11486	// empty values are omitted from API requests. However, any non-pointer,
11487	// non-interface field appearing in ForceSendFields will be sent to the
11488	// server regardless of whether the field is empty or not. This may be
11489	// used to include empty fields in Patch requests.
11490	ForceSendFields []string `json:"-"`
11491
11492	// NullFields is a list of field names (e.g. "InstanceTemplate") to
11493	// include in API requests with the JSON null value. By default, fields
11494	// with empty values are omitted from API requests. However, any field
11495	// with an empty value appearing in NullFields will be sent to the
11496	// server as null. It is an error if a field in this list has a
11497	// non-empty value. This may be used to include null fields in Patch
11498	// requests.
11499	NullFields []string `json:"-"`
11500}
11501
11502func (s *InstanceGroupManagersSetInstanceTemplateRequest) MarshalJSON() ([]byte, error) {
11503	type NoMethod InstanceGroupManagersSetInstanceTemplateRequest
11504	raw := NoMethod(*s)
11505	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11506}
11507
11508type InstanceGroupManagersSetTargetPoolsRequest struct {
11509	// Fingerprint: The fingerprint of the target pools information. Use
11510	// this optional property to prevent conflicts when multiple users
11511	// change the target pools settings concurrently. Obtain the fingerprint
11512	// with the instanceGroupManagers.get method. Then, include the
11513	// fingerprint in your request to ensure that you do not overwrite
11514	// changes that were applied from another concurrent request.
11515	Fingerprint string `json:"fingerprint,omitempty"`
11516
11517	// TargetPools: The list of target pool URLs that instances in this
11518	// managed instance group belong to. The managed instance group applies
11519	// these target pools to all of the instances in the group. Existing
11520	// instances and new instances in the group all receive these target
11521	// pool settings.
11522	TargetPools []string `json:"targetPools,omitempty"`
11523
11524	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
11525	// unconditionally include in API requests. By default, fields with
11526	// empty values are omitted from API requests. However, any non-pointer,
11527	// non-interface field appearing in ForceSendFields will be sent to the
11528	// server regardless of whether the field is empty or not. This may be
11529	// used to include empty fields in Patch requests.
11530	ForceSendFields []string `json:"-"`
11531
11532	// NullFields is a list of field names (e.g. "Fingerprint") to include
11533	// in API requests with the JSON null value. By default, fields with
11534	// empty values are omitted from API requests. However, any field with
11535	// an empty value appearing in NullFields will be sent to the server as
11536	// null. It is an error if a field in this list has a non-empty value.
11537	// This may be used to include null fields in Patch requests.
11538	NullFields []string `json:"-"`
11539}
11540
11541func (s *InstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
11542	type NoMethod InstanceGroupManagersSetTargetPoolsRequest
11543	raw := NoMethod(*s)
11544	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11545}
11546
11547type InstanceGroupsAddInstancesRequest struct {
11548	// Instances: The list of instances to add to the instance group.
11549	Instances []*InstanceReference `json:"instances,omitempty"`
11550
11551	// ForceSendFields is a list of field names (e.g. "Instances") to
11552	// unconditionally include in API requests. By default, fields with
11553	// empty values are omitted from API requests. However, any non-pointer,
11554	// non-interface field appearing in ForceSendFields will be sent to the
11555	// server regardless of whether the field is empty or not. This may be
11556	// used to include empty fields in Patch requests.
11557	ForceSendFields []string `json:"-"`
11558
11559	// NullFields is a list of field names (e.g. "Instances") to include in
11560	// API requests with the JSON null value. By default, fields with empty
11561	// values are omitted from API requests. However, any field with an
11562	// empty value appearing in NullFields will be sent to the server as
11563	// null. It is an error if a field in this list has a non-empty value.
11564	// This may be used to include null fields in Patch requests.
11565	NullFields []string `json:"-"`
11566}
11567
11568func (s *InstanceGroupsAddInstancesRequest) MarshalJSON() ([]byte, error) {
11569	type NoMethod InstanceGroupsAddInstancesRequest
11570	raw := NoMethod(*s)
11571	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11572}
11573
11574type InstanceGroupsListInstances struct {
11575	// Id: [Output Only] Unique identifier for the resource; defined by the
11576	// server.
11577	Id string `json:"id,omitempty"`
11578
11579	// Items: A list of InstanceWithNamedPorts resources.
11580	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
11581
11582	// Kind: [Output Only] The resource type, which is always
11583	// compute#instanceGroupsListInstances for the list of instances in the
11584	// specified instance group.
11585	Kind string `json:"kind,omitempty"`
11586
11587	// NextPageToken: [Output Only] This token allows you to get the next
11588	// page of results for list requests. If the number of results is larger
11589	// than maxResults, use the nextPageToken as a value for the query
11590	// parameter pageToken in the next list request. Subsequent list
11591	// requests will have their own nextPageToken to continue paging through
11592	// the results.
11593	NextPageToken string `json:"nextPageToken,omitempty"`
11594
11595	// SelfLink: [Output Only] Server-defined URL for this resource.
11596	SelfLink string `json:"selfLink,omitempty"`
11597
11598	// Warning: [Output Only] Informational warning message.
11599	Warning *InstanceGroupsListInstancesWarning `json:"warning,omitempty"`
11600
11601	// ServerResponse contains the HTTP response code and headers from the
11602	// server.
11603	googleapi.ServerResponse `json:"-"`
11604
11605	// ForceSendFields is a list of field names (e.g. "Id") to
11606	// unconditionally include in API requests. By default, fields with
11607	// empty values are omitted from API requests. However, any non-pointer,
11608	// non-interface field appearing in ForceSendFields will be sent to the
11609	// server regardless of whether the field is empty or not. This may be
11610	// used to include empty fields in Patch requests.
11611	ForceSendFields []string `json:"-"`
11612
11613	// NullFields is a list of field names (e.g. "Id") to include in API
11614	// requests with the JSON null value. By default, fields with empty
11615	// values are omitted from API requests. However, any field with an
11616	// empty value appearing in NullFields will be sent to the server as
11617	// null. It is an error if a field in this list has a non-empty value.
11618	// This may be used to include null fields in Patch requests.
11619	NullFields []string `json:"-"`
11620}
11621
11622func (s *InstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
11623	type NoMethod InstanceGroupsListInstances
11624	raw := NoMethod(*s)
11625	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11626}
11627
11628// InstanceGroupsListInstancesWarning: [Output Only] Informational
11629// warning message.
11630type InstanceGroupsListInstancesWarning struct {
11631	// Code: [Output Only] A warning code, if applicable. For example,
11632	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11633	// the response.
11634	//
11635	// Possible values:
11636	//   "CLEANUP_FAILED"
11637	//   "DEPRECATED_RESOURCE_USED"
11638	//   "DEPRECATED_TYPE_USED"
11639	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11640	//   "EXPERIMENTAL_TYPE_USED"
11641	//   "EXTERNAL_API_WARNING"
11642	//   "FIELD_VALUE_OVERRIDEN"
11643	//   "INJECTED_KERNELS_DEPRECATED"
11644	//   "MISSING_TYPE_DEPENDENCY"
11645	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11646	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11647	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11648	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11649	//   "NEXT_HOP_NOT_RUNNING"
11650	//   "NOT_CRITICAL_ERROR"
11651	//   "NO_RESULTS_ON_PAGE"
11652	//   "REQUIRED_TOS_AGREEMENT"
11653	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11654	//   "RESOURCE_NOT_DELETED"
11655	//   "SCHEMA_VALIDATION_IGNORED"
11656	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11657	//   "UNDECLARED_PROPERTIES"
11658	//   "UNREACHABLE"
11659	Code string `json:"code,omitempty"`
11660
11661	// Data: [Output Only] Metadata about this warning in key: value format.
11662	// For example:
11663	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11664	Data []*InstanceGroupsListInstancesWarningData `json:"data,omitempty"`
11665
11666	// Message: [Output Only] A human-readable description of the warning
11667	// code.
11668	Message string `json:"message,omitempty"`
11669
11670	// ForceSendFields is a list of field names (e.g. "Code") to
11671	// unconditionally include in API requests. By default, fields with
11672	// empty values are omitted from API requests. However, any non-pointer,
11673	// non-interface field appearing in ForceSendFields will be sent to the
11674	// server regardless of whether the field is empty or not. This may be
11675	// used to include empty fields in Patch requests.
11676	ForceSendFields []string `json:"-"`
11677
11678	// NullFields is a list of field names (e.g. "Code") to include in API
11679	// requests with the JSON null value. By default, fields with empty
11680	// values are omitted from API requests. However, any field with an
11681	// empty value appearing in NullFields will be sent to the server as
11682	// null. It is an error if a field in this list has a non-empty value.
11683	// This may be used to include null fields in Patch requests.
11684	NullFields []string `json:"-"`
11685}
11686
11687func (s *InstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
11688	type NoMethod InstanceGroupsListInstancesWarning
11689	raw := NoMethod(*s)
11690	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11691}
11692
11693type InstanceGroupsListInstancesWarningData struct {
11694	// Key: [Output Only] A key that provides more detail on the warning
11695	// being returned. For example, for warnings where there are no results
11696	// in a list request for a particular zone, this key might be scope and
11697	// the key value might be the zone name. Other examples might be a key
11698	// indicating a deprecated resource and a suggested replacement, or a
11699	// warning about invalid network settings (for example, if an instance
11700	// attempts to perform IP forwarding but is not enabled for IP
11701	// forwarding).
11702	Key string `json:"key,omitempty"`
11703
11704	// Value: [Output Only] A warning data value corresponding to the key.
11705	Value string `json:"value,omitempty"`
11706
11707	// ForceSendFields is a list of field names (e.g. "Key") to
11708	// unconditionally include in API requests. By default, fields with
11709	// empty values are omitted from API requests. However, any non-pointer,
11710	// non-interface field appearing in ForceSendFields will be sent to the
11711	// server regardless of whether the field is empty or not. This may be
11712	// used to include empty fields in Patch requests.
11713	ForceSendFields []string `json:"-"`
11714
11715	// NullFields is a list of field names (e.g. "Key") to include in API
11716	// requests with the JSON null value. By default, fields with empty
11717	// values are omitted from API requests. However, any field with an
11718	// empty value appearing in NullFields will be sent to the server as
11719	// null. It is an error if a field in this list has a non-empty value.
11720	// This may be used to include null fields in Patch requests.
11721	NullFields []string `json:"-"`
11722}
11723
11724func (s *InstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
11725	type NoMethod InstanceGroupsListInstancesWarningData
11726	raw := NoMethod(*s)
11727	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11728}
11729
11730type InstanceGroupsListInstancesRequest struct {
11731	// InstanceState: A filter for the state of the instances in the
11732	// instance group. Valid options are ALL or RUNNING. If you do not
11733	// specify this parameter the list includes all instances regardless of
11734	// their state.
11735	//
11736	// Possible values:
11737	//   "ALL"
11738	//   "RUNNING"
11739	InstanceState string `json:"instanceState,omitempty"`
11740
11741	// ForceSendFields is a list of field names (e.g. "InstanceState") to
11742	// unconditionally include in API requests. By default, fields with
11743	// empty values are omitted from API requests. However, any non-pointer,
11744	// non-interface field appearing in ForceSendFields will be sent to the
11745	// server regardless of whether the field is empty or not. This may be
11746	// used to include empty fields in Patch requests.
11747	ForceSendFields []string `json:"-"`
11748
11749	// NullFields is a list of field names (e.g. "InstanceState") to include
11750	// in API requests with the JSON null value. By default, fields with
11751	// empty values are omitted from API requests. However, any field with
11752	// an empty value appearing in NullFields will be sent to the server as
11753	// null. It is an error if a field in this list has a non-empty value.
11754	// This may be used to include null fields in Patch requests.
11755	NullFields []string `json:"-"`
11756}
11757
11758func (s *InstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
11759	type NoMethod InstanceGroupsListInstancesRequest
11760	raw := NoMethod(*s)
11761	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11762}
11763
11764type InstanceGroupsRemoveInstancesRequest struct {
11765	// Instances: The list of instances to remove from the instance group.
11766	Instances []*InstanceReference `json:"instances,omitempty"`
11767
11768	// ForceSendFields is a list of field names (e.g. "Instances") to
11769	// unconditionally include in API requests. By default, fields with
11770	// empty values are omitted from API requests. However, any non-pointer,
11771	// non-interface field appearing in ForceSendFields will be sent to the
11772	// server regardless of whether the field is empty or not. This may be
11773	// used to include empty fields in Patch requests.
11774	ForceSendFields []string `json:"-"`
11775
11776	// NullFields is a list of field names (e.g. "Instances") to include in
11777	// API requests with the JSON null value. By default, fields with empty
11778	// values are omitted from API requests. However, any field with an
11779	// empty value appearing in NullFields will be sent to the server as
11780	// null. It is an error if a field in this list has a non-empty value.
11781	// This may be used to include null fields in Patch requests.
11782	NullFields []string `json:"-"`
11783}
11784
11785func (s *InstanceGroupsRemoveInstancesRequest) MarshalJSON() ([]byte, error) {
11786	type NoMethod InstanceGroupsRemoveInstancesRequest
11787	raw := NoMethod(*s)
11788	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11789}
11790
11791type InstanceGroupsScopedList struct {
11792	// InstanceGroups: [Output Only] The list of instance groups that are
11793	// contained in this scope.
11794	InstanceGroups []*InstanceGroup `json:"instanceGroups,omitempty"`
11795
11796	// Warning: [Output Only] An informational warning that replaces the
11797	// list of instance groups when the list is empty.
11798	Warning *InstanceGroupsScopedListWarning `json:"warning,omitempty"`
11799
11800	// ForceSendFields is a list of field names (e.g. "InstanceGroups") to
11801	// unconditionally include in API requests. By default, fields with
11802	// empty values are omitted from API requests. However, any non-pointer,
11803	// non-interface field appearing in ForceSendFields will be sent to the
11804	// server regardless of whether the field is empty or not. This may be
11805	// used to include empty fields in Patch requests.
11806	ForceSendFields []string `json:"-"`
11807
11808	// NullFields is a list of field names (e.g. "InstanceGroups") to
11809	// include in API requests with the JSON null value. By default, fields
11810	// with empty values are omitted from API requests. However, any field
11811	// with an empty value appearing in NullFields will be sent to the
11812	// server as null. It is an error if a field in this list has a
11813	// non-empty value. This may be used to include null fields in Patch
11814	// requests.
11815	NullFields []string `json:"-"`
11816}
11817
11818func (s *InstanceGroupsScopedList) MarshalJSON() ([]byte, error) {
11819	type NoMethod InstanceGroupsScopedList
11820	raw := NoMethod(*s)
11821	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11822}
11823
11824// InstanceGroupsScopedListWarning: [Output Only] An informational
11825// warning that replaces the list of instance groups when the list is
11826// empty.
11827type InstanceGroupsScopedListWarning struct {
11828	// Code: [Output Only] A warning code, if applicable. For example,
11829	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11830	// the response.
11831	//
11832	// Possible values:
11833	//   "CLEANUP_FAILED"
11834	//   "DEPRECATED_RESOURCE_USED"
11835	//   "DEPRECATED_TYPE_USED"
11836	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11837	//   "EXPERIMENTAL_TYPE_USED"
11838	//   "EXTERNAL_API_WARNING"
11839	//   "FIELD_VALUE_OVERRIDEN"
11840	//   "INJECTED_KERNELS_DEPRECATED"
11841	//   "MISSING_TYPE_DEPENDENCY"
11842	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11843	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11844	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11845	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11846	//   "NEXT_HOP_NOT_RUNNING"
11847	//   "NOT_CRITICAL_ERROR"
11848	//   "NO_RESULTS_ON_PAGE"
11849	//   "REQUIRED_TOS_AGREEMENT"
11850	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11851	//   "RESOURCE_NOT_DELETED"
11852	//   "SCHEMA_VALIDATION_IGNORED"
11853	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11854	//   "UNDECLARED_PROPERTIES"
11855	//   "UNREACHABLE"
11856	Code string `json:"code,omitempty"`
11857
11858	// Data: [Output Only] Metadata about this warning in key: value format.
11859	// For example:
11860	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11861	Data []*InstanceGroupsScopedListWarningData `json:"data,omitempty"`
11862
11863	// Message: [Output Only] A human-readable description of the warning
11864	// code.
11865	Message string `json:"message,omitempty"`
11866
11867	// ForceSendFields is a list of field names (e.g. "Code") to
11868	// unconditionally include in API requests. By default, fields with
11869	// empty values are omitted from API requests. However, any non-pointer,
11870	// non-interface field appearing in ForceSendFields will be sent to the
11871	// server regardless of whether the field is empty or not. This may be
11872	// used to include empty fields in Patch requests.
11873	ForceSendFields []string `json:"-"`
11874
11875	// NullFields is a list of field names (e.g. "Code") to include in API
11876	// requests with the JSON null value. By default, fields with empty
11877	// values are omitted from API requests. However, any field with an
11878	// empty value appearing in NullFields will be sent to the server as
11879	// null. It is an error if a field in this list has a non-empty value.
11880	// This may be used to include null fields in Patch requests.
11881	NullFields []string `json:"-"`
11882}
11883
11884func (s *InstanceGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
11885	type NoMethod InstanceGroupsScopedListWarning
11886	raw := NoMethod(*s)
11887	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11888}
11889
11890type InstanceGroupsScopedListWarningData struct {
11891	// Key: [Output Only] A key that provides more detail on the warning
11892	// being returned. For example, for warnings where there are no results
11893	// in a list request for a particular zone, this key might be scope and
11894	// the key value might be the zone name. Other examples might be a key
11895	// indicating a deprecated resource and a suggested replacement, or a
11896	// warning about invalid network settings (for example, if an instance
11897	// attempts to perform IP forwarding but is not enabled for IP
11898	// forwarding).
11899	Key string `json:"key,omitempty"`
11900
11901	// Value: [Output Only] A warning data value corresponding to the key.
11902	Value string `json:"value,omitempty"`
11903
11904	// ForceSendFields is a list of field names (e.g. "Key") to
11905	// unconditionally include in API requests. By default, fields with
11906	// empty values are omitted from API requests. However, any non-pointer,
11907	// non-interface field appearing in ForceSendFields will be sent to the
11908	// server regardless of whether the field is empty or not. This may be
11909	// used to include empty fields in Patch requests.
11910	ForceSendFields []string `json:"-"`
11911
11912	// NullFields is a list of field names (e.g. "Key") to include in API
11913	// requests with the JSON null value. By default, fields with empty
11914	// values are omitted from API requests. However, any field with an
11915	// empty value appearing in NullFields will be sent to the server as
11916	// null. It is an error if a field in this list has a non-empty value.
11917	// This may be used to include null fields in Patch requests.
11918	NullFields []string `json:"-"`
11919}
11920
11921func (s *InstanceGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
11922	type NoMethod InstanceGroupsScopedListWarningData
11923	raw := NoMethod(*s)
11924	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11925}
11926
11927type InstanceGroupsSetNamedPortsRequest struct {
11928	// Fingerprint: The fingerprint of the named ports information for this
11929	// instance group. Use this optional property to prevent conflicts when
11930	// multiple users change the named ports settings concurrently. Obtain
11931	// the fingerprint with the instanceGroups.get method. Then, include the
11932	// fingerprint in your request to ensure that you do not overwrite
11933	// changes that were applied from another concurrent request. A request
11934	// with an incorrect fingerprint will fail with error 412
11935	// conditionNotMet.
11936	Fingerprint string `json:"fingerprint,omitempty"`
11937
11938	// NamedPorts: The list of named ports to set for this instance group.
11939	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
11940
11941	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
11942	// unconditionally include in API requests. By default, fields with
11943	// empty values are omitted from API requests. However, any non-pointer,
11944	// non-interface field appearing in ForceSendFields will be sent to the
11945	// server regardless of whether the field is empty or not. This may be
11946	// used to include empty fields in Patch requests.
11947	ForceSendFields []string `json:"-"`
11948
11949	// NullFields is a list of field names (e.g. "Fingerprint") to include
11950	// in API requests with the JSON null value. By default, fields with
11951	// empty values are omitted from API requests. However, any field with
11952	// an empty value appearing in NullFields will be sent to the server as
11953	// null. It is an error if a field in this list has a non-empty value.
11954	// This may be used to include null fields in Patch requests.
11955	NullFields []string `json:"-"`
11956}
11957
11958func (s *InstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
11959	type NoMethod InstanceGroupsSetNamedPortsRequest
11960	raw := NoMethod(*s)
11961	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11962}
11963
11964// InstanceList: Contains a list of instances.
11965type InstanceList struct {
11966	// Id: [Output Only] Unique identifier for the resource; defined by the
11967	// server.
11968	Id string `json:"id,omitempty"`
11969
11970	// Items: A list of Instance resources.
11971	Items []*Instance `json:"items,omitempty"`
11972
11973	// Kind: [Output Only] Type of resource. Always compute#instanceList for
11974	// lists of Instance resources.
11975	Kind string `json:"kind,omitempty"`
11976
11977	// NextPageToken: [Output Only] This token allows you to get the next
11978	// page of results for list requests. If the number of results is larger
11979	// than maxResults, use the nextPageToken as a value for the query
11980	// parameter pageToken in the next list request. Subsequent list
11981	// requests will have their own nextPageToken to continue paging through
11982	// the results.
11983	NextPageToken string `json:"nextPageToken,omitempty"`
11984
11985	// SelfLink: [Output Only] Server-defined URL for this resource.
11986	SelfLink string `json:"selfLink,omitempty"`
11987
11988	// Warning: [Output Only] Informational warning message.
11989	Warning *InstanceListWarning `json:"warning,omitempty"`
11990
11991	// ServerResponse contains the HTTP response code and headers from the
11992	// server.
11993	googleapi.ServerResponse `json:"-"`
11994
11995	// ForceSendFields is a list of field names (e.g. "Id") to
11996	// unconditionally include in API requests. By default, fields with
11997	// empty values are omitted from API requests. However, any non-pointer,
11998	// non-interface field appearing in ForceSendFields will be sent to the
11999	// server regardless of whether the field is empty or not. This may be
12000	// used to include empty fields in Patch requests.
12001	ForceSendFields []string `json:"-"`
12002
12003	// NullFields is a list of field names (e.g. "Id") to include in API
12004	// requests with the JSON null value. By default, fields with empty
12005	// values are omitted from API requests. However, any field with an
12006	// empty value appearing in NullFields will be sent to the server as
12007	// null. It is an error if a field in this list has a non-empty value.
12008	// This may be used to include null fields in Patch requests.
12009	NullFields []string `json:"-"`
12010}
12011
12012func (s *InstanceList) MarshalJSON() ([]byte, error) {
12013	type NoMethod InstanceList
12014	raw := NoMethod(*s)
12015	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12016}
12017
12018// InstanceListWarning: [Output Only] Informational warning message.
12019type InstanceListWarning struct {
12020	// Code: [Output Only] A warning code, if applicable. For example,
12021	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12022	// the response.
12023	//
12024	// Possible values:
12025	//   "CLEANUP_FAILED"
12026	//   "DEPRECATED_RESOURCE_USED"
12027	//   "DEPRECATED_TYPE_USED"
12028	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12029	//   "EXPERIMENTAL_TYPE_USED"
12030	//   "EXTERNAL_API_WARNING"
12031	//   "FIELD_VALUE_OVERRIDEN"
12032	//   "INJECTED_KERNELS_DEPRECATED"
12033	//   "MISSING_TYPE_DEPENDENCY"
12034	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12035	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12036	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12037	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12038	//   "NEXT_HOP_NOT_RUNNING"
12039	//   "NOT_CRITICAL_ERROR"
12040	//   "NO_RESULTS_ON_PAGE"
12041	//   "REQUIRED_TOS_AGREEMENT"
12042	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12043	//   "RESOURCE_NOT_DELETED"
12044	//   "SCHEMA_VALIDATION_IGNORED"
12045	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12046	//   "UNDECLARED_PROPERTIES"
12047	//   "UNREACHABLE"
12048	Code string `json:"code,omitempty"`
12049
12050	// Data: [Output Only] Metadata about this warning in key: value format.
12051	// For example:
12052	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12053	Data []*InstanceListWarningData `json:"data,omitempty"`
12054
12055	// Message: [Output Only] A human-readable description of the warning
12056	// code.
12057	Message string `json:"message,omitempty"`
12058
12059	// ForceSendFields is a list of field names (e.g. "Code") to
12060	// unconditionally include in API requests. By default, fields with
12061	// empty values are omitted from API requests. However, any non-pointer,
12062	// non-interface field appearing in ForceSendFields will be sent to the
12063	// server regardless of whether the field is empty or not. This may be
12064	// used to include empty fields in Patch requests.
12065	ForceSendFields []string `json:"-"`
12066
12067	// NullFields is a list of field names (e.g. "Code") to include in API
12068	// requests with the JSON null value. By default, fields with empty
12069	// values are omitted from API requests. However, any field with an
12070	// empty value appearing in NullFields will be sent to the server as
12071	// null. It is an error if a field in this list has a non-empty value.
12072	// This may be used to include null fields in Patch requests.
12073	NullFields []string `json:"-"`
12074}
12075
12076func (s *InstanceListWarning) MarshalJSON() ([]byte, error) {
12077	type NoMethod InstanceListWarning
12078	raw := NoMethod(*s)
12079	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12080}
12081
12082type InstanceListWarningData struct {
12083	// Key: [Output Only] A key that provides more detail on the warning
12084	// being returned. For example, for warnings where there are no results
12085	// in a list request for a particular zone, this key might be scope and
12086	// the key value might be the zone name. Other examples might be a key
12087	// indicating a deprecated resource and a suggested replacement, or a
12088	// warning about invalid network settings (for example, if an instance
12089	// attempts to perform IP forwarding but is not enabled for IP
12090	// forwarding).
12091	Key string `json:"key,omitempty"`
12092
12093	// Value: [Output Only] A warning data value corresponding to the key.
12094	Value string `json:"value,omitempty"`
12095
12096	// ForceSendFields is a list of field names (e.g. "Key") to
12097	// unconditionally include in API requests. By default, fields with
12098	// empty values are omitted from API requests. However, any non-pointer,
12099	// non-interface field appearing in ForceSendFields will be sent to the
12100	// server regardless of whether the field is empty or not. This may be
12101	// used to include empty fields in Patch requests.
12102	ForceSendFields []string `json:"-"`
12103
12104	// NullFields is a list of field names (e.g. "Key") to include in API
12105	// requests with the JSON null value. By default, fields with empty
12106	// values are omitted from API requests. However, any field with an
12107	// empty value appearing in NullFields will be sent to the server as
12108	// null. It is an error if a field in this list has a non-empty value.
12109	// This may be used to include null fields in Patch requests.
12110	NullFields []string `json:"-"`
12111}
12112
12113func (s *InstanceListWarningData) MarshalJSON() ([]byte, error) {
12114	type NoMethod InstanceListWarningData
12115	raw := NoMethod(*s)
12116	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12117}
12118
12119// InstanceListReferrers: Contains a list of instance referrers.
12120type InstanceListReferrers struct {
12121	// Id: [Output Only] Unique identifier for the resource; defined by the
12122	// server.
12123	Id string `json:"id,omitempty"`
12124
12125	// Items: A list of Reference resources.
12126	Items []*Reference `json:"items,omitempty"`
12127
12128	// Kind: [Output Only] Type of resource. Always
12129	// compute#instanceListReferrers for lists of Instance referrers.
12130	Kind string `json:"kind,omitempty"`
12131
12132	// NextPageToken: [Output Only] This token allows you to get the next
12133	// page of results for list requests. If the number of results is larger
12134	// than maxResults, use the nextPageToken as a value for the query
12135	// parameter pageToken in the next list request. Subsequent list
12136	// requests will have their own nextPageToken to continue paging through
12137	// the results.
12138	NextPageToken string `json:"nextPageToken,omitempty"`
12139
12140	// SelfLink: [Output Only] Server-defined URL for this resource.
12141	SelfLink string `json:"selfLink,omitempty"`
12142
12143	// Warning: [Output Only] Informational warning message.
12144	Warning *InstanceListReferrersWarning `json:"warning,omitempty"`
12145
12146	// ServerResponse contains the HTTP response code and headers from the
12147	// server.
12148	googleapi.ServerResponse `json:"-"`
12149
12150	// ForceSendFields is a list of field names (e.g. "Id") to
12151	// unconditionally include in API requests. By default, fields with
12152	// empty values are omitted from API requests. However, any non-pointer,
12153	// non-interface field appearing in ForceSendFields will be sent to the
12154	// server regardless of whether the field is empty or not. This may be
12155	// used to include empty fields in Patch requests.
12156	ForceSendFields []string `json:"-"`
12157
12158	// NullFields is a list of field names (e.g. "Id") to include in API
12159	// requests with the JSON null value. By default, fields with empty
12160	// values are omitted from API requests. However, any field with an
12161	// empty value appearing in NullFields will be sent to the server as
12162	// null. It is an error if a field in this list has a non-empty value.
12163	// This may be used to include null fields in Patch requests.
12164	NullFields []string `json:"-"`
12165}
12166
12167func (s *InstanceListReferrers) MarshalJSON() ([]byte, error) {
12168	type NoMethod InstanceListReferrers
12169	raw := NoMethod(*s)
12170	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12171}
12172
12173// InstanceListReferrersWarning: [Output Only] Informational warning
12174// message.
12175type InstanceListReferrersWarning struct {
12176	// Code: [Output Only] A warning code, if applicable. For example,
12177	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12178	// the response.
12179	//
12180	// Possible values:
12181	//   "CLEANUP_FAILED"
12182	//   "DEPRECATED_RESOURCE_USED"
12183	//   "DEPRECATED_TYPE_USED"
12184	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12185	//   "EXPERIMENTAL_TYPE_USED"
12186	//   "EXTERNAL_API_WARNING"
12187	//   "FIELD_VALUE_OVERRIDEN"
12188	//   "INJECTED_KERNELS_DEPRECATED"
12189	//   "MISSING_TYPE_DEPENDENCY"
12190	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12191	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12192	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12193	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12194	//   "NEXT_HOP_NOT_RUNNING"
12195	//   "NOT_CRITICAL_ERROR"
12196	//   "NO_RESULTS_ON_PAGE"
12197	//   "REQUIRED_TOS_AGREEMENT"
12198	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12199	//   "RESOURCE_NOT_DELETED"
12200	//   "SCHEMA_VALIDATION_IGNORED"
12201	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12202	//   "UNDECLARED_PROPERTIES"
12203	//   "UNREACHABLE"
12204	Code string `json:"code,omitempty"`
12205
12206	// Data: [Output Only] Metadata about this warning in key: value format.
12207	// For example:
12208	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12209	Data []*InstanceListReferrersWarningData `json:"data,omitempty"`
12210
12211	// Message: [Output Only] A human-readable description of the warning
12212	// code.
12213	Message string `json:"message,omitempty"`
12214
12215	// ForceSendFields is a list of field names (e.g. "Code") to
12216	// unconditionally include in API requests. By default, fields with
12217	// empty values are omitted from API requests. However, any non-pointer,
12218	// non-interface field appearing in ForceSendFields will be sent to the
12219	// server regardless of whether the field is empty or not. This may be
12220	// used to include empty fields in Patch requests.
12221	ForceSendFields []string `json:"-"`
12222
12223	// NullFields is a list of field names (e.g. "Code") to include in API
12224	// requests with the JSON null value. By default, fields with empty
12225	// values are omitted from API requests. However, any field with an
12226	// empty value appearing in NullFields will be sent to the server as
12227	// null. It is an error if a field in this list has a non-empty value.
12228	// This may be used to include null fields in Patch requests.
12229	NullFields []string `json:"-"`
12230}
12231
12232func (s *InstanceListReferrersWarning) MarshalJSON() ([]byte, error) {
12233	type NoMethod InstanceListReferrersWarning
12234	raw := NoMethod(*s)
12235	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12236}
12237
12238type InstanceListReferrersWarningData struct {
12239	// Key: [Output Only] A key that provides more detail on the warning
12240	// being returned. For example, for warnings where there are no results
12241	// in a list request for a particular zone, this key might be scope and
12242	// the key value might be the zone name. Other examples might be a key
12243	// indicating a deprecated resource and a suggested replacement, or a
12244	// warning about invalid network settings (for example, if an instance
12245	// attempts to perform IP forwarding but is not enabled for IP
12246	// forwarding).
12247	Key string `json:"key,omitempty"`
12248
12249	// Value: [Output Only] A warning data value corresponding to the key.
12250	Value string `json:"value,omitempty"`
12251
12252	// ForceSendFields is a list of field names (e.g. "Key") to
12253	// unconditionally include in API requests. By default, fields with
12254	// empty values are omitted from API requests. However, any non-pointer,
12255	// non-interface field appearing in ForceSendFields will be sent to the
12256	// server regardless of whether the field is empty or not. This may be
12257	// used to include empty fields in Patch requests.
12258	ForceSendFields []string `json:"-"`
12259
12260	// NullFields is a list of field names (e.g. "Key") to include in API
12261	// requests with the JSON null value. By default, fields with empty
12262	// values are omitted from API requests. However, any field with an
12263	// empty value appearing in NullFields will be sent to the server as
12264	// null. It is an error if a field in this list has a non-empty value.
12265	// This may be used to include null fields in Patch requests.
12266	NullFields []string `json:"-"`
12267}
12268
12269func (s *InstanceListReferrersWarningData) MarshalJSON() ([]byte, error) {
12270	type NoMethod InstanceListReferrersWarningData
12271	raw := NoMethod(*s)
12272	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12273}
12274
12275type InstanceMoveRequest struct {
12276	// DestinationZone: The URL of the destination zone to move the
12277	// instance. This can be a full or partial URL. For example, the
12278	// following are all valid URLs to a zone:
12279	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
12280	//
12281	// - projects/project/zones/zone
12282	// - zones/zone
12283	DestinationZone string `json:"destinationZone,omitempty"`
12284
12285	// TargetInstance: The URL of the target instance to move. This can be a
12286	// full or partial URL. For example, the following are all valid URLs to
12287	// an instance:
12288	// -
12289	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
12290	// - projects/project/zones/zone/instances/instance
12291	// - zones/zone/instances/instance
12292	TargetInstance string `json:"targetInstance,omitempty"`
12293
12294	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
12295	// unconditionally include in API requests. By default, fields with
12296	// empty values are omitted from API requests. However, any non-pointer,
12297	// non-interface field appearing in ForceSendFields will be sent to the
12298	// server regardless of whether the field is empty or not. This may be
12299	// used to include empty fields in Patch requests.
12300	ForceSendFields []string `json:"-"`
12301
12302	// NullFields is a list of field names (e.g. "DestinationZone") to
12303	// include in API requests with the JSON null value. By default, fields
12304	// with empty values are omitted from API requests. However, any field
12305	// with an empty value appearing in NullFields will be sent to the
12306	// server as null. It is an error if a field in this list has a
12307	// non-empty value. This may be used to include null fields in Patch
12308	// requests.
12309	NullFields []string `json:"-"`
12310}
12311
12312func (s *InstanceMoveRequest) MarshalJSON() ([]byte, error) {
12313	type NoMethod InstanceMoveRequest
12314	raw := NoMethod(*s)
12315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12316}
12317
12318type InstanceProperties struct {
12319	// CanIpForward: Enables instances created based on this template to
12320	// send packets with source IP addresses other than their own and
12321	// receive packets with destination IP addresses other than their own.
12322	// If these instances will be used as an IP gateway or it will be set as
12323	// the next-hop in a Route resource, specify true. If unsure, leave this
12324	// set to false. See the Enable IP forwarding documentation for more
12325	// information.
12326	CanIpForward bool `json:"canIpForward,omitempty"`
12327
12328	// Description: An optional text description for the instances that are
12329	// created from this instance template.
12330	Description string `json:"description,omitempty"`
12331
12332	// Disks: An array of disks that are associated with the instances that
12333	// are created from this template.
12334	Disks []*AttachedDisk `json:"disks,omitempty"`
12335
12336	// GuestAccelerators: A list of guest accelerator cards' type and count
12337	// to use for instances created from the instance template.
12338	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
12339
12340	// Labels: Labels to apply to instances that are created from this
12341	// template.
12342	Labels map[string]string `json:"labels,omitempty"`
12343
12344	// MachineType: The machine type to use for instances that are created
12345	// from this template.
12346	MachineType string `json:"machineType,omitempty"`
12347
12348	// Metadata: The metadata key/value pairs to assign to instances that
12349	// are created from this template. These pairs can consist of custom
12350	// metadata or predefined keys. See Project and instance metadata for
12351	// more information.
12352	Metadata *Metadata `json:"metadata,omitempty"`
12353
12354	// MinCpuPlatform: Minimum cpu/platform to be used by this instance. The
12355	// instance may be scheduled on the specified or newer cpu/platform.
12356	// Applicable values are the friendly names of CPU platforms, such as
12357	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
12358	// Bridge". For more information, read Specifying a Minimum CPU
12359	// Platform.
12360	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
12361
12362	// NetworkInterfaces: An array of network access configurations for this
12363	// interface.
12364	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
12365
12366	// Scheduling: Specifies the scheduling options for the instances that
12367	// are created from this template.
12368	Scheduling *Scheduling `json:"scheduling,omitempty"`
12369
12370	// ServiceAccounts: A list of service accounts with specified scopes.
12371	// Access tokens for these service accounts are available to the
12372	// instances that are created from this template. Use metadata queries
12373	// to obtain the access tokens for these instances.
12374	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
12375
12376	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
12377
12378	// Tags: A list of tags to apply to the instances that are created from
12379	// this template. The tags identify valid sources or targets for network
12380	// firewalls. The setTags method can modify this list of tags. Each tag
12381	// within the list must comply with RFC1035.
12382	Tags *Tags `json:"tags,omitempty"`
12383
12384	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
12385	// unconditionally include in API requests. By default, fields with
12386	// empty values are omitted from API requests. However, any non-pointer,
12387	// non-interface field appearing in ForceSendFields will be sent to the
12388	// server regardless of whether the field is empty or not. This may be
12389	// used to include empty fields in Patch requests.
12390	ForceSendFields []string `json:"-"`
12391
12392	// NullFields is a list of field names (e.g. "CanIpForward") to include
12393	// in API requests with the JSON null value. By default, fields with
12394	// empty values are omitted from API requests. However, any field with
12395	// an empty value appearing in NullFields will be sent to the server as
12396	// null. It is an error if a field in this list has a non-empty value.
12397	// This may be used to include null fields in Patch requests.
12398	NullFields []string `json:"-"`
12399}
12400
12401func (s *InstanceProperties) MarshalJSON() ([]byte, error) {
12402	type NoMethod InstanceProperties
12403	raw := NoMethod(*s)
12404	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12405}
12406
12407type InstanceReference struct {
12408	// Instance: The URL for a specific instance.
12409	Instance string `json:"instance,omitempty"`
12410
12411	// ForceSendFields is a list of field names (e.g. "Instance") to
12412	// unconditionally include in API requests. By default, fields with
12413	// empty values are omitted from API requests. However, any non-pointer,
12414	// non-interface field appearing in ForceSendFields will be sent to the
12415	// server regardless of whether the field is empty or not. This may be
12416	// used to include empty fields in Patch requests.
12417	ForceSendFields []string `json:"-"`
12418
12419	// NullFields is a list of field names (e.g. "Instance") to include in
12420	// API requests with the JSON null value. By default, fields with empty
12421	// values are omitted from API requests. However, any field with an
12422	// empty value appearing in NullFields will be sent to the server as
12423	// null. It is an error if a field in this list has a non-empty value.
12424	// This may be used to include null fields in Patch requests.
12425	NullFields []string `json:"-"`
12426}
12427
12428func (s *InstanceReference) MarshalJSON() ([]byte, error) {
12429	type NoMethod InstanceReference
12430	raw := NoMethod(*s)
12431	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12432}
12433
12434// InstanceTemplate: An Instance Template resource. (== resource_for
12435// beta.instanceTemplates ==) (== resource_for v1.instanceTemplates ==)
12436type InstanceTemplate struct {
12437	// CreationTimestamp: [Output Only] The creation timestamp for this
12438	// instance template in RFC3339 text format.
12439	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12440
12441	// Description: An optional description of this resource. Provide this
12442	// property when you create the resource.
12443	Description string `json:"description,omitempty"`
12444
12445	// Id: [Output Only] A unique identifier for this instance template. The
12446	// server defines this identifier.
12447	Id uint64 `json:"id,omitempty,string"`
12448
12449	// Kind: [Output Only] The resource type, which is always
12450	// compute#instanceTemplate for instance templates.
12451	Kind string `json:"kind,omitempty"`
12452
12453	// Name: Name of the resource; provided by the client when the resource
12454	// is created. The name must be 1-63 characters long, and comply with
12455	// RFC1035. Specifically, the name must be 1-63 characters long and
12456	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
12457	// the first character must be a lowercase letter, and all following
12458	// characters must be a dash, lowercase letter, or digit, except the
12459	// last character, which cannot be a dash.
12460	Name string `json:"name,omitempty"`
12461
12462	// Properties: The instance properties for this instance template.
12463	Properties *InstanceProperties `json:"properties,omitempty"`
12464
12465	// SelfLink: [Output Only] The URL for this instance template. The
12466	// server defines this URL.
12467	SelfLink string `json:"selfLink,omitempty"`
12468
12469	// SourceInstance: The source instance used to create the template. You
12470	// can provide this as a partial or full URL to the resource. For
12471	// example, the following are valid values:
12472	// -
12473	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
12474	// - projects/project/zones/zone/instances/instance
12475	SourceInstance string `json:"sourceInstance,omitempty"`
12476
12477	// SourceInstanceParams: The source instance params to use to create
12478	// this instance template.
12479	SourceInstanceParams *SourceInstanceParams `json:"sourceInstanceParams,omitempty"`
12480
12481	// ServerResponse contains the HTTP response code and headers from the
12482	// server.
12483	googleapi.ServerResponse `json:"-"`
12484
12485	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
12486	// to unconditionally include in API requests. By default, fields with
12487	// empty values are omitted from API requests. However, any non-pointer,
12488	// non-interface field appearing in ForceSendFields will be sent to the
12489	// server regardless of whether the field is empty or not. This may be
12490	// used to include empty fields in Patch requests.
12491	ForceSendFields []string `json:"-"`
12492
12493	// NullFields is a list of field names (e.g. "CreationTimestamp") to
12494	// include in API requests with the JSON null value. By default, fields
12495	// with empty values are omitted from API requests. However, any field
12496	// with an empty value appearing in NullFields will be sent to the
12497	// server as null. It is an error if a field in this list has a
12498	// non-empty value. This may be used to include null fields in Patch
12499	// requests.
12500	NullFields []string `json:"-"`
12501}
12502
12503func (s *InstanceTemplate) MarshalJSON() ([]byte, error) {
12504	type NoMethod InstanceTemplate
12505	raw := NoMethod(*s)
12506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12507}
12508
12509// InstanceTemplateList: A list of instance templates.
12510type InstanceTemplateList struct {
12511	// Id: [Output Only] Unique identifier for the resource; defined by the
12512	// server.
12513	Id string `json:"id,omitempty"`
12514
12515	// Items: A list of InstanceTemplate resources.
12516	Items []*InstanceTemplate `json:"items,omitempty"`
12517
12518	// Kind: [Output Only] The resource type, which is always
12519	// compute#instanceTemplatesListResponse for instance template lists.
12520	Kind string `json:"kind,omitempty"`
12521
12522	// NextPageToken: [Output Only] This token allows you to get the next
12523	// page of results for list requests. If the number of results is larger
12524	// than maxResults, use the nextPageToken as a value for the query
12525	// parameter pageToken in the next list request. Subsequent list
12526	// requests will have their own nextPageToken to continue paging through
12527	// the results.
12528	NextPageToken string `json:"nextPageToken,omitempty"`
12529
12530	// SelfLink: [Output Only] Server-defined URL for this resource.
12531	SelfLink string `json:"selfLink,omitempty"`
12532
12533	// Warning: [Output Only] Informational warning message.
12534	Warning *InstanceTemplateListWarning `json:"warning,omitempty"`
12535
12536	// ServerResponse contains the HTTP response code and headers from the
12537	// server.
12538	googleapi.ServerResponse `json:"-"`
12539
12540	// ForceSendFields is a list of field names (e.g. "Id") to
12541	// unconditionally include in API requests. By default, fields with
12542	// empty values are omitted from API requests. However, any non-pointer,
12543	// non-interface field appearing in ForceSendFields will be sent to the
12544	// server regardless of whether the field is empty or not. This may be
12545	// used to include empty fields in Patch requests.
12546	ForceSendFields []string `json:"-"`
12547
12548	// NullFields is a list of field names (e.g. "Id") to include in API
12549	// requests with the JSON null value. By default, fields with empty
12550	// values are omitted from API requests. However, any field with an
12551	// empty value appearing in NullFields will be sent to the server as
12552	// null. It is an error if a field in this list has a non-empty value.
12553	// This may be used to include null fields in Patch requests.
12554	NullFields []string `json:"-"`
12555}
12556
12557func (s *InstanceTemplateList) MarshalJSON() ([]byte, error) {
12558	type NoMethod InstanceTemplateList
12559	raw := NoMethod(*s)
12560	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12561}
12562
12563// InstanceTemplateListWarning: [Output Only] Informational warning
12564// message.
12565type InstanceTemplateListWarning struct {
12566	// Code: [Output Only] A warning code, if applicable. For example,
12567	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12568	// the response.
12569	//
12570	// Possible values:
12571	//   "CLEANUP_FAILED"
12572	//   "DEPRECATED_RESOURCE_USED"
12573	//   "DEPRECATED_TYPE_USED"
12574	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12575	//   "EXPERIMENTAL_TYPE_USED"
12576	//   "EXTERNAL_API_WARNING"
12577	//   "FIELD_VALUE_OVERRIDEN"
12578	//   "INJECTED_KERNELS_DEPRECATED"
12579	//   "MISSING_TYPE_DEPENDENCY"
12580	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12581	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12582	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12583	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12584	//   "NEXT_HOP_NOT_RUNNING"
12585	//   "NOT_CRITICAL_ERROR"
12586	//   "NO_RESULTS_ON_PAGE"
12587	//   "REQUIRED_TOS_AGREEMENT"
12588	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12589	//   "RESOURCE_NOT_DELETED"
12590	//   "SCHEMA_VALIDATION_IGNORED"
12591	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12592	//   "UNDECLARED_PROPERTIES"
12593	//   "UNREACHABLE"
12594	Code string `json:"code,omitempty"`
12595
12596	// Data: [Output Only] Metadata about this warning in key: value format.
12597	// For example:
12598	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12599	Data []*InstanceTemplateListWarningData `json:"data,omitempty"`
12600
12601	// Message: [Output Only] A human-readable description of the warning
12602	// code.
12603	Message string `json:"message,omitempty"`
12604
12605	// ForceSendFields is a list of field names (e.g. "Code") to
12606	// unconditionally include in API requests. By default, fields with
12607	// empty values are omitted from API requests. However, any non-pointer,
12608	// non-interface field appearing in ForceSendFields will be sent to the
12609	// server regardless of whether the field is empty or not. This may be
12610	// used to include empty fields in Patch requests.
12611	ForceSendFields []string `json:"-"`
12612
12613	// NullFields is a list of field names (e.g. "Code") to include in API
12614	// requests with the JSON null value. By default, fields with empty
12615	// values are omitted from API requests. However, any field with an
12616	// empty value appearing in NullFields will be sent to the server as
12617	// null. It is an error if a field in this list has a non-empty value.
12618	// This may be used to include null fields in Patch requests.
12619	NullFields []string `json:"-"`
12620}
12621
12622func (s *InstanceTemplateListWarning) MarshalJSON() ([]byte, error) {
12623	type NoMethod InstanceTemplateListWarning
12624	raw := NoMethod(*s)
12625	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12626}
12627
12628type InstanceTemplateListWarningData struct {
12629	// Key: [Output Only] A key that provides more detail on the warning
12630	// being returned. For example, for warnings where there are no results
12631	// in a list request for a particular zone, this key might be scope and
12632	// the key value might be the zone name. Other examples might be a key
12633	// indicating a deprecated resource and a suggested replacement, or a
12634	// warning about invalid network settings (for example, if an instance
12635	// attempts to perform IP forwarding but is not enabled for IP
12636	// forwarding).
12637	Key string `json:"key,omitempty"`
12638
12639	// Value: [Output Only] A warning data value corresponding to the key.
12640	Value string `json:"value,omitempty"`
12641
12642	// ForceSendFields is a list of field names (e.g. "Key") to
12643	// unconditionally include in API requests. By default, fields with
12644	// empty values are omitted from API requests. However, any non-pointer,
12645	// non-interface field appearing in ForceSendFields will be sent to the
12646	// server regardless of whether the field is empty or not. This may be
12647	// used to include empty fields in Patch requests.
12648	ForceSendFields []string `json:"-"`
12649
12650	// NullFields is a list of field names (e.g. "Key") to include in API
12651	// requests with the JSON null value. By default, fields with empty
12652	// values are omitted from API requests. However, any field with an
12653	// empty value appearing in NullFields will be sent to the server as
12654	// null. It is an error if a field in this list has a non-empty value.
12655	// This may be used to include null fields in Patch requests.
12656	NullFields []string `json:"-"`
12657}
12658
12659func (s *InstanceTemplateListWarningData) MarshalJSON() ([]byte, error) {
12660	type NoMethod InstanceTemplateListWarningData
12661	raw := NoMethod(*s)
12662	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12663}
12664
12665type InstanceWithNamedPorts struct {
12666	// Instance: [Output Only] The URL of the instance.
12667	Instance string `json:"instance,omitempty"`
12668
12669	// NamedPorts: [Output Only] The named ports that belong to this
12670	// instance group.
12671	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
12672
12673	// Status: [Output Only] The status of the instance.
12674	//
12675	// Possible values:
12676	//   "PROVISIONING"
12677	//   "REPAIRING"
12678	//   "RUNNING"
12679	//   "STAGING"
12680	//   "STOPPED"
12681	//   "STOPPING"
12682	//   "SUSPENDED"
12683	//   "SUSPENDING"
12684	//   "TERMINATED"
12685	Status string `json:"status,omitempty"`
12686
12687	// ForceSendFields is a list of field names (e.g. "Instance") to
12688	// unconditionally include in API requests. By default, fields with
12689	// empty values are omitted from API requests. However, any non-pointer,
12690	// non-interface field appearing in ForceSendFields will be sent to the
12691	// server regardless of whether the field is empty or not. This may be
12692	// used to include empty fields in Patch requests.
12693	ForceSendFields []string `json:"-"`
12694
12695	// NullFields is a list of field names (e.g. "Instance") to include in
12696	// API requests with the JSON null value. By default, fields with empty
12697	// values are omitted from API requests. However, any field with an
12698	// empty value appearing in NullFields will be sent to the server as
12699	// null. It is an error if a field in this list has a non-empty value.
12700	// This may be used to include null fields in Patch requests.
12701	NullFields []string `json:"-"`
12702}
12703
12704func (s *InstanceWithNamedPorts) MarshalJSON() ([]byte, error) {
12705	type NoMethod InstanceWithNamedPorts
12706	raw := NoMethod(*s)
12707	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12708}
12709
12710type InstancesScopedList struct {
12711	// Instances: [Output Only] A list of instances contained in this scope.
12712	Instances []*Instance `json:"instances,omitempty"`
12713
12714	// Warning: [Output Only] Informational warning which replaces the list
12715	// of instances when the list is empty.
12716	Warning *InstancesScopedListWarning `json:"warning,omitempty"`
12717
12718	// ForceSendFields is a list of field names (e.g. "Instances") to
12719	// unconditionally include in API requests. By default, fields with
12720	// empty values are omitted from API requests. However, any non-pointer,
12721	// non-interface field appearing in ForceSendFields will be sent to the
12722	// server regardless of whether the field is empty or not. This may be
12723	// used to include empty fields in Patch requests.
12724	ForceSendFields []string `json:"-"`
12725
12726	// NullFields is a list of field names (e.g. "Instances") to include in
12727	// API requests with the JSON null value. By default, fields with empty
12728	// values are omitted from API requests. However, any field with an
12729	// empty value appearing in NullFields will be sent to the server as
12730	// null. It is an error if a field in this list has a non-empty value.
12731	// This may be used to include null fields in Patch requests.
12732	NullFields []string `json:"-"`
12733}
12734
12735func (s *InstancesScopedList) MarshalJSON() ([]byte, error) {
12736	type NoMethod InstancesScopedList
12737	raw := NoMethod(*s)
12738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12739}
12740
12741// InstancesScopedListWarning: [Output Only] Informational warning which
12742// replaces the list of instances when the list is empty.
12743type InstancesScopedListWarning struct {
12744	// Code: [Output Only] A warning code, if applicable. For example,
12745	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12746	// the response.
12747	//
12748	// Possible values:
12749	//   "CLEANUP_FAILED"
12750	//   "DEPRECATED_RESOURCE_USED"
12751	//   "DEPRECATED_TYPE_USED"
12752	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12753	//   "EXPERIMENTAL_TYPE_USED"
12754	//   "EXTERNAL_API_WARNING"
12755	//   "FIELD_VALUE_OVERRIDEN"
12756	//   "INJECTED_KERNELS_DEPRECATED"
12757	//   "MISSING_TYPE_DEPENDENCY"
12758	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12759	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12760	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12761	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12762	//   "NEXT_HOP_NOT_RUNNING"
12763	//   "NOT_CRITICAL_ERROR"
12764	//   "NO_RESULTS_ON_PAGE"
12765	//   "REQUIRED_TOS_AGREEMENT"
12766	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12767	//   "RESOURCE_NOT_DELETED"
12768	//   "SCHEMA_VALIDATION_IGNORED"
12769	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12770	//   "UNDECLARED_PROPERTIES"
12771	//   "UNREACHABLE"
12772	Code string `json:"code,omitempty"`
12773
12774	// Data: [Output Only] Metadata about this warning in key: value format.
12775	// For example:
12776	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12777	Data []*InstancesScopedListWarningData `json:"data,omitempty"`
12778
12779	// Message: [Output Only] A human-readable description of the warning
12780	// code.
12781	Message string `json:"message,omitempty"`
12782
12783	// ForceSendFields is a list of field names (e.g. "Code") to
12784	// unconditionally include in API requests. By default, fields with
12785	// empty values are omitted from API requests. However, any non-pointer,
12786	// non-interface field appearing in ForceSendFields will be sent to the
12787	// server regardless of whether the field is empty or not. This may be
12788	// used to include empty fields in Patch requests.
12789	ForceSendFields []string `json:"-"`
12790
12791	// NullFields is a list of field names (e.g. "Code") to include in API
12792	// requests with the JSON null value. By default, fields with empty
12793	// values are omitted from API requests. However, any field with an
12794	// empty value appearing in NullFields will be sent to the server as
12795	// null. It is an error if a field in this list has a non-empty value.
12796	// This may be used to include null fields in Patch requests.
12797	NullFields []string `json:"-"`
12798}
12799
12800func (s *InstancesScopedListWarning) MarshalJSON() ([]byte, error) {
12801	type NoMethod InstancesScopedListWarning
12802	raw := NoMethod(*s)
12803	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12804}
12805
12806type InstancesScopedListWarningData struct {
12807	// Key: [Output Only] A key that provides more detail on the warning
12808	// being returned. For example, for warnings where there are no results
12809	// in a list request for a particular zone, this key might be scope and
12810	// the key value might be the zone name. Other examples might be a key
12811	// indicating a deprecated resource and a suggested replacement, or a
12812	// warning about invalid network settings (for example, if an instance
12813	// attempts to perform IP forwarding but is not enabled for IP
12814	// forwarding).
12815	Key string `json:"key,omitempty"`
12816
12817	// Value: [Output Only] A warning data value corresponding to the key.
12818	Value string `json:"value,omitempty"`
12819
12820	// ForceSendFields is a list of field names (e.g. "Key") to
12821	// unconditionally include in API requests. By default, fields with
12822	// empty values are omitted from API requests. However, any non-pointer,
12823	// non-interface field appearing in ForceSendFields will be sent to the
12824	// server regardless of whether the field is empty or not. This may be
12825	// used to include empty fields in Patch requests.
12826	ForceSendFields []string `json:"-"`
12827
12828	// NullFields is a list of field names (e.g. "Key") to include in API
12829	// requests with the JSON null value. By default, fields with empty
12830	// values are omitted from API requests. However, any field with an
12831	// empty value appearing in NullFields will be sent to the server as
12832	// null. It is an error if a field in this list has a non-empty value.
12833	// This may be used to include null fields in Patch requests.
12834	NullFields []string `json:"-"`
12835}
12836
12837func (s *InstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
12838	type NoMethod InstancesScopedListWarningData
12839	raw := NoMethod(*s)
12840	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12841}
12842
12843type InstancesSetLabelsRequest struct {
12844	// LabelFingerprint: Fingerprint of the previous set of labels for this
12845	// resource, used to prevent conflicts. Provide the latest fingerprint
12846	// value when making a request to add or change labels.
12847	LabelFingerprint string `json:"labelFingerprint,omitempty"`
12848
12849	Labels map[string]string `json:"labels,omitempty"`
12850
12851	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
12852	// unconditionally include in API requests. By default, fields with
12853	// empty values are omitted from API requests. However, any non-pointer,
12854	// non-interface field appearing in ForceSendFields will be sent to the
12855	// server regardless of whether the field is empty or not. This may be
12856	// used to include empty fields in Patch requests.
12857	ForceSendFields []string `json:"-"`
12858
12859	// NullFields is a list of field names (e.g. "LabelFingerprint") to
12860	// include in API requests with the JSON null value. By default, fields
12861	// with empty values are omitted from API requests. However, any field
12862	// with an empty value appearing in NullFields will be sent to the
12863	// server as null. It is an error if a field in this list has a
12864	// non-empty value. This may be used to include null fields in Patch
12865	// requests.
12866	NullFields []string `json:"-"`
12867}
12868
12869func (s *InstancesSetLabelsRequest) MarshalJSON() ([]byte, error) {
12870	type NoMethod InstancesSetLabelsRequest
12871	raw := NoMethod(*s)
12872	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12873}
12874
12875type InstancesSetMachineResourcesRequest struct {
12876	// GuestAccelerators: A list of the type and count of accelerator cards
12877	// attached to the instance.
12878	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
12879
12880	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
12881	// to unconditionally include in API requests. By default, fields with
12882	// empty values are omitted from API requests. However, any non-pointer,
12883	// non-interface field appearing in ForceSendFields will be sent to the
12884	// server regardless of whether the field is empty or not. This may be
12885	// used to include empty fields in Patch requests.
12886	ForceSendFields []string `json:"-"`
12887
12888	// NullFields is a list of field names (e.g. "GuestAccelerators") to
12889	// include in API requests with the JSON null value. By default, fields
12890	// with empty values are omitted from API requests. However, any field
12891	// with an empty value appearing in NullFields will be sent to the
12892	// server as null. It is an error if a field in this list has a
12893	// non-empty value. This may be used to include null fields in Patch
12894	// requests.
12895	NullFields []string `json:"-"`
12896}
12897
12898func (s *InstancesSetMachineResourcesRequest) MarshalJSON() ([]byte, error) {
12899	type NoMethod InstancesSetMachineResourcesRequest
12900	raw := NoMethod(*s)
12901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12902}
12903
12904type InstancesSetMachineTypeRequest struct {
12905	// MachineType: Full or partial URL of the machine type resource. See
12906	// Machine Types for a full list of machine types. For example:
12907	// zones/us-central1-f/machineTypes/n1-standard-1
12908	MachineType string `json:"machineType,omitempty"`
12909
12910	// ForceSendFields is a list of field names (e.g. "MachineType") to
12911	// unconditionally include in API requests. By default, fields with
12912	// empty values are omitted from API requests. However, any non-pointer,
12913	// non-interface field appearing in ForceSendFields will be sent to the
12914	// server regardless of whether the field is empty or not. This may be
12915	// used to include empty fields in Patch requests.
12916	ForceSendFields []string `json:"-"`
12917
12918	// NullFields is a list of field names (e.g. "MachineType") to include
12919	// in API requests with the JSON null value. By default, fields with
12920	// empty values are omitted from API requests. However, any field with
12921	// an empty value appearing in NullFields will be sent to the server as
12922	// null. It is an error if a field in this list has a non-empty value.
12923	// This may be used to include null fields in Patch requests.
12924	NullFields []string `json:"-"`
12925}
12926
12927func (s *InstancesSetMachineTypeRequest) MarshalJSON() ([]byte, error) {
12928	type NoMethod InstancesSetMachineTypeRequest
12929	raw := NoMethod(*s)
12930	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12931}
12932
12933type InstancesSetMinCpuPlatformRequest struct {
12934	// MinCpuPlatform: Minimum cpu/platform this instance should be started
12935	// at.
12936	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
12937
12938	// ForceSendFields is a list of field names (e.g. "MinCpuPlatform") to
12939	// unconditionally include in API requests. By default, fields with
12940	// empty values are omitted from API requests. However, any non-pointer,
12941	// non-interface field appearing in ForceSendFields will be sent to the
12942	// server regardless of whether the field is empty or not. This may be
12943	// used to include empty fields in Patch requests.
12944	ForceSendFields []string `json:"-"`
12945
12946	// NullFields is a list of field names (e.g. "MinCpuPlatform") to
12947	// include in API requests with the JSON null value. By default, fields
12948	// with empty values are omitted from API requests. However, any field
12949	// with an empty value appearing in NullFields will be sent to the
12950	// server as null. It is an error if a field in this list has a
12951	// non-empty value. This may be used to include null fields in Patch
12952	// requests.
12953	NullFields []string `json:"-"`
12954}
12955
12956func (s *InstancesSetMinCpuPlatformRequest) MarshalJSON() ([]byte, error) {
12957	type NoMethod InstancesSetMinCpuPlatformRequest
12958	raw := NoMethod(*s)
12959	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12960}
12961
12962type InstancesSetServiceAccountRequest struct {
12963	// Email: Email address of the service account.
12964	Email string `json:"email,omitempty"`
12965
12966	// Scopes: The list of scopes to be made available for this service
12967	// account.
12968	Scopes []string `json:"scopes,omitempty"`
12969
12970	// ForceSendFields is a list of field names (e.g. "Email") to
12971	// unconditionally include in API requests. By default, fields with
12972	// empty values are omitted from API requests. However, any non-pointer,
12973	// non-interface field appearing in ForceSendFields will be sent to the
12974	// server regardless of whether the field is empty or not. This may be
12975	// used to include empty fields in Patch requests.
12976	ForceSendFields []string `json:"-"`
12977
12978	// NullFields is a list of field names (e.g. "Email") to include in API
12979	// requests with the JSON null value. By default, fields with empty
12980	// values are omitted from API requests. However, any field with an
12981	// empty value appearing in NullFields will be sent to the server as
12982	// null. It is an error if a field in this list has a non-empty value.
12983	// This may be used to include null fields in Patch requests.
12984	NullFields []string `json:"-"`
12985}
12986
12987func (s *InstancesSetServiceAccountRequest) MarshalJSON() ([]byte, error) {
12988	type NoMethod InstancesSetServiceAccountRequest
12989	raw := NoMethod(*s)
12990	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12991}
12992
12993type InstancesStartWithEncryptionKeyRequest struct {
12994	// Disks: Array of disks associated with this instance that are
12995	// protected with a customer-supplied encryption key.
12996	//
12997	// In order to start the instance, the disk url and its corresponding
12998	// key must be provided.
12999	//
13000	// If the disk is not protected with a customer-supplied encryption key
13001	// it should not be specified.
13002	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
13003
13004	// ForceSendFields is a list of field names (e.g. "Disks") to
13005	// unconditionally include in API requests. By default, fields with
13006	// empty values are omitted from API requests. However, any non-pointer,
13007	// non-interface field appearing in ForceSendFields will be sent to the
13008	// server regardless of whether the field is empty or not. This may be
13009	// used to include empty fields in Patch requests.
13010	ForceSendFields []string `json:"-"`
13011
13012	// NullFields is a list of field names (e.g. "Disks") to include in API
13013	// requests with the JSON null value. By default, fields with empty
13014	// values are omitted from API requests. However, any field with an
13015	// empty value appearing in NullFields will be sent to the server as
13016	// null. It is an error if a field in this list has a non-empty value.
13017	// This may be used to include null fields in Patch requests.
13018	NullFields []string `json:"-"`
13019}
13020
13021func (s *InstancesStartWithEncryptionKeyRequest) MarshalJSON() ([]byte, error) {
13022	type NoMethod InstancesStartWithEncryptionKeyRequest
13023	raw := NoMethod(*s)
13024	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13025}
13026
13027// Interconnect: Represents an Interconnects resource. The Interconnects
13028// resource is a dedicated connection between Google's network and your
13029// on-premises network. For more information, see the  Dedicated
13030// overview page. (== resource_for v1.interconnects ==) (== resource_for
13031// beta.interconnects ==)
13032type Interconnect struct {
13033	// AdminEnabled: Administrative status of the interconnect. When this is
13034	// set to true, the Interconnect is functional and can carry traffic.
13035	// When set to false, no packets can be carried over the interconnect
13036	// and no BGP routes are exchanged over it. By default, the status is
13037	// set to true.
13038	AdminEnabled bool `json:"adminEnabled,omitempty"`
13039
13040	// CircuitInfos: [Output Only] A list of CircuitInfo objects, that
13041	// describe the individual circuits in this LAG.
13042	CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"`
13043
13044	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
13045	// format.
13046	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13047
13048	// CustomerName: Customer name, to put in the Letter of Authorization as
13049	// the party authorized to request a crossconnect.
13050	CustomerName string `json:"customerName,omitempty"`
13051
13052	// Description: An optional description of this resource. Provide this
13053	// property when you create the resource.
13054	Description string `json:"description,omitempty"`
13055
13056	// ExpectedOutages: [Output Only] A list of outages expected for this
13057	// Interconnect.
13058	ExpectedOutages []*InterconnectOutageNotification `json:"expectedOutages,omitempty"`
13059
13060	// GoogleIpAddress: [Output Only] IP address configured on the Google
13061	// side of the Interconnect link. This can be used only for ping tests.
13062	GoogleIpAddress string `json:"googleIpAddress,omitempty"`
13063
13064	// GoogleReferenceId: [Output Only] Google reference ID to be used when
13065	// raising support tickets with Google or otherwise to debug backend
13066	// connectivity issues.
13067	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
13068
13069	// Id: [Output Only] The unique identifier for the resource. This
13070	// identifier is defined by the server.
13071	Id uint64 `json:"id,omitempty,string"`
13072
13073	// InterconnectAttachments: [Output Only] A list of the URLs of all
13074	// InterconnectAttachments configured to use this Interconnect.
13075	InterconnectAttachments []string `json:"interconnectAttachments,omitempty"`
13076
13077	// InterconnectType: Type of interconnect. Note that "IT_PRIVATE" has
13078	// been deprecated in favor of "DEDICATED"
13079	//
13080	// Possible values:
13081	//   "DEDICATED"
13082	//   "IT_PRIVATE"
13083	//   "PARTNER"
13084	InterconnectType string `json:"interconnectType,omitempty"`
13085
13086	// Kind: [Output Only] Type of the resource. Always compute#interconnect
13087	// for interconnects.
13088	Kind string `json:"kind,omitempty"`
13089
13090	// LinkType: Type of link requested. This field indicates speed of each
13091	// of the links in the bundle, not the entire bundle.
13092	//
13093	// Possible values:
13094	//   "LINK_TYPE_ETHERNET_10G_LR"
13095	LinkType string `json:"linkType,omitempty"`
13096
13097	// Location: URL of the InterconnectLocation object that represents
13098	// where this connection is to be provisioned.
13099	Location string `json:"location,omitempty"`
13100
13101	// Name: Name of the resource. Provided by the client when the resource
13102	// is created. The name must be 1-63 characters long, and comply with
13103	// RFC1035. Specifically, the name must be 1-63 characters long and
13104	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
13105	// the first character must be a lowercase letter, and all following
13106	// characters must be a dash, lowercase letter, or digit, except the
13107	// last character, which cannot be a dash.
13108	Name string `json:"name,omitempty"`
13109
13110	// NocContactEmail: Email address to contact the customer NOC for
13111	// operations and maintenance notifications regarding this Interconnect.
13112	// If specified, this will be used for notifications in addition to all
13113	// other forms described, such as Stackdriver logs alerting and Cloud
13114	// Notifications.
13115	NocContactEmail string `json:"nocContactEmail,omitempty"`
13116
13117	// OperationalStatus: [Output Only] The current status of whether or not
13118	// this Interconnect is functional.
13119	//
13120	// Possible values:
13121	//   "OS_ACTIVE"
13122	//   "OS_UNPROVISIONED"
13123	OperationalStatus string `json:"operationalStatus,omitempty"`
13124
13125	// PeerIpAddress: [Output Only] IP address configured on the customer
13126	// side of the Interconnect link. The customer should configure this IP
13127	// address during turnup when prompted by Google NOC. This can be used
13128	// only for ping tests.
13129	PeerIpAddress string `json:"peerIpAddress,omitempty"`
13130
13131	// ProvisionedLinkCount: [Output Only] Number of links actually
13132	// provisioned in this interconnect.
13133	ProvisionedLinkCount int64 `json:"provisionedLinkCount,omitempty"`
13134
13135	// RequestedLinkCount: Target number of physical links in the link
13136	// bundle, as requested by the customer.
13137	RequestedLinkCount int64 `json:"requestedLinkCount,omitempty"`
13138
13139	// SelfLink: [Output Only] Server-defined URL for the resource.
13140	SelfLink string `json:"selfLink,omitempty"`
13141
13142	// State: [Output Only] The current state of whether or not this
13143	// Interconnect is functional.
13144	//
13145	// Possible values:
13146	//   "ACTIVE"
13147	//   "UNPROVISIONED"
13148	State string `json:"state,omitempty"`
13149
13150	// ServerResponse contains the HTTP response code and headers from the
13151	// server.
13152	googleapi.ServerResponse `json:"-"`
13153
13154	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
13155	// unconditionally include in API requests. By default, fields with
13156	// empty values are omitted from API requests. However, any non-pointer,
13157	// non-interface field appearing in ForceSendFields will be sent to the
13158	// server regardless of whether the field is empty or not. This may be
13159	// used to include empty fields in Patch requests.
13160	ForceSendFields []string `json:"-"`
13161
13162	// NullFields is a list of field names (e.g. "AdminEnabled") to include
13163	// in API requests with the JSON null value. By default, fields with
13164	// empty values are omitted from API requests. However, any field with
13165	// an empty value appearing in NullFields will be sent to the server as
13166	// null. It is an error if a field in this list has a non-empty value.
13167	// This may be used to include null fields in Patch requests.
13168	NullFields []string `json:"-"`
13169}
13170
13171func (s *Interconnect) MarshalJSON() ([]byte, error) {
13172	type NoMethod Interconnect
13173	raw := NoMethod(*s)
13174	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13175}
13176
13177// InterconnectAttachment: Represents an InterconnectAttachment (VLAN
13178// attachment) resource. For more information, see  Creating VLAN
13179// Attachments. (== resource_for beta.interconnectAttachments ==) (==
13180// resource_for v1.interconnectAttachments ==)
13181type InterconnectAttachment struct {
13182	// AdminEnabled: Determines whether this Attachment will carry packets.
13183	// Not present for PARTNER_PROVIDER.
13184	AdminEnabled bool `json:"adminEnabled,omitempty"`
13185
13186	// Bandwidth: Provisioned bandwidth capacity for the
13187	// interconnectAttachment. Can be set by the partner to update the
13188	// customer's provisioned bandwidth. Output only for PARTNER type,
13189	// mutable for PARTNER_PROVIDER and DEDICATED.
13190	//
13191	// Possible values:
13192	//   "BPS_100M"
13193	//   "BPS_10G"
13194	//   "BPS_1G"
13195	//   "BPS_200M"
13196	//   "BPS_2G"
13197	//   "BPS_300M"
13198	//   "BPS_400M"
13199	//   "BPS_500M"
13200	//   "BPS_50M"
13201	//   "BPS_5G"
13202	Bandwidth string `json:"bandwidth,omitempty"`
13203
13204	// CandidateSubnets: Up to 16 candidate prefixes that can be used to
13205	// restrict the allocation of cloudRouterIpAddress and
13206	// customerRouterIpAddress for this attachment. All prefixes must be
13207	// within link-local address space (169.254.0.0/16) and must be /29 or
13208	// shorter (/28, /27, etc). Google will attempt to select an unused /29
13209	// from the supplied candidate prefix(es). The request will fail if all
13210	// possible /29s are in use on Google?s edge. If not supplied, Google
13211	// will randomly select an unused /29 from all of link-local space.
13212	CandidateSubnets []string `json:"candidateSubnets,omitempty"`
13213
13214	// CloudRouterIpAddress: [Output Only] IPv4 address + prefix length to
13215	// be configured on Cloud Router Interface for this interconnect
13216	// attachment.
13217	CloudRouterIpAddress string `json:"cloudRouterIpAddress,omitempty"`
13218
13219	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
13220	// format.
13221	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13222
13223	// CustomerRouterIpAddress: [Output Only] IPv4 address + prefix length
13224	// to be configured on the customer router subinterface for this
13225	// interconnect attachment.
13226	CustomerRouterIpAddress string `json:"customerRouterIpAddress,omitempty"`
13227
13228	// Description: An optional description of this resource.
13229	Description string `json:"description,omitempty"`
13230
13231	// EdgeAvailabilityDomain: Desired availability domain for the
13232	// attachment. Only available for type PARTNER, at creation time. For
13233	// improved reliability, customers should configure a pair of
13234	// attachments with one per availability domain. The selected
13235	// availability domain will be provided to the Partner via the pairing
13236	// key so that the provisioned circuit will lie in the specified domain.
13237	// If not specified, the value will default to AVAILABILITY_DOMAIN_ANY.
13238	//
13239	// Possible values:
13240	//   "AVAILABILITY_DOMAIN_1"
13241	//   "AVAILABILITY_DOMAIN_2"
13242	//   "AVAILABILITY_DOMAIN_ANY"
13243	EdgeAvailabilityDomain string `json:"edgeAvailabilityDomain,omitempty"`
13244
13245	// GoogleReferenceId: [Output Only] Google reference ID, to be used when
13246	// raising support tickets with Google or otherwise to debug backend
13247	// connectivity issues.
13248	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
13249
13250	// Id: [Output Only] The unique identifier for the resource. This
13251	// identifier is defined by the server.
13252	Id uint64 `json:"id,omitempty,string"`
13253
13254	// Interconnect: URL of the underlying Interconnect object that this
13255	// attachment's traffic will traverse through.
13256	Interconnect string `json:"interconnect,omitempty"`
13257
13258	// Kind: [Output Only] Type of the resource. Always
13259	// compute#interconnectAttachment for interconnect attachments.
13260	Kind string `json:"kind,omitempty"`
13261
13262	// Name: Name of the resource. Provided by the client when the resource
13263	// is created. The name must be 1-63 characters long, and comply with
13264	// RFC1035. Specifically, the name must be 1-63 characters long and
13265	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
13266	// the first character must be a lowercase letter, and all following
13267	// characters must be a dash, lowercase letter, or digit, except the
13268	// last character, which cannot be a dash.
13269	Name string `json:"name,omitempty"`
13270
13271	// OperationalStatus: [Output Only] The current status of whether or not
13272	// this interconnect attachment is functional.
13273	//
13274	// Possible values:
13275	//   "OS_ACTIVE"
13276	//   "OS_UNPROVISIONED"
13277	OperationalStatus string `json:"operationalStatus,omitempty"`
13278
13279	// PairingKey: [Output only for type PARTNER. Input only for
13280	// PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier
13281	// of an PARTNER attachment used to initiate provisioning with a
13282	// selected partner. Of the form "XXXXX/region/domain"
13283	PairingKey string `json:"pairingKey,omitempty"`
13284
13285	// PartnerAsn: Optional BGP ASN for the router that should be supplied
13286	// by a layer 3 Partner if they configured BGP on behalf of the
13287	// customer. Output only for PARTNER type, input only for
13288	// PARTNER_PROVIDER, not available for DEDICATED.
13289	PartnerAsn int64 `json:"partnerAsn,omitempty,string"`
13290
13291	// PartnerMetadata: Informational metadata about Partner attachments
13292	// from Partners to display to customers. Output only for for PARTNER
13293	// type, mutable for PARTNER_PROVIDER, not available for DEDICATED.
13294	PartnerMetadata *InterconnectAttachmentPartnerMetadata `json:"partnerMetadata,omitempty"`
13295
13296	// PrivateInterconnectInfo: [Output Only] Information specific to an
13297	// InterconnectAttachment. This property is populated if the
13298	// interconnect that this is attached to is of type DEDICATED.
13299	PrivateInterconnectInfo *InterconnectAttachmentPrivateInfo `json:"privateInterconnectInfo,omitempty"`
13300
13301	// Region: [Output Only] URL of the region where the regional
13302	// interconnect attachment resides. You must specify this field as part
13303	// of the HTTP request URL. It is not settable as a field in the request
13304	// body.
13305	Region string `json:"region,omitempty"`
13306
13307	// Router: URL of the Cloud Router to be used for dynamic routing. This
13308	// router must be in the same region as this InterconnectAttachment. The
13309	// InterconnectAttachment will automatically connect the Interconnect to
13310	// the network & region within which the Cloud Router is configured.
13311	Router string `json:"router,omitempty"`
13312
13313	// SelfLink: [Output Only] Server-defined URL for the resource.
13314	SelfLink string `json:"selfLink,omitempty"`
13315
13316	// State: [Output Only] The current state of this attachment's
13317	// functionality.
13318	//
13319	// Possible values:
13320	//   "ACTIVE"
13321	//   "DEFUNCT"
13322	//   "PARTNER_REQUEST_RECEIVED"
13323	//   "PENDING_CUSTOMER"
13324	//   "PENDING_PARTNER"
13325	//   "STATE_UNSPECIFIED"
13326	//   "UNPROVISIONED"
13327	State string `json:"state,omitempty"`
13328
13329	// Possible values:
13330	//   "DEDICATED"
13331	//   "PARTNER"
13332	//   "PARTNER_PROVIDER"
13333	Type string `json:"type,omitempty"`
13334
13335	// VlanTag8021q: The IEEE 802.1Q VLAN tag for this attachment, in the
13336	// range 2-4094. Only specified at creation time.
13337	VlanTag8021q int64 `json:"vlanTag8021q,omitempty"`
13338
13339	// ServerResponse contains the HTTP response code and headers from the
13340	// server.
13341	googleapi.ServerResponse `json:"-"`
13342
13343	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
13344	// unconditionally include in API requests. By default, fields with
13345	// empty values are omitted from API requests. However, any non-pointer,
13346	// non-interface field appearing in ForceSendFields will be sent to the
13347	// server regardless of whether the field is empty or not. This may be
13348	// used to include empty fields in Patch requests.
13349	ForceSendFields []string `json:"-"`
13350
13351	// NullFields is a list of field names (e.g. "AdminEnabled") to include
13352	// in API requests with the JSON null value. By default, fields with
13353	// empty values are omitted from API requests. However, any field with
13354	// an empty value appearing in NullFields will be sent to the server as
13355	// null. It is an error if a field in this list has a non-empty value.
13356	// This may be used to include null fields in Patch requests.
13357	NullFields []string `json:"-"`
13358}
13359
13360func (s *InterconnectAttachment) MarshalJSON() ([]byte, error) {
13361	type NoMethod InterconnectAttachment
13362	raw := NoMethod(*s)
13363	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13364}
13365
13366type InterconnectAttachmentAggregatedList struct {
13367	// Id: [Output Only] Unique identifier for the resource; defined by the
13368	// server.
13369	Id string `json:"id,omitempty"`
13370
13371	// Items: A list of InterconnectAttachmentsScopedList resources.
13372	Items map[string]InterconnectAttachmentsScopedList `json:"items,omitempty"`
13373
13374	// Kind: [Output Only] Type of resource. Always
13375	// compute#interconnectAttachmentAggregatedList for aggregated lists of
13376	// interconnect attachments.
13377	Kind string `json:"kind,omitempty"`
13378
13379	// NextPageToken: [Output Only] This token allows you to get the next
13380	// page of results for list requests. If the number of results is larger
13381	// than maxResults, use the nextPageToken as a value for the query
13382	// parameter pageToken in the next list request. Subsequent list
13383	// requests will have their own nextPageToken to continue paging through
13384	// the results.
13385	NextPageToken string `json:"nextPageToken,omitempty"`
13386
13387	// SelfLink: [Output Only] Server-defined URL for this resource.
13388	SelfLink string `json:"selfLink,omitempty"`
13389
13390	// Warning: [Output Only] Informational warning message.
13391	Warning *InterconnectAttachmentAggregatedListWarning `json:"warning,omitempty"`
13392
13393	// ServerResponse contains the HTTP response code and headers from the
13394	// server.
13395	googleapi.ServerResponse `json:"-"`
13396
13397	// ForceSendFields is a list of field names (e.g. "Id") to
13398	// unconditionally include in API requests. By default, fields with
13399	// empty values are omitted from API requests. However, any non-pointer,
13400	// non-interface field appearing in ForceSendFields will be sent to the
13401	// server regardless of whether the field is empty or not. This may be
13402	// used to include empty fields in Patch requests.
13403	ForceSendFields []string `json:"-"`
13404
13405	// NullFields is a list of field names (e.g. "Id") to include in API
13406	// requests with the JSON null value. By default, fields with empty
13407	// values are omitted from API requests. However, any field with an
13408	// empty value appearing in NullFields will be sent to the server as
13409	// null. It is an error if a field in this list has a non-empty value.
13410	// This may be used to include null fields in Patch requests.
13411	NullFields []string `json:"-"`
13412}
13413
13414func (s *InterconnectAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
13415	type NoMethod InterconnectAttachmentAggregatedList
13416	raw := NoMethod(*s)
13417	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13418}
13419
13420// InterconnectAttachmentAggregatedListWarning: [Output Only]
13421// Informational warning message.
13422type InterconnectAttachmentAggregatedListWarning struct {
13423	// Code: [Output Only] A warning code, if applicable. For example,
13424	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13425	// the response.
13426	//
13427	// Possible values:
13428	//   "CLEANUP_FAILED"
13429	//   "DEPRECATED_RESOURCE_USED"
13430	//   "DEPRECATED_TYPE_USED"
13431	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13432	//   "EXPERIMENTAL_TYPE_USED"
13433	//   "EXTERNAL_API_WARNING"
13434	//   "FIELD_VALUE_OVERRIDEN"
13435	//   "INJECTED_KERNELS_DEPRECATED"
13436	//   "MISSING_TYPE_DEPENDENCY"
13437	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13438	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13439	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13440	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13441	//   "NEXT_HOP_NOT_RUNNING"
13442	//   "NOT_CRITICAL_ERROR"
13443	//   "NO_RESULTS_ON_PAGE"
13444	//   "REQUIRED_TOS_AGREEMENT"
13445	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13446	//   "RESOURCE_NOT_DELETED"
13447	//   "SCHEMA_VALIDATION_IGNORED"
13448	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13449	//   "UNDECLARED_PROPERTIES"
13450	//   "UNREACHABLE"
13451	Code string `json:"code,omitempty"`
13452
13453	// Data: [Output Only] Metadata about this warning in key: value format.
13454	// For example:
13455	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13456	Data []*InterconnectAttachmentAggregatedListWarningData `json:"data,omitempty"`
13457
13458	// Message: [Output Only] A human-readable description of the warning
13459	// code.
13460	Message string `json:"message,omitempty"`
13461
13462	// ForceSendFields is a list of field names (e.g. "Code") to
13463	// unconditionally include in API requests. By default, fields with
13464	// empty values are omitted from API requests. However, any non-pointer,
13465	// non-interface field appearing in ForceSendFields will be sent to the
13466	// server regardless of whether the field is empty or not. This may be
13467	// used to include empty fields in Patch requests.
13468	ForceSendFields []string `json:"-"`
13469
13470	// NullFields is a list of field names (e.g. "Code") to include in API
13471	// requests with the JSON null value. By default, fields with empty
13472	// values are omitted from API requests. However, any field with an
13473	// empty value appearing in NullFields will be sent to the server as
13474	// null. It is an error if a field in this list has a non-empty value.
13475	// This may be used to include null fields in Patch requests.
13476	NullFields []string `json:"-"`
13477}
13478
13479func (s *InterconnectAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
13480	type NoMethod InterconnectAttachmentAggregatedListWarning
13481	raw := NoMethod(*s)
13482	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13483}
13484
13485type InterconnectAttachmentAggregatedListWarningData struct {
13486	// Key: [Output Only] A key that provides more detail on the warning
13487	// being returned. For example, for warnings where there are no results
13488	// in a list request for a particular zone, this key might be scope and
13489	// the key value might be the zone name. Other examples might be a key
13490	// indicating a deprecated resource and a suggested replacement, or a
13491	// warning about invalid network settings (for example, if an instance
13492	// attempts to perform IP forwarding but is not enabled for IP
13493	// forwarding).
13494	Key string `json:"key,omitempty"`
13495
13496	// Value: [Output Only] A warning data value corresponding to the key.
13497	Value string `json:"value,omitempty"`
13498
13499	// ForceSendFields is a list of field names (e.g. "Key") to
13500	// unconditionally include in API requests. By default, fields with
13501	// empty values are omitted from API requests. However, any non-pointer,
13502	// non-interface field appearing in ForceSendFields will be sent to the
13503	// server regardless of whether the field is empty or not. This may be
13504	// used to include empty fields in Patch requests.
13505	ForceSendFields []string `json:"-"`
13506
13507	// NullFields is a list of field names (e.g. "Key") to include in API
13508	// requests with the JSON null value. By default, fields with empty
13509	// values are omitted from API requests. However, any field with an
13510	// empty value appearing in NullFields will be sent to the server as
13511	// null. It is an error if a field in this list has a non-empty value.
13512	// This may be used to include null fields in Patch requests.
13513	NullFields []string `json:"-"`
13514}
13515
13516func (s *InterconnectAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
13517	type NoMethod InterconnectAttachmentAggregatedListWarningData
13518	raw := NoMethod(*s)
13519	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13520}
13521
13522// InterconnectAttachmentList: Response to the list request, and
13523// contains a list of interconnect attachments.
13524type InterconnectAttachmentList struct {
13525	// Id: [Output Only] Unique identifier for the resource; defined by the
13526	// server.
13527	Id string `json:"id,omitempty"`
13528
13529	// Items: A list of InterconnectAttachment resources.
13530	Items []*InterconnectAttachment `json:"items,omitempty"`
13531
13532	// Kind: [Output Only] Type of resource. Always
13533	// compute#interconnectAttachmentList for lists of interconnect
13534	// attachments.
13535	Kind string `json:"kind,omitempty"`
13536
13537	// NextPageToken: [Output Only] This token allows you to get the next
13538	// page of results for list requests. If the number of results is larger
13539	// than maxResults, use the nextPageToken as a value for the query
13540	// parameter pageToken in the next list request. Subsequent list
13541	// requests will have their own nextPageToken to continue paging through
13542	// the results.
13543	NextPageToken string `json:"nextPageToken,omitempty"`
13544
13545	// SelfLink: [Output Only] Server-defined URL for this resource.
13546	SelfLink string `json:"selfLink,omitempty"`
13547
13548	// Warning: [Output Only] Informational warning message.
13549	Warning *InterconnectAttachmentListWarning `json:"warning,omitempty"`
13550
13551	// ServerResponse contains the HTTP response code and headers from the
13552	// server.
13553	googleapi.ServerResponse `json:"-"`
13554
13555	// ForceSendFields is a list of field names (e.g. "Id") to
13556	// unconditionally include in API requests. By default, fields with
13557	// empty values are omitted from API requests. However, any non-pointer,
13558	// non-interface field appearing in ForceSendFields will be sent to the
13559	// server regardless of whether the field is empty or not. This may be
13560	// used to include empty fields in Patch requests.
13561	ForceSendFields []string `json:"-"`
13562
13563	// NullFields is a list of field names (e.g. "Id") to include in API
13564	// requests with the JSON null value. By default, fields with empty
13565	// values are omitted from API requests. However, any field with an
13566	// empty value appearing in NullFields will be sent to the server as
13567	// null. It is an error if a field in this list has a non-empty value.
13568	// This may be used to include null fields in Patch requests.
13569	NullFields []string `json:"-"`
13570}
13571
13572func (s *InterconnectAttachmentList) MarshalJSON() ([]byte, error) {
13573	type NoMethod InterconnectAttachmentList
13574	raw := NoMethod(*s)
13575	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13576}
13577
13578// InterconnectAttachmentListWarning: [Output Only] Informational
13579// warning message.
13580type InterconnectAttachmentListWarning struct {
13581	// Code: [Output Only] A warning code, if applicable. For example,
13582	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13583	// the response.
13584	//
13585	// Possible values:
13586	//   "CLEANUP_FAILED"
13587	//   "DEPRECATED_RESOURCE_USED"
13588	//   "DEPRECATED_TYPE_USED"
13589	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13590	//   "EXPERIMENTAL_TYPE_USED"
13591	//   "EXTERNAL_API_WARNING"
13592	//   "FIELD_VALUE_OVERRIDEN"
13593	//   "INJECTED_KERNELS_DEPRECATED"
13594	//   "MISSING_TYPE_DEPENDENCY"
13595	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13596	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13597	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13598	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13599	//   "NEXT_HOP_NOT_RUNNING"
13600	//   "NOT_CRITICAL_ERROR"
13601	//   "NO_RESULTS_ON_PAGE"
13602	//   "REQUIRED_TOS_AGREEMENT"
13603	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13604	//   "RESOURCE_NOT_DELETED"
13605	//   "SCHEMA_VALIDATION_IGNORED"
13606	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13607	//   "UNDECLARED_PROPERTIES"
13608	//   "UNREACHABLE"
13609	Code string `json:"code,omitempty"`
13610
13611	// Data: [Output Only] Metadata about this warning in key: value format.
13612	// For example:
13613	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13614	Data []*InterconnectAttachmentListWarningData `json:"data,omitempty"`
13615
13616	// Message: [Output Only] A human-readable description of the warning
13617	// code.
13618	Message string `json:"message,omitempty"`
13619
13620	// ForceSendFields is a list of field names (e.g. "Code") to
13621	// unconditionally include in API requests. By default, fields with
13622	// empty values are omitted from API requests. However, any non-pointer,
13623	// non-interface field appearing in ForceSendFields will be sent to the
13624	// server regardless of whether the field is empty or not. This may be
13625	// used to include empty fields in Patch requests.
13626	ForceSendFields []string `json:"-"`
13627
13628	// NullFields is a list of field names (e.g. "Code") to include in API
13629	// requests with the JSON null value. By default, fields with empty
13630	// values are omitted from API requests. However, any field with an
13631	// empty value appearing in NullFields will be sent to the server as
13632	// null. It is an error if a field in this list has a non-empty value.
13633	// This may be used to include null fields in Patch requests.
13634	NullFields []string `json:"-"`
13635}
13636
13637func (s *InterconnectAttachmentListWarning) MarshalJSON() ([]byte, error) {
13638	type NoMethod InterconnectAttachmentListWarning
13639	raw := NoMethod(*s)
13640	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13641}
13642
13643type InterconnectAttachmentListWarningData struct {
13644	// Key: [Output Only] A key that provides more detail on the warning
13645	// being returned. For example, for warnings where there are no results
13646	// in a list request for a particular zone, this key might be scope and
13647	// the key value might be the zone name. Other examples might be a key
13648	// indicating a deprecated resource and a suggested replacement, or a
13649	// warning about invalid network settings (for example, if an instance
13650	// attempts to perform IP forwarding but is not enabled for IP
13651	// forwarding).
13652	Key string `json:"key,omitempty"`
13653
13654	// Value: [Output Only] A warning data value corresponding to the key.
13655	Value string `json:"value,omitempty"`
13656
13657	// ForceSendFields is a list of field names (e.g. "Key") to
13658	// unconditionally include in API requests. By default, fields with
13659	// empty values are omitted from API requests. However, any non-pointer,
13660	// non-interface field appearing in ForceSendFields will be sent to the
13661	// server regardless of whether the field is empty or not. This may be
13662	// used to include empty fields in Patch requests.
13663	ForceSendFields []string `json:"-"`
13664
13665	// NullFields is a list of field names (e.g. "Key") to include in API
13666	// requests with the JSON null value. By default, fields with empty
13667	// values are omitted from API requests. However, any field with an
13668	// empty value appearing in NullFields will be sent to the server as
13669	// null. It is an error if a field in this list has a non-empty value.
13670	// This may be used to include null fields in Patch requests.
13671	NullFields []string `json:"-"`
13672}
13673
13674func (s *InterconnectAttachmentListWarningData) MarshalJSON() ([]byte, error) {
13675	type NoMethod InterconnectAttachmentListWarningData
13676	raw := NoMethod(*s)
13677	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13678}
13679
13680// InterconnectAttachmentPartnerMetadata: Informational metadata about
13681// Partner attachments from Partners to display to customers. These
13682// fields are propagated from PARTNER_PROVIDER attachments to their
13683// corresponding PARTNER attachments.
13684type InterconnectAttachmentPartnerMetadata struct {
13685	// InterconnectName: Plain text name of the Interconnect this attachment
13686	// is connected to, as displayed in the Partner?s portal. For instance
13687	// "Chicago 1". This value may be validated to match approved Partner
13688	// values.
13689	InterconnectName string `json:"interconnectName,omitempty"`
13690
13691	// PartnerName: Plain text name of the Partner providing this
13692	// attachment. This value may be validated to match approved Partner
13693	// values.
13694	PartnerName string `json:"partnerName,omitempty"`
13695
13696	// PortalUrl: URL of the Partner?s portal for this Attachment. Partners
13697	// may customise this to be a deep-link to the specific resource on the
13698	// Partner portal. This value may be validated to match approved Partner
13699	// values.
13700	PortalUrl string `json:"portalUrl,omitempty"`
13701
13702	// ForceSendFields is a list of field names (e.g. "InterconnectName") to
13703	// unconditionally include in API requests. By default, fields with
13704	// empty values are omitted from API requests. However, any non-pointer,
13705	// non-interface field appearing in ForceSendFields will be sent to the
13706	// server regardless of whether the field is empty or not. This may be
13707	// used to include empty fields in Patch requests.
13708	ForceSendFields []string `json:"-"`
13709
13710	// NullFields is a list of field names (e.g. "InterconnectName") to
13711	// include in API requests with the JSON null value. By default, fields
13712	// with empty values are omitted from API requests. However, any field
13713	// with an empty value appearing in NullFields will be sent to the
13714	// server as null. It is an error if a field in this list has a
13715	// non-empty value. This may be used to include null fields in Patch
13716	// requests.
13717	NullFields []string `json:"-"`
13718}
13719
13720func (s *InterconnectAttachmentPartnerMetadata) MarshalJSON() ([]byte, error) {
13721	type NoMethod InterconnectAttachmentPartnerMetadata
13722	raw := NoMethod(*s)
13723	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13724}
13725
13726// InterconnectAttachmentPrivateInfo: Information for an interconnect
13727// attachment when this belongs to an interconnect of type DEDICATED.
13728type InterconnectAttachmentPrivateInfo struct {
13729	// Tag8021q: [Output Only] 802.1q encapsulation tag to be used for
13730	// traffic between Google and the customer, going to and from this
13731	// network and region.
13732	Tag8021q int64 `json:"tag8021q,omitempty"`
13733
13734	// ForceSendFields is a list of field names (e.g. "Tag8021q") to
13735	// unconditionally include in API requests. By default, fields with
13736	// empty values are omitted from API requests. However, any non-pointer,
13737	// non-interface field appearing in ForceSendFields will be sent to the
13738	// server regardless of whether the field is empty or not. This may be
13739	// used to include empty fields in Patch requests.
13740	ForceSendFields []string `json:"-"`
13741
13742	// NullFields is a list of field names (e.g. "Tag8021q") to include in
13743	// API requests with the JSON null value. By default, fields with empty
13744	// values are omitted from API requests. However, any field with an
13745	// empty value appearing in NullFields will be sent to the server as
13746	// null. It is an error if a field in this list has a non-empty value.
13747	// This may be used to include null fields in Patch requests.
13748	NullFields []string `json:"-"`
13749}
13750
13751func (s *InterconnectAttachmentPrivateInfo) MarshalJSON() ([]byte, error) {
13752	type NoMethod InterconnectAttachmentPrivateInfo
13753	raw := NoMethod(*s)
13754	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13755}
13756
13757type InterconnectAttachmentsScopedList struct {
13758	// InterconnectAttachments: A list of interconnect attachments contained
13759	// in this scope.
13760	InterconnectAttachments []*InterconnectAttachment `json:"interconnectAttachments,omitempty"`
13761
13762	// Warning: Informational warning which replaces the list of addresses
13763	// when the list is empty.
13764	Warning *InterconnectAttachmentsScopedListWarning `json:"warning,omitempty"`
13765
13766	// ForceSendFields is a list of field names (e.g.
13767	// "InterconnectAttachments") to unconditionally include in API
13768	// requests. By default, fields with empty values are omitted from API
13769	// requests. However, any non-pointer, non-interface field appearing in
13770	// ForceSendFields will be sent to the server regardless of whether the
13771	// field is empty or not. This may be used to include empty fields in
13772	// Patch requests.
13773	ForceSendFields []string `json:"-"`
13774
13775	// NullFields is a list of field names (e.g. "InterconnectAttachments")
13776	// to include in API requests with the JSON null value. By default,
13777	// fields with empty values are omitted from API requests. However, any
13778	// field with an empty value appearing in NullFields will be sent to the
13779	// server as null. It is an error if a field in this list has a
13780	// non-empty value. This may be used to include null fields in Patch
13781	// requests.
13782	NullFields []string `json:"-"`
13783}
13784
13785func (s *InterconnectAttachmentsScopedList) MarshalJSON() ([]byte, error) {
13786	type NoMethod InterconnectAttachmentsScopedList
13787	raw := NoMethod(*s)
13788	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13789}
13790
13791// InterconnectAttachmentsScopedListWarning: Informational warning which
13792// replaces the list of addresses when the list is empty.
13793type InterconnectAttachmentsScopedListWarning struct {
13794	// Code: [Output Only] A warning code, if applicable. For example,
13795	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13796	// the response.
13797	//
13798	// Possible values:
13799	//   "CLEANUP_FAILED"
13800	//   "DEPRECATED_RESOURCE_USED"
13801	//   "DEPRECATED_TYPE_USED"
13802	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13803	//   "EXPERIMENTAL_TYPE_USED"
13804	//   "EXTERNAL_API_WARNING"
13805	//   "FIELD_VALUE_OVERRIDEN"
13806	//   "INJECTED_KERNELS_DEPRECATED"
13807	//   "MISSING_TYPE_DEPENDENCY"
13808	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13809	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13810	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13811	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13812	//   "NEXT_HOP_NOT_RUNNING"
13813	//   "NOT_CRITICAL_ERROR"
13814	//   "NO_RESULTS_ON_PAGE"
13815	//   "REQUIRED_TOS_AGREEMENT"
13816	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13817	//   "RESOURCE_NOT_DELETED"
13818	//   "SCHEMA_VALIDATION_IGNORED"
13819	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13820	//   "UNDECLARED_PROPERTIES"
13821	//   "UNREACHABLE"
13822	Code string `json:"code,omitempty"`
13823
13824	// Data: [Output Only] Metadata about this warning in key: value format.
13825	// For example:
13826	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13827	Data []*InterconnectAttachmentsScopedListWarningData `json:"data,omitempty"`
13828
13829	// Message: [Output Only] A human-readable description of the warning
13830	// code.
13831	Message string `json:"message,omitempty"`
13832
13833	// ForceSendFields is a list of field names (e.g. "Code") to
13834	// unconditionally include in API requests. By default, fields with
13835	// empty values are omitted from API requests. However, any non-pointer,
13836	// non-interface field appearing in ForceSendFields will be sent to the
13837	// server regardless of whether the field is empty or not. This may be
13838	// used to include empty fields in Patch requests.
13839	ForceSendFields []string `json:"-"`
13840
13841	// NullFields is a list of field names (e.g. "Code") to include in API
13842	// requests with the JSON null value. By default, fields with empty
13843	// values are omitted from API requests. However, any field with an
13844	// empty value appearing in NullFields will be sent to the server as
13845	// null. It is an error if a field in this list has a non-empty value.
13846	// This may be used to include null fields in Patch requests.
13847	NullFields []string `json:"-"`
13848}
13849
13850func (s *InterconnectAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
13851	type NoMethod InterconnectAttachmentsScopedListWarning
13852	raw := NoMethod(*s)
13853	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13854}
13855
13856type InterconnectAttachmentsScopedListWarningData struct {
13857	// Key: [Output Only] A key that provides more detail on the warning
13858	// being returned. For example, for warnings where there are no results
13859	// in a list request for a particular zone, this key might be scope and
13860	// the key value might be the zone name. Other examples might be a key
13861	// indicating a deprecated resource and a suggested replacement, or a
13862	// warning about invalid network settings (for example, if an instance
13863	// attempts to perform IP forwarding but is not enabled for IP
13864	// forwarding).
13865	Key string `json:"key,omitempty"`
13866
13867	// Value: [Output Only] A warning data value corresponding to the key.
13868	Value string `json:"value,omitempty"`
13869
13870	// ForceSendFields is a list of field names (e.g. "Key") to
13871	// unconditionally include in API requests. By default, fields with
13872	// empty values are omitted from API requests. However, any non-pointer,
13873	// non-interface field appearing in ForceSendFields will be sent to the
13874	// server regardless of whether the field is empty or not. This may be
13875	// used to include empty fields in Patch requests.
13876	ForceSendFields []string `json:"-"`
13877
13878	// NullFields is a list of field names (e.g. "Key") to include in API
13879	// requests with the JSON null value. By default, fields with empty
13880	// values are omitted from API requests. However, any field with an
13881	// empty value appearing in NullFields will be sent to the server as
13882	// null. It is an error if a field in this list has a non-empty value.
13883	// This may be used to include null fields in Patch requests.
13884	NullFields []string `json:"-"`
13885}
13886
13887func (s *InterconnectAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
13888	type NoMethod InterconnectAttachmentsScopedListWarningData
13889	raw := NoMethod(*s)
13890	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13891}
13892
13893// InterconnectCircuitInfo: Describes a single physical circuit between
13894// the Customer and Google. CircuitInfo objects are created by Google,
13895// so all fields are output only. Next id: 4
13896type InterconnectCircuitInfo struct {
13897	// CustomerDemarcId: Customer-side demarc ID for this circuit.
13898	CustomerDemarcId string `json:"customerDemarcId,omitempty"`
13899
13900	// GoogleCircuitId: Google-assigned unique ID for this circuit. Assigned
13901	// at circuit turn-up.
13902	GoogleCircuitId string `json:"googleCircuitId,omitempty"`
13903
13904	// GoogleDemarcId: Google-side demarc ID for this circuit. Assigned at
13905	// circuit turn-up and provided by Google to the customer in the LOA.
13906	GoogleDemarcId string `json:"googleDemarcId,omitempty"`
13907
13908	// ForceSendFields is a list of field names (e.g. "CustomerDemarcId") to
13909	// unconditionally include in API requests. By default, fields with
13910	// empty values are omitted from API requests. However, any non-pointer,
13911	// non-interface field appearing in ForceSendFields will be sent to the
13912	// server regardless of whether the field is empty or not. This may be
13913	// used to include empty fields in Patch requests.
13914	ForceSendFields []string `json:"-"`
13915
13916	// NullFields is a list of field names (e.g. "CustomerDemarcId") to
13917	// include in API requests with the JSON null value. By default, fields
13918	// with empty values are omitted from API requests. However, any field
13919	// with an empty value appearing in NullFields will be sent to the
13920	// server as null. It is an error if a field in this list has a
13921	// non-empty value. This may be used to include null fields in Patch
13922	// requests.
13923	NullFields []string `json:"-"`
13924}
13925
13926func (s *InterconnectCircuitInfo) MarshalJSON() ([]byte, error) {
13927	type NoMethod InterconnectCircuitInfo
13928	raw := NoMethod(*s)
13929	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13930}
13931
13932// InterconnectDiagnostics: Diagnostics information about interconnect,
13933// contains detailed and current technical information about Google?s
13934// side of the connection.
13935type InterconnectDiagnostics struct {
13936	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
13937	// describing individual neighbors currently seen by the Google router
13938	// in the ARP cache for the Interconnect. This will be empty when the
13939	// Interconnect is not bundled.
13940	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
13941
13942	// Links: A list of InterconnectDiagnostics.LinkStatus objects,
13943	// describing the status for each link on the Interconnect.
13944	Links []*InterconnectDiagnosticsLinkStatus `json:"links,omitempty"`
13945
13946	// MacAddress: The MAC address of the Interconnect's bundle interface.
13947	MacAddress string `json:"macAddress,omitempty"`
13948
13949	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
13950	// unconditionally include in API requests. By default, fields with
13951	// empty values are omitted from API requests. However, any non-pointer,
13952	// non-interface field appearing in ForceSendFields will be sent to the
13953	// server regardless of whether the field is empty or not. This may be
13954	// used to include empty fields in Patch requests.
13955	ForceSendFields []string `json:"-"`
13956
13957	// NullFields is a list of field names (e.g. "ArpCaches") to include in
13958	// API requests with the JSON null value. By default, fields with empty
13959	// values are omitted from API requests. However, any field with an
13960	// empty value appearing in NullFields will be sent to the server as
13961	// null. It is an error if a field in this list has a non-empty value.
13962	// This may be used to include null fields in Patch requests.
13963	NullFields []string `json:"-"`
13964}
13965
13966func (s *InterconnectDiagnostics) MarshalJSON() ([]byte, error) {
13967	type NoMethod InterconnectDiagnostics
13968	raw := NoMethod(*s)
13969	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13970}
13971
13972// InterconnectDiagnosticsARPEntry: Describing the ARP neighbor entries
13973// seen on this link
13974type InterconnectDiagnosticsARPEntry struct {
13975	// IpAddress: The IP address of this ARP neighbor.
13976	IpAddress string `json:"ipAddress,omitempty"`
13977
13978	// MacAddress: The MAC address of this ARP neighbor.
13979	MacAddress string `json:"macAddress,omitempty"`
13980
13981	// ForceSendFields is a list of field names (e.g. "IpAddress") to
13982	// unconditionally include in API requests. By default, fields with
13983	// empty values are omitted from API requests. However, any non-pointer,
13984	// non-interface field appearing in ForceSendFields will be sent to the
13985	// server regardless of whether the field is empty or not. This may be
13986	// used to include empty fields in Patch requests.
13987	ForceSendFields []string `json:"-"`
13988
13989	// NullFields is a list of field names (e.g. "IpAddress") to include in
13990	// API requests with the JSON null value. By default, fields with empty
13991	// values are omitted from API requests. However, any field with an
13992	// empty value appearing in NullFields will be sent to the server as
13993	// null. It is an error if a field in this list has a non-empty value.
13994	// This may be used to include null fields in Patch requests.
13995	NullFields []string `json:"-"`
13996}
13997
13998func (s *InterconnectDiagnosticsARPEntry) MarshalJSON() ([]byte, error) {
13999	type NoMethod InterconnectDiagnosticsARPEntry
14000	raw := NoMethod(*s)
14001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14002}
14003
14004type InterconnectDiagnosticsLinkLACPStatus struct {
14005	// GoogleSystemId: System ID of the port on Google?s side of the LACP
14006	// exchange.
14007	GoogleSystemId string `json:"googleSystemId,omitempty"`
14008
14009	// NeighborSystemId: System ID of the port on the neighbor?s side of the
14010	// LACP exchange.
14011	NeighborSystemId string `json:"neighborSystemId,omitempty"`
14012
14013	// Possible values:
14014	//   "ACTIVE"
14015	//   "DETACHED"
14016	State string `json:"state,omitempty"`
14017
14018	// ForceSendFields is a list of field names (e.g. "GoogleSystemId") to
14019	// unconditionally include in API requests. By default, fields with
14020	// empty values are omitted from API requests. However, any non-pointer,
14021	// non-interface field appearing in ForceSendFields will be sent to the
14022	// server regardless of whether the field is empty or not. This may be
14023	// used to include empty fields in Patch requests.
14024	ForceSendFields []string `json:"-"`
14025
14026	// NullFields is a list of field names (e.g. "GoogleSystemId") to
14027	// include in API requests with the JSON null value. By default, fields
14028	// with empty values are omitted from API requests. However, any field
14029	// with an empty value appearing in NullFields will be sent to the
14030	// server as null. It is an error if a field in this list has a
14031	// non-empty value. This may be used to include null fields in Patch
14032	// requests.
14033	NullFields []string `json:"-"`
14034}
14035
14036func (s *InterconnectDiagnosticsLinkLACPStatus) MarshalJSON() ([]byte, error) {
14037	type NoMethod InterconnectDiagnosticsLinkLACPStatus
14038	raw := NoMethod(*s)
14039	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14040}
14041
14042type InterconnectDiagnosticsLinkOpticalPower struct {
14043	// State: The status of the current value when compared to the warning
14044	// and alarm levels for the receiving or transmitting transceiver.
14045	// Possible states include:
14046	// - OK: The value has not crossed a warning threshold.
14047	// - LOW_WARNING: The value has crossed below the low warning threshold.
14048	//
14049	// - HIGH_WARNING: The value has crossed above the high warning
14050	// threshold.
14051	// - LOW_ALARM: The value has crossed below the low alarm threshold.
14052	// - HIGH_ALARM: The value has crossed above the high alarm threshold.
14053	//
14054	// Possible values:
14055	//   "HIGH_ALARM"
14056	//   "HIGH_WARNING"
14057	//   "LOW_ALARM"
14058	//   "LOW_WARNING"
14059	//   "OK"
14060	State string `json:"state,omitempty"`
14061
14062	// Value: Value of the current receiving or transmitting optical power,
14063	// read in dBm. Take a known good optical value, give it a 10% margin
14064	// and trigger warnings relative to that value. In general, a -7dBm
14065	// warning and a -11dBm alarm are good optical value estimates for most
14066	// links.
14067	Value float64 `json:"value,omitempty"`
14068
14069	// ForceSendFields is a list of field names (e.g. "State") to
14070	// unconditionally include in API requests. By default, fields with
14071	// empty values are omitted from API requests. However, any non-pointer,
14072	// non-interface field appearing in ForceSendFields will be sent to the
14073	// server regardless of whether the field is empty or not. This may be
14074	// used to include empty fields in Patch requests.
14075	ForceSendFields []string `json:"-"`
14076
14077	// NullFields is a list of field names (e.g. "State") to include in API
14078	// requests with the JSON null value. By default, fields with empty
14079	// values are omitted from API requests. However, any field with an
14080	// empty value appearing in NullFields will be sent to the server as
14081	// null. It is an error if a field in this list has a non-empty value.
14082	// This may be used to include null fields in Patch requests.
14083	NullFields []string `json:"-"`
14084}
14085
14086func (s *InterconnectDiagnosticsLinkOpticalPower) MarshalJSON() ([]byte, error) {
14087	type NoMethod InterconnectDiagnosticsLinkOpticalPower
14088	raw := NoMethod(*s)
14089	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14090}
14091
14092func (s *InterconnectDiagnosticsLinkOpticalPower) UnmarshalJSON(data []byte) error {
14093	type NoMethod InterconnectDiagnosticsLinkOpticalPower
14094	var s1 struct {
14095		Value gensupport.JSONFloat64 `json:"value"`
14096		*NoMethod
14097	}
14098	s1.NoMethod = (*NoMethod)(s)
14099	if err := json.Unmarshal(data, &s1); err != nil {
14100		return err
14101	}
14102	s.Value = float64(s1.Value)
14103	return nil
14104}
14105
14106type InterconnectDiagnosticsLinkStatus struct {
14107	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
14108	// describing the ARP neighbor entries seen on this link. This will be
14109	// empty if the link is bundled
14110	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
14111
14112	// CircuitId: The unique ID for this link assigned during turn up by
14113	// Google.
14114	CircuitId string `json:"circuitId,omitempty"`
14115
14116	// GoogleDemarc: The Demarc address assigned by Google and provided in
14117	// the LoA.
14118	GoogleDemarc string `json:"googleDemarc,omitempty"`
14119
14120	LacpStatus *InterconnectDiagnosticsLinkLACPStatus `json:"lacpStatus,omitempty"`
14121
14122	// ReceivingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
14123	// object, describing the current value and status of the received light
14124	// level.
14125	ReceivingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"receivingOpticalPower,omitempty"`
14126
14127	// TransmittingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
14128	// object, describing the current value and status of the transmitted
14129	// light level.
14130	TransmittingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"transmittingOpticalPower,omitempty"`
14131
14132	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
14133	// unconditionally include in API requests. By default, fields with
14134	// empty values are omitted from API requests. However, any non-pointer,
14135	// non-interface field appearing in ForceSendFields will be sent to the
14136	// server regardless of whether the field is empty or not. This may be
14137	// used to include empty fields in Patch requests.
14138	ForceSendFields []string `json:"-"`
14139
14140	// NullFields is a list of field names (e.g. "ArpCaches") to include in
14141	// API requests with the JSON null value. By default, fields with empty
14142	// values are omitted from API requests. However, any field with an
14143	// empty value appearing in NullFields will be sent to the server as
14144	// null. It is an error if a field in this list has a non-empty value.
14145	// This may be used to include null fields in Patch requests.
14146	NullFields []string `json:"-"`
14147}
14148
14149func (s *InterconnectDiagnosticsLinkStatus) MarshalJSON() ([]byte, error) {
14150	type NoMethod InterconnectDiagnosticsLinkStatus
14151	raw := NoMethod(*s)
14152	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14153}
14154
14155// InterconnectList: Response to the list request, and contains a list
14156// of interconnects.
14157type InterconnectList struct {
14158	// Id: [Output Only] Unique identifier for the resource; defined by the
14159	// server.
14160	Id string `json:"id,omitempty"`
14161
14162	// Items: A list of Interconnect resources.
14163	Items []*Interconnect `json:"items,omitempty"`
14164
14165	// Kind: [Output Only] Type of resource. Always compute#interconnectList
14166	// for lists of interconnects.
14167	Kind string `json:"kind,omitempty"`
14168
14169	// NextPageToken: [Output Only] This token allows you to get the next
14170	// page of results for list requests. If the number of results is larger
14171	// than maxResults, use the nextPageToken as a value for the query
14172	// parameter pageToken in the next list request. Subsequent list
14173	// requests will have their own nextPageToken to continue paging through
14174	// the results.
14175	NextPageToken string `json:"nextPageToken,omitempty"`
14176
14177	// SelfLink: [Output Only] Server-defined URL for this resource.
14178	SelfLink string `json:"selfLink,omitempty"`
14179
14180	// Warning: [Output Only] Informational warning message.
14181	Warning *InterconnectListWarning `json:"warning,omitempty"`
14182
14183	// ServerResponse contains the HTTP response code and headers from the
14184	// server.
14185	googleapi.ServerResponse `json:"-"`
14186
14187	// ForceSendFields is a list of field names (e.g. "Id") to
14188	// unconditionally include in API requests. By default, fields with
14189	// empty values are omitted from API requests. However, any non-pointer,
14190	// non-interface field appearing in ForceSendFields will be sent to the
14191	// server regardless of whether the field is empty or not. This may be
14192	// used to include empty fields in Patch requests.
14193	ForceSendFields []string `json:"-"`
14194
14195	// NullFields is a list of field names (e.g. "Id") to include in API
14196	// requests with the JSON null value. By default, fields with empty
14197	// values are omitted from API requests. However, any field with an
14198	// empty value appearing in NullFields will be sent to the server as
14199	// null. It is an error if a field in this list has a non-empty value.
14200	// This may be used to include null fields in Patch requests.
14201	NullFields []string `json:"-"`
14202}
14203
14204func (s *InterconnectList) MarshalJSON() ([]byte, error) {
14205	type NoMethod InterconnectList
14206	raw := NoMethod(*s)
14207	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14208}
14209
14210// InterconnectListWarning: [Output Only] Informational warning message.
14211type InterconnectListWarning struct {
14212	// Code: [Output Only] A warning code, if applicable. For example,
14213	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14214	// the response.
14215	//
14216	// Possible values:
14217	//   "CLEANUP_FAILED"
14218	//   "DEPRECATED_RESOURCE_USED"
14219	//   "DEPRECATED_TYPE_USED"
14220	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14221	//   "EXPERIMENTAL_TYPE_USED"
14222	//   "EXTERNAL_API_WARNING"
14223	//   "FIELD_VALUE_OVERRIDEN"
14224	//   "INJECTED_KERNELS_DEPRECATED"
14225	//   "MISSING_TYPE_DEPENDENCY"
14226	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14227	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14228	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14229	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14230	//   "NEXT_HOP_NOT_RUNNING"
14231	//   "NOT_CRITICAL_ERROR"
14232	//   "NO_RESULTS_ON_PAGE"
14233	//   "REQUIRED_TOS_AGREEMENT"
14234	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14235	//   "RESOURCE_NOT_DELETED"
14236	//   "SCHEMA_VALIDATION_IGNORED"
14237	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14238	//   "UNDECLARED_PROPERTIES"
14239	//   "UNREACHABLE"
14240	Code string `json:"code,omitempty"`
14241
14242	// Data: [Output Only] Metadata about this warning in key: value format.
14243	// For example:
14244	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14245	Data []*InterconnectListWarningData `json:"data,omitempty"`
14246
14247	// Message: [Output Only] A human-readable description of the warning
14248	// code.
14249	Message string `json:"message,omitempty"`
14250
14251	// ForceSendFields is a list of field names (e.g. "Code") to
14252	// unconditionally include in API requests. By default, fields with
14253	// empty values are omitted from API requests. However, any non-pointer,
14254	// non-interface field appearing in ForceSendFields will be sent to the
14255	// server regardless of whether the field is empty or not. This may be
14256	// used to include empty fields in Patch requests.
14257	ForceSendFields []string `json:"-"`
14258
14259	// NullFields is a list of field names (e.g. "Code") to include in API
14260	// requests with the JSON null value. By default, fields with empty
14261	// values are omitted from API requests. However, any field with an
14262	// empty value appearing in NullFields will be sent to the server as
14263	// null. It is an error if a field in this list has a non-empty value.
14264	// This may be used to include null fields in Patch requests.
14265	NullFields []string `json:"-"`
14266}
14267
14268func (s *InterconnectListWarning) MarshalJSON() ([]byte, error) {
14269	type NoMethod InterconnectListWarning
14270	raw := NoMethod(*s)
14271	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14272}
14273
14274type InterconnectListWarningData struct {
14275	// Key: [Output Only] A key that provides more detail on the warning
14276	// being returned. For example, for warnings where there are no results
14277	// in a list request for a particular zone, this key might be scope and
14278	// the key value might be the zone name. Other examples might be a key
14279	// indicating a deprecated resource and a suggested replacement, or a
14280	// warning about invalid network settings (for example, if an instance
14281	// attempts to perform IP forwarding but is not enabled for IP
14282	// forwarding).
14283	Key string `json:"key,omitempty"`
14284
14285	// Value: [Output Only] A warning data value corresponding to the key.
14286	Value string `json:"value,omitempty"`
14287
14288	// ForceSendFields is a list of field names (e.g. "Key") to
14289	// unconditionally include in API requests. By default, fields with
14290	// empty values are omitted from API requests. However, any non-pointer,
14291	// non-interface field appearing in ForceSendFields will be sent to the
14292	// server regardless of whether the field is empty or not. This may be
14293	// used to include empty fields in Patch requests.
14294	ForceSendFields []string `json:"-"`
14295
14296	// NullFields is a list of field names (e.g. "Key") to include in API
14297	// requests with the JSON null value. By default, fields with empty
14298	// values are omitted from API requests. However, any field with an
14299	// empty value appearing in NullFields will be sent to the server as
14300	// null. It is an error if a field in this list has a non-empty value.
14301	// This may be used to include null fields in Patch requests.
14302	NullFields []string `json:"-"`
14303}
14304
14305func (s *InterconnectListWarningData) MarshalJSON() ([]byte, error) {
14306	type NoMethod InterconnectListWarningData
14307	raw := NoMethod(*s)
14308	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14309}
14310
14311// InterconnectLocation: Represents an InterconnectLocations resource.
14312// The InterconnectLocations resource describes the locations where you
14313// can connect to Google's networks. For more information, see
14314// Colocation Facilities.
14315type InterconnectLocation struct {
14316	// Address: [Output Only] The postal address of the Point of Presence,
14317	// each line in the address is separated by a newline character.
14318	Address string `json:"address,omitempty"`
14319
14320	// AvailabilityZone: [Output Only] Availability zone for this
14321	// InterconnectLocation. Within a metropolitan area (metro), maintenance
14322	// will not be simultaneously scheduled in more than one availability
14323	// zone. Example: "zone1" or "zone2".
14324	AvailabilityZone string `json:"availabilityZone,omitempty"`
14325
14326	// City: [Output Only] Metropolitan area designator that indicates which
14327	// city an interconnect is located. For example: "Chicago, IL",
14328	// "Amsterdam, Netherlands".
14329	City string `json:"city,omitempty"`
14330
14331	// Continent: [Output Only] Continent for this location.
14332	//
14333	// Possible values:
14334	//   "AFRICA"
14335	//   "ASIA_PAC"
14336	//   "C_AFRICA"
14337	//   "C_ASIA_PAC"
14338	//   "C_EUROPE"
14339	//   "C_NORTH_AMERICA"
14340	//   "C_SOUTH_AMERICA"
14341	//   "EUROPE"
14342	//   "NORTH_AMERICA"
14343	//   "SOUTH_AMERICA"
14344	Continent string `json:"continent,omitempty"`
14345
14346	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
14347	// format.
14348	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14349
14350	// Description: [Output Only] An optional description of the resource.
14351	Description string `json:"description,omitempty"`
14352
14353	// FacilityProvider: [Output Only] The name of the provider for this
14354	// facility (e.g., EQUINIX).
14355	FacilityProvider string `json:"facilityProvider,omitempty"`
14356
14357	// FacilityProviderFacilityId: [Output Only] A provider-assigned
14358	// Identifier for this facility (e.g., Ashburn-DC1).
14359	FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"`
14360
14361	// Id: [Output Only] The unique identifier for the resource. This
14362	// identifier is defined by the server.
14363	Id uint64 `json:"id,omitempty,string"`
14364
14365	// Kind: [Output Only] Type of the resource. Always
14366	// compute#interconnectLocation for interconnect locations.
14367	Kind string `json:"kind,omitempty"`
14368
14369	// Name: [Output Only] Name of the resource.
14370	Name string `json:"name,omitempty"`
14371
14372	// PeeringdbFacilityId: [Output Only] The peeringdb identifier for this
14373	// facility (corresponding with a netfac type in peeringdb).
14374	PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"`
14375
14376	// RegionInfos: [Output Only] A list of InterconnectLocation.RegionInfo
14377	// objects, that describe parameters pertaining to the relation between
14378	// this InterconnectLocation and various Google Cloud regions.
14379	RegionInfos []*InterconnectLocationRegionInfo `json:"regionInfos,omitempty"`
14380
14381	// SelfLink: [Output Only] Server-defined URL for the resource.
14382	SelfLink string `json:"selfLink,omitempty"`
14383
14384	// Status: [Output Only] The status of this InterconnectLocation. If the
14385	// status is AVAILABLE, new Interconnects may be provisioned in this
14386	// InterconnectLocation. Otherwise, no new Interconnects may be
14387	// provisioned.
14388	//
14389	// Possible values:
14390	//   "AVAILABLE"
14391	//   "CLOSED"
14392	Status string `json:"status,omitempty"`
14393
14394	// ServerResponse contains the HTTP response code and headers from the
14395	// server.
14396	googleapi.ServerResponse `json:"-"`
14397
14398	// ForceSendFields is a list of field names (e.g. "Address") to
14399	// unconditionally include in API requests. By default, fields with
14400	// empty values are omitted from API requests. However, any non-pointer,
14401	// non-interface field appearing in ForceSendFields will be sent to the
14402	// server regardless of whether the field is empty or not. This may be
14403	// used to include empty fields in Patch requests.
14404	ForceSendFields []string `json:"-"`
14405
14406	// NullFields is a list of field names (e.g. "Address") to include in
14407	// API requests with the JSON null value. By default, fields with empty
14408	// values are omitted from API requests. However, any field with an
14409	// empty value appearing in NullFields will be sent to the server as
14410	// null. It is an error if a field in this list has a non-empty value.
14411	// This may be used to include null fields in Patch requests.
14412	NullFields []string `json:"-"`
14413}
14414
14415func (s *InterconnectLocation) MarshalJSON() ([]byte, error) {
14416	type NoMethod InterconnectLocation
14417	raw := NoMethod(*s)
14418	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14419}
14420
14421// InterconnectLocationList: Response to the list request, and contains
14422// a list of interconnect locations.
14423type InterconnectLocationList struct {
14424	// Id: [Output Only] Unique identifier for the resource; defined by the
14425	// server.
14426	Id string `json:"id,omitempty"`
14427
14428	// Items: A list of InterconnectLocation resources.
14429	Items []*InterconnectLocation `json:"items,omitempty"`
14430
14431	// Kind: [Output Only] Type of resource. Always
14432	// compute#interconnectLocationList for lists of interconnect locations.
14433	Kind string `json:"kind,omitempty"`
14434
14435	// NextPageToken: [Output Only] This token allows you to get the next
14436	// page of results for list requests. If the number of results is larger
14437	// than maxResults, use the nextPageToken as a value for the query
14438	// parameter pageToken in the next list request. Subsequent list
14439	// requests will have their own nextPageToken to continue paging through
14440	// the results.
14441	NextPageToken string `json:"nextPageToken,omitempty"`
14442
14443	// SelfLink: [Output Only] Server-defined URL for this resource.
14444	SelfLink string `json:"selfLink,omitempty"`
14445
14446	// Warning: [Output Only] Informational warning message.
14447	Warning *InterconnectLocationListWarning `json:"warning,omitempty"`
14448
14449	// ServerResponse contains the HTTP response code and headers from the
14450	// server.
14451	googleapi.ServerResponse `json:"-"`
14452
14453	// ForceSendFields is a list of field names (e.g. "Id") to
14454	// unconditionally include in API requests. By default, fields with
14455	// empty values are omitted from API requests. However, any non-pointer,
14456	// non-interface field appearing in ForceSendFields will be sent to the
14457	// server regardless of whether the field is empty or not. This may be
14458	// used to include empty fields in Patch requests.
14459	ForceSendFields []string `json:"-"`
14460
14461	// NullFields is a list of field names (e.g. "Id") to include in API
14462	// requests with the JSON null value. By default, fields with empty
14463	// values are omitted from API requests. However, any field with an
14464	// empty value appearing in NullFields will be sent to the server as
14465	// null. It is an error if a field in this list has a non-empty value.
14466	// This may be used to include null fields in Patch requests.
14467	NullFields []string `json:"-"`
14468}
14469
14470func (s *InterconnectLocationList) MarshalJSON() ([]byte, error) {
14471	type NoMethod InterconnectLocationList
14472	raw := NoMethod(*s)
14473	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14474}
14475
14476// InterconnectLocationListWarning: [Output Only] Informational warning
14477// message.
14478type InterconnectLocationListWarning struct {
14479	// Code: [Output Only] A warning code, if applicable. For example,
14480	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14481	// the response.
14482	//
14483	// Possible values:
14484	//   "CLEANUP_FAILED"
14485	//   "DEPRECATED_RESOURCE_USED"
14486	//   "DEPRECATED_TYPE_USED"
14487	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14488	//   "EXPERIMENTAL_TYPE_USED"
14489	//   "EXTERNAL_API_WARNING"
14490	//   "FIELD_VALUE_OVERRIDEN"
14491	//   "INJECTED_KERNELS_DEPRECATED"
14492	//   "MISSING_TYPE_DEPENDENCY"
14493	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14494	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14495	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14496	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14497	//   "NEXT_HOP_NOT_RUNNING"
14498	//   "NOT_CRITICAL_ERROR"
14499	//   "NO_RESULTS_ON_PAGE"
14500	//   "REQUIRED_TOS_AGREEMENT"
14501	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14502	//   "RESOURCE_NOT_DELETED"
14503	//   "SCHEMA_VALIDATION_IGNORED"
14504	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14505	//   "UNDECLARED_PROPERTIES"
14506	//   "UNREACHABLE"
14507	Code string `json:"code,omitempty"`
14508
14509	// Data: [Output Only] Metadata about this warning in key: value format.
14510	// For example:
14511	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14512	Data []*InterconnectLocationListWarningData `json:"data,omitempty"`
14513
14514	// Message: [Output Only] A human-readable description of the warning
14515	// code.
14516	Message string `json:"message,omitempty"`
14517
14518	// ForceSendFields is a list of field names (e.g. "Code") to
14519	// unconditionally include in API requests. By default, fields with
14520	// empty values are omitted from API requests. However, any non-pointer,
14521	// non-interface field appearing in ForceSendFields will be sent to the
14522	// server regardless of whether the field is empty or not. This may be
14523	// used to include empty fields in Patch requests.
14524	ForceSendFields []string `json:"-"`
14525
14526	// NullFields is a list of field names (e.g. "Code") to include in API
14527	// requests with the JSON null value. By default, fields with empty
14528	// values are omitted from API requests. However, any field with an
14529	// empty value appearing in NullFields will be sent to the server as
14530	// null. It is an error if a field in this list has a non-empty value.
14531	// This may be used to include null fields in Patch requests.
14532	NullFields []string `json:"-"`
14533}
14534
14535func (s *InterconnectLocationListWarning) MarshalJSON() ([]byte, error) {
14536	type NoMethod InterconnectLocationListWarning
14537	raw := NoMethod(*s)
14538	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14539}
14540
14541type InterconnectLocationListWarningData struct {
14542	// Key: [Output Only] A key that provides more detail on the warning
14543	// being returned. For example, for warnings where there are no results
14544	// in a list request for a particular zone, this key might be scope and
14545	// the key value might be the zone name. Other examples might be a key
14546	// indicating a deprecated resource and a suggested replacement, or a
14547	// warning about invalid network settings (for example, if an instance
14548	// attempts to perform IP forwarding but is not enabled for IP
14549	// forwarding).
14550	Key string `json:"key,omitempty"`
14551
14552	// Value: [Output Only] A warning data value corresponding to the key.
14553	Value string `json:"value,omitempty"`
14554
14555	// ForceSendFields is a list of field names (e.g. "Key") to
14556	// unconditionally include in API requests. By default, fields with
14557	// empty values are omitted from API requests. However, any non-pointer,
14558	// non-interface field appearing in ForceSendFields will be sent to the
14559	// server regardless of whether the field is empty or not. This may be
14560	// used to include empty fields in Patch requests.
14561	ForceSendFields []string `json:"-"`
14562
14563	// NullFields is a list of field names (e.g. "Key") to include in API
14564	// requests with the JSON null value. By default, fields with empty
14565	// values are omitted from API requests. However, any field with an
14566	// empty value appearing in NullFields will be sent to the server as
14567	// null. It is an error if a field in this list has a non-empty value.
14568	// This may be used to include null fields in Patch requests.
14569	NullFields []string `json:"-"`
14570}
14571
14572func (s *InterconnectLocationListWarningData) MarshalJSON() ([]byte, error) {
14573	type NoMethod InterconnectLocationListWarningData
14574	raw := NoMethod(*s)
14575	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14576}
14577
14578// InterconnectLocationRegionInfo: Information about any potential
14579// InterconnectAttachments between an Interconnect at a specific
14580// InterconnectLocation, and a specific Cloud Region.
14581type InterconnectLocationRegionInfo struct {
14582	// ExpectedRttMs: Expected round-trip time in milliseconds, from this
14583	// InterconnectLocation to a VM in this region.
14584	ExpectedRttMs int64 `json:"expectedRttMs,omitempty,string"`
14585
14586	// LocationPresence: Identifies the network presence of this location.
14587	//
14588	// Possible values:
14589	//   "GLOBAL"
14590	//   "LOCAL_REGION"
14591	//   "LP_GLOBAL"
14592	//   "LP_LOCAL_REGION"
14593	LocationPresence string `json:"locationPresence,omitempty"`
14594
14595	// Region: URL for the region of this location.
14596	Region string `json:"region,omitempty"`
14597
14598	// ForceSendFields is a list of field names (e.g. "ExpectedRttMs") to
14599	// unconditionally include in API requests. By default, fields with
14600	// empty values are omitted from API requests. However, any non-pointer,
14601	// non-interface field appearing in ForceSendFields will be sent to the
14602	// server regardless of whether the field is empty or not. This may be
14603	// used to include empty fields in Patch requests.
14604	ForceSendFields []string `json:"-"`
14605
14606	// NullFields is a list of field names (e.g. "ExpectedRttMs") to include
14607	// in API requests with the JSON null value. By default, fields with
14608	// empty values are omitted from API requests. However, any field with
14609	// an empty value appearing in NullFields will be sent to the server as
14610	// null. It is an error if a field in this list has a non-empty value.
14611	// This may be used to include null fields in Patch requests.
14612	NullFields []string `json:"-"`
14613}
14614
14615func (s *InterconnectLocationRegionInfo) MarshalJSON() ([]byte, error) {
14616	type NoMethod InterconnectLocationRegionInfo
14617	raw := NoMethod(*s)
14618	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14619}
14620
14621// InterconnectOutageNotification: Description of a planned outage on
14622// this Interconnect. Next id: 9
14623type InterconnectOutageNotification struct {
14624	// AffectedCircuits: If issue_type is IT_PARTIAL_OUTAGE, a list of the
14625	// Google-side circuit IDs that will be affected.
14626	AffectedCircuits []string `json:"affectedCircuits,omitempty"`
14627
14628	// Description: A description about the purpose of the outage.
14629	Description string `json:"description,omitempty"`
14630
14631	// EndTime: Scheduled end time for the outage (milliseconds since Unix
14632	// epoch).
14633	EndTime int64 `json:"endTime,omitempty,string"`
14634
14635	// IssueType: Form this outage is expected to take. Note that the "IT_"
14636	// versions of this enum have been deprecated in favor of the unprefixed
14637	// values.
14638	//
14639	// Possible values:
14640	//   "IT_OUTAGE"
14641	//   "IT_PARTIAL_OUTAGE"
14642	//   "OUTAGE"
14643	//   "PARTIAL_OUTAGE"
14644	IssueType string `json:"issueType,omitempty"`
14645
14646	// Name: Unique identifier for this outage notification.
14647	Name string `json:"name,omitempty"`
14648
14649	// Source: The party that generated this notification. Note that
14650	// "NSRC_GOOGLE" has been deprecated in favor of "GOOGLE"
14651	//
14652	// Possible values:
14653	//   "GOOGLE"
14654	//   "NSRC_GOOGLE"
14655	Source string `json:"source,omitempty"`
14656
14657	// StartTime: Scheduled start time for the outage (milliseconds since
14658	// Unix epoch).
14659	StartTime int64 `json:"startTime,omitempty,string"`
14660
14661	// State: State of this notification. Note that the "NS_" versions of
14662	// this enum have been deprecated in favor of the unprefixed values.
14663	//
14664	// Possible values:
14665	//   "ACTIVE"
14666	//   "CANCELLED"
14667	//   "NS_ACTIVE"
14668	//   "NS_CANCELED"
14669	State string `json:"state,omitempty"`
14670
14671	// ForceSendFields is a list of field names (e.g. "AffectedCircuits") to
14672	// unconditionally include in API requests. By default, fields with
14673	// empty values are omitted from API requests. However, any non-pointer,
14674	// non-interface field appearing in ForceSendFields will be sent to the
14675	// server regardless of whether the field is empty or not. This may be
14676	// used to include empty fields in Patch requests.
14677	ForceSendFields []string `json:"-"`
14678
14679	// NullFields is a list of field names (e.g. "AffectedCircuits") to
14680	// include in API requests with the JSON null value. By default, fields
14681	// with empty values are omitted from API requests. However, any field
14682	// with an empty value appearing in NullFields will be sent to the
14683	// server as null. It is an error if a field in this list has a
14684	// non-empty value. This may be used to include null fields in Patch
14685	// requests.
14686	NullFields []string `json:"-"`
14687}
14688
14689func (s *InterconnectOutageNotification) MarshalJSON() ([]byte, error) {
14690	type NoMethod InterconnectOutageNotification
14691	raw := NoMethod(*s)
14692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14693}
14694
14695// InterconnectsGetDiagnosticsResponse: Response for the
14696// InterconnectsGetDiagnosticsRequest.
14697type InterconnectsGetDiagnosticsResponse struct {
14698	Result *InterconnectDiagnostics `json:"result,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. "Result") 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. "Result") 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 *InterconnectsGetDiagnosticsResponse) MarshalJSON() ([]byte, error) {
14722	type NoMethod InterconnectsGetDiagnosticsResponse
14723	raw := NoMethod(*s)
14724	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14725}
14726
14727// License: A license resource.
14728type License struct {
14729	// ChargesUseFee: [Output Only] Deprecated. This field no longer
14730	// reflects whether a license charges a usage fee.
14731	ChargesUseFee bool `json:"chargesUseFee,omitempty"`
14732
14733	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
14734	// format.
14735	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14736
14737	// Description: An optional textual description of the resource;
14738	// provided by the client when the resource is created.
14739	Description string `json:"description,omitempty"`
14740
14741	// Id: [Output Only] The unique identifier for the resource. This
14742	// identifier is defined by the server.
14743	Id uint64 `json:"id,omitempty,string"`
14744
14745	// Kind: [Output Only] Type of resource. Always compute#license for
14746	// licenses.
14747	Kind string `json:"kind,omitempty"`
14748
14749	// LicenseCode: [Output Only] The unique code used to attach this
14750	// license to images, snapshots, and disks.
14751	LicenseCode uint64 `json:"licenseCode,omitempty,string"`
14752
14753	// Name: Name of the resource. The name must be 1-63 characters long and
14754	// comply with RFC1035.
14755	Name string `json:"name,omitempty"`
14756
14757	ResourceRequirements *LicenseResourceRequirements `json:"resourceRequirements,omitempty"`
14758
14759	// SelfLink: [Output Only] Server-defined URL for the resource.
14760	SelfLink string `json:"selfLink,omitempty"`
14761
14762	// Transferable: If false, licenses will not be copied from the source
14763	// resource when creating an image from a disk, disk from snapshot, or
14764	// snapshot from disk.
14765	Transferable bool `json:"transferable,omitempty"`
14766
14767	// ServerResponse contains the HTTP response code and headers from the
14768	// server.
14769	googleapi.ServerResponse `json:"-"`
14770
14771	// ForceSendFields is a list of field names (e.g. "ChargesUseFee") to
14772	// unconditionally include in API requests. By default, fields with
14773	// empty values are omitted from API requests. However, any non-pointer,
14774	// non-interface field appearing in ForceSendFields will be sent to the
14775	// server regardless of whether the field is empty or not. This may be
14776	// used to include empty fields in Patch requests.
14777	ForceSendFields []string `json:"-"`
14778
14779	// NullFields is a list of field names (e.g. "ChargesUseFee") to include
14780	// in API requests with the JSON null value. By default, fields with
14781	// empty values are omitted from API requests. However, any field with
14782	// an empty value appearing in NullFields will be sent to the server as
14783	// null. It is an error if a field in this list has a non-empty value.
14784	// This may be used to include null fields in Patch requests.
14785	NullFields []string `json:"-"`
14786}
14787
14788func (s *License) MarshalJSON() ([]byte, error) {
14789	type NoMethod License
14790	raw := NoMethod(*s)
14791	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14792}
14793
14794type LicenseCode struct {
14795	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
14796	// format.
14797	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14798
14799	// Description: [Output Only] Description of this License Code.
14800	Description string `json:"description,omitempty"`
14801
14802	// Id: [Output Only] The unique identifier for the resource. This
14803	// identifier is defined by the server.
14804	Id uint64 `json:"id,omitempty,string"`
14805
14806	// Kind: [Output Only] Type of resource. Always compute#licenseCode for
14807	// licenses.
14808	Kind string `json:"kind,omitempty"`
14809
14810	// LicenseAlias: [Output Only] URL and description aliases of Licenses
14811	// with the same License Code.
14812	LicenseAlias []*LicenseCodeLicenseAlias `json:"licenseAlias,omitempty"`
14813
14814	// Name: [Output Only] Name of the resource. The name is 1-20 characters
14815	// long and must be a valid 64 bit integer.
14816	Name string `json:"name,omitempty"`
14817
14818	// SelfLink: [Output Only] Server-defined URL for the resource.
14819	SelfLink string `json:"selfLink,omitempty"`
14820
14821	// State: [Output Only] Current state of this License Code.
14822	//
14823	// Possible values:
14824	//   "DISABLED"
14825	//   "ENABLED"
14826	//   "RESTRICTED"
14827	//   "STATE_UNSPECIFIED"
14828	//   "TERMINATED"
14829	State string `json:"state,omitempty"`
14830
14831	// Transferable: [Output Only] If true, the license will remain attached
14832	// when creating images or snapshots from disks. Otherwise, the license
14833	// is not transferred.
14834	Transferable bool `json:"transferable,omitempty"`
14835
14836	// ServerResponse contains the HTTP response code and headers from the
14837	// server.
14838	googleapi.ServerResponse `json:"-"`
14839
14840	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
14841	// to unconditionally include in API requests. By default, fields with
14842	// empty values are omitted from API requests. However, any non-pointer,
14843	// non-interface field appearing in ForceSendFields will be sent to the
14844	// server regardless of whether the field is empty or not. This may be
14845	// used to include empty fields in Patch requests.
14846	ForceSendFields []string `json:"-"`
14847
14848	// NullFields is a list of field names (e.g. "CreationTimestamp") to
14849	// include in API requests with the JSON null value. By default, fields
14850	// with empty values are omitted from API requests. However, any field
14851	// with an empty value appearing in NullFields will be sent to the
14852	// server as null. It is an error if a field in this list has a
14853	// non-empty value. This may be used to include null fields in Patch
14854	// requests.
14855	NullFields []string `json:"-"`
14856}
14857
14858func (s *LicenseCode) MarshalJSON() ([]byte, error) {
14859	type NoMethod LicenseCode
14860	raw := NoMethod(*s)
14861	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14862}
14863
14864type LicenseCodeLicenseAlias struct {
14865	// Description: [Output Only] Description of this License Code.
14866	Description string `json:"description,omitempty"`
14867
14868	// SelfLink: [Output Only] URL of license corresponding to this License
14869	// Code.
14870	SelfLink string `json:"selfLink,omitempty"`
14871
14872	// ForceSendFields is a list of field names (e.g. "Description") to
14873	// unconditionally include in API requests. By default, fields with
14874	// empty values are omitted from API requests. However, any non-pointer,
14875	// non-interface field appearing in ForceSendFields will be sent to the
14876	// server regardless of whether the field is empty or not. This may be
14877	// used to include empty fields in Patch requests.
14878	ForceSendFields []string `json:"-"`
14879
14880	// NullFields is a list of field names (e.g. "Description") to include
14881	// in API requests with the JSON null value. By default, fields with
14882	// empty values are omitted from API requests. However, any field with
14883	// an empty value appearing in NullFields will be sent to the server as
14884	// null. It is an error if a field in this list has a non-empty value.
14885	// This may be used to include null fields in Patch requests.
14886	NullFields []string `json:"-"`
14887}
14888
14889func (s *LicenseCodeLicenseAlias) MarshalJSON() ([]byte, error) {
14890	type NoMethod LicenseCodeLicenseAlias
14891	raw := NoMethod(*s)
14892	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14893}
14894
14895type LicenseResourceRequirements struct {
14896	// MinGuestCpuCount: Minimum number of guest cpus required to use the
14897	// Instance. Enforced at Instance creation and Instance start.
14898	MinGuestCpuCount int64 `json:"minGuestCpuCount,omitempty"`
14899
14900	// MinMemoryMb: Minimum memory required to use the Instance. Enforced at
14901	// Instance creation and Instance start.
14902	MinMemoryMb int64 `json:"minMemoryMb,omitempty"`
14903
14904	// ForceSendFields is a list of field names (e.g. "MinGuestCpuCount") to
14905	// unconditionally include in API requests. By default, fields with
14906	// empty values are omitted from API requests. However, any non-pointer,
14907	// non-interface field appearing in ForceSendFields will be sent to the
14908	// server regardless of whether the field is empty or not. This may be
14909	// used to include empty fields in Patch requests.
14910	ForceSendFields []string `json:"-"`
14911
14912	// NullFields is a list of field names (e.g. "MinGuestCpuCount") to
14913	// include in API requests with the JSON null value. By default, fields
14914	// with empty values are omitted from API requests. However, any field
14915	// with an empty value appearing in NullFields will be sent to the
14916	// server as null. It is an error if a field in this list has a
14917	// non-empty value. This may be used to include null fields in Patch
14918	// requests.
14919	NullFields []string `json:"-"`
14920}
14921
14922func (s *LicenseResourceRequirements) MarshalJSON() ([]byte, error) {
14923	type NoMethod LicenseResourceRequirements
14924	raw := NoMethod(*s)
14925	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14926}
14927
14928type LicensesListResponse struct {
14929	// Id: [Output Only] Unique identifier for the resource; defined by the
14930	// server.
14931	Id string `json:"id,omitempty"`
14932
14933	// Items: A list of License resources.
14934	Items []*License `json:"items,omitempty"`
14935
14936	// NextPageToken: [Output Only] This token allows you to get the next
14937	// page of results for list requests. If the number of results is larger
14938	// than maxResults, use the nextPageToken as a value for the query
14939	// parameter pageToken in the next list request. Subsequent list
14940	// requests will have their own nextPageToken to continue paging through
14941	// the results.
14942	NextPageToken string `json:"nextPageToken,omitempty"`
14943
14944	// SelfLink: [Output Only] Server-defined URL for this resource.
14945	SelfLink string `json:"selfLink,omitempty"`
14946
14947	// Warning: [Output Only] Informational warning message.
14948	Warning *LicensesListResponseWarning `json:"warning,omitempty"`
14949
14950	// ServerResponse contains the HTTP response code and headers from the
14951	// server.
14952	googleapi.ServerResponse `json:"-"`
14953
14954	// ForceSendFields is a list of field names (e.g. "Id") to
14955	// unconditionally include in API requests. By default, fields with
14956	// empty values are omitted from API requests. However, any non-pointer,
14957	// non-interface field appearing in ForceSendFields will be sent to the
14958	// server regardless of whether the field is empty or not. This may be
14959	// used to include empty fields in Patch requests.
14960	ForceSendFields []string `json:"-"`
14961
14962	// NullFields is a list of field names (e.g. "Id") to include in API
14963	// requests with the JSON null value. By default, fields with empty
14964	// values are omitted from API requests. However, any field with an
14965	// empty value appearing in NullFields will be sent to the server as
14966	// null. It is an error if a field in this list has a non-empty value.
14967	// This may be used to include null fields in Patch requests.
14968	NullFields []string `json:"-"`
14969}
14970
14971func (s *LicensesListResponse) MarshalJSON() ([]byte, error) {
14972	type NoMethod LicensesListResponse
14973	raw := NoMethod(*s)
14974	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14975}
14976
14977// LicensesListResponseWarning: [Output Only] Informational warning
14978// message.
14979type LicensesListResponseWarning struct {
14980	// Code: [Output Only] A warning code, if applicable. For example,
14981	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14982	// the response.
14983	//
14984	// Possible values:
14985	//   "CLEANUP_FAILED"
14986	//   "DEPRECATED_RESOURCE_USED"
14987	//   "DEPRECATED_TYPE_USED"
14988	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14989	//   "EXPERIMENTAL_TYPE_USED"
14990	//   "EXTERNAL_API_WARNING"
14991	//   "FIELD_VALUE_OVERRIDEN"
14992	//   "INJECTED_KERNELS_DEPRECATED"
14993	//   "MISSING_TYPE_DEPENDENCY"
14994	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14995	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14996	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14997	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14998	//   "NEXT_HOP_NOT_RUNNING"
14999	//   "NOT_CRITICAL_ERROR"
15000	//   "NO_RESULTS_ON_PAGE"
15001	//   "REQUIRED_TOS_AGREEMENT"
15002	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15003	//   "RESOURCE_NOT_DELETED"
15004	//   "SCHEMA_VALIDATION_IGNORED"
15005	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15006	//   "UNDECLARED_PROPERTIES"
15007	//   "UNREACHABLE"
15008	Code string `json:"code,omitempty"`
15009
15010	// Data: [Output Only] Metadata about this warning in key: value format.
15011	// For example:
15012	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15013	Data []*LicensesListResponseWarningData `json:"data,omitempty"`
15014
15015	// Message: [Output Only] A human-readable description of the warning
15016	// code.
15017	Message string `json:"message,omitempty"`
15018
15019	// ForceSendFields is a list of field names (e.g. "Code") to
15020	// unconditionally include in API requests. By default, fields with
15021	// empty values are omitted from API requests. However, any non-pointer,
15022	// non-interface field appearing in ForceSendFields will be sent to the
15023	// server regardless of whether the field is empty or not. This may be
15024	// used to include empty fields in Patch requests.
15025	ForceSendFields []string `json:"-"`
15026
15027	// NullFields is a list of field names (e.g. "Code") to include in API
15028	// requests with the JSON null value. By default, fields with empty
15029	// values are omitted from API requests. However, any field with an
15030	// empty value appearing in NullFields will be sent to the server as
15031	// null. It is an error if a field in this list has a non-empty value.
15032	// This may be used to include null fields in Patch requests.
15033	NullFields []string `json:"-"`
15034}
15035
15036func (s *LicensesListResponseWarning) MarshalJSON() ([]byte, error) {
15037	type NoMethod LicensesListResponseWarning
15038	raw := NoMethod(*s)
15039	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15040}
15041
15042type LicensesListResponseWarningData struct {
15043	// Key: [Output Only] A key that provides more detail on the warning
15044	// being returned. For example, for warnings where there are no results
15045	// in a list request for a particular zone, this key might be scope and
15046	// the key value might be the zone name. Other examples might be a key
15047	// indicating a deprecated resource and a suggested replacement, or a
15048	// warning about invalid network settings (for example, if an instance
15049	// attempts to perform IP forwarding but is not enabled for IP
15050	// forwarding).
15051	Key string `json:"key,omitempty"`
15052
15053	// Value: [Output Only] A warning data value corresponding to the key.
15054	Value string `json:"value,omitempty"`
15055
15056	// ForceSendFields is a list of field names (e.g. "Key") to
15057	// unconditionally include in API requests. By default, fields with
15058	// empty values are omitted from API requests. However, any non-pointer,
15059	// non-interface field appearing in ForceSendFields will be sent to the
15060	// server regardless of whether the field is empty or not. This may be
15061	// used to include empty fields in Patch requests.
15062	ForceSendFields []string `json:"-"`
15063
15064	// NullFields is a list of field names (e.g. "Key") to include in API
15065	// requests with the JSON null value. By default, fields with empty
15066	// values are omitted from API requests. However, any field with an
15067	// empty value appearing in NullFields will be sent to the server as
15068	// null. It is an error if a field in this list has a non-empty value.
15069	// This may be used to include null fields in Patch requests.
15070	NullFields []string `json:"-"`
15071}
15072
15073func (s *LicensesListResponseWarningData) MarshalJSON() ([]byte, error) {
15074	type NoMethod LicensesListResponseWarningData
15075	raw := NoMethod(*s)
15076	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15077}
15078
15079// LogConfig: Specifies what kind of log the caller must write
15080type LogConfig struct {
15081	// CloudAudit: Cloud audit options.
15082	CloudAudit *LogConfigCloudAuditOptions `json:"cloudAudit,omitempty"`
15083
15084	// Counter: Counter options.
15085	Counter *LogConfigCounterOptions `json:"counter,omitempty"`
15086
15087	// DataAccess: Data access options.
15088	DataAccess *LogConfigDataAccessOptions `json:"dataAccess,omitempty"`
15089
15090	// ForceSendFields is a list of field names (e.g. "CloudAudit") to
15091	// unconditionally include in API requests. By default, fields with
15092	// empty values are omitted from API requests. However, any non-pointer,
15093	// non-interface field appearing in ForceSendFields will be sent to the
15094	// server regardless of whether the field is empty or not. This may be
15095	// used to include empty fields in Patch requests.
15096	ForceSendFields []string `json:"-"`
15097
15098	// NullFields is a list of field names (e.g. "CloudAudit") to include in
15099	// API requests with the JSON null value. By default, fields with empty
15100	// values are omitted from API requests. However, any field with an
15101	// empty value appearing in NullFields will be sent to the server as
15102	// null. It is an error if a field in this list has a non-empty value.
15103	// This may be used to include null fields in Patch requests.
15104	NullFields []string `json:"-"`
15105}
15106
15107func (s *LogConfig) MarshalJSON() ([]byte, error) {
15108	type NoMethod LogConfig
15109	raw := NoMethod(*s)
15110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15111}
15112
15113// LogConfigCloudAuditOptions: Write a Cloud Audit log
15114type LogConfigCloudAuditOptions struct {
15115	// AuthorizationLoggingOptions: Information used by the Cloud Audit
15116	// Logging pipeline.
15117	AuthorizationLoggingOptions *AuthorizationLoggingOptions `json:"authorizationLoggingOptions,omitempty"`
15118
15119	// LogName: The log_name to populate in the Cloud Audit Record.
15120	//
15121	// Possible values:
15122	//   "ADMIN_ACTIVITY"
15123	//   "DATA_ACCESS"
15124	//   "UNSPECIFIED_LOG_NAME"
15125	LogName string `json:"logName,omitempty"`
15126
15127	// ForceSendFields is a list of field names (e.g.
15128	// "AuthorizationLoggingOptions") to unconditionally include in API
15129	// requests. By default, fields with empty values are omitted from API
15130	// requests. However, any non-pointer, non-interface field appearing in
15131	// ForceSendFields will be sent to the server regardless of whether the
15132	// field is empty or not. This may be used to include empty fields in
15133	// Patch requests.
15134	ForceSendFields []string `json:"-"`
15135
15136	// NullFields is a list of field names (e.g.
15137	// "AuthorizationLoggingOptions") to include in API requests with the
15138	// JSON null value. By default, fields with empty values are omitted
15139	// from API requests. However, any field with an empty value appearing
15140	// in NullFields will be sent to the server as null. It is an error if a
15141	// field in this list has a non-empty value. This may be used to include
15142	// null fields in Patch requests.
15143	NullFields []string `json:"-"`
15144}
15145
15146func (s *LogConfigCloudAuditOptions) MarshalJSON() ([]byte, error) {
15147	type NoMethod LogConfigCloudAuditOptions
15148	raw := NoMethod(*s)
15149	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15150}
15151
15152// LogConfigCounterOptions: Increment a streamz counter with the
15153// specified metric and field names.
15154//
15155// Metric names should start with a '/', generally be lowercase-only,
15156// and end in "_count". Field names should not contain an initial slash.
15157// The actual exported metric names will have "/iam/policy"
15158// prepended.
15159//
15160// Field names correspond to IAM request parameters and field values are
15161// their respective values.
15162//
15163// Supported field names: - "authority", which is "[token]" if
15164// IAMContext.token is present, otherwise the value of
15165// IAMContext.authority_selector if present, and otherwise a
15166// representation of IAMContext.principal; or - "iam_principal", a
15167// representation of IAMContext.principal even if a token or authority
15168// selector is present; or - "" (empty string), resulting in a counter
15169// with no fields.
15170//
15171// Examples: counter { metric: "/debug_access_count" field:
15172// "iam_principal" } ==> increment counter
15173// /iam/policy/backend_debug_access_count {iam_principal=[value of
15174// IAMContext.principal]}
15175//
15176// At this time we do not support multiple field names (though this may
15177// be supported in the future).
15178type LogConfigCounterOptions struct {
15179	// Field: The field value to attribute.
15180	Field string `json:"field,omitempty"`
15181
15182	// Metric: The metric to update.
15183	Metric string `json:"metric,omitempty"`
15184
15185	// ForceSendFields is a list of field names (e.g. "Field") to
15186	// unconditionally include in API requests. By default, fields with
15187	// empty values are omitted from API requests. However, any non-pointer,
15188	// non-interface field appearing in ForceSendFields will be sent to the
15189	// server regardless of whether the field is empty or not. This may be
15190	// used to include empty fields in Patch requests.
15191	ForceSendFields []string `json:"-"`
15192
15193	// NullFields is a list of field names (e.g. "Field") to include in API
15194	// requests with the JSON null value. By default, fields with empty
15195	// values are omitted from API requests. However, any field with an
15196	// empty value appearing in NullFields will be sent to the server as
15197	// null. It is an error if a field in this list has a non-empty value.
15198	// This may be used to include null fields in Patch requests.
15199	NullFields []string `json:"-"`
15200}
15201
15202func (s *LogConfigCounterOptions) MarshalJSON() ([]byte, error) {
15203	type NoMethod LogConfigCounterOptions
15204	raw := NoMethod(*s)
15205	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15206}
15207
15208// LogConfigDataAccessOptions: Write a Data Access (Gin) log
15209type LogConfigDataAccessOptions struct {
15210	// LogMode: Whether Gin logging should happen in a fail-closed manner at
15211	// the caller. This is relevant only in the LocalIAM implementation, for
15212	// now.
15213	//
15214	// NOTE: Logging to Gin in a fail-closed manner is currently unsupported
15215	// while work is being done to satisfy the requirements of go/345.
15216	// Currently, setting LOG_FAIL_CLOSED mode will have no effect, but
15217	// still exists because there is active work being done to support it
15218	// (b/115874152).
15219	//
15220	// Possible values:
15221	//   "LOG_FAIL_CLOSED"
15222	//   "LOG_MODE_UNSPECIFIED"
15223	LogMode string `json:"logMode,omitempty"`
15224
15225	// ForceSendFields is a list of field names (e.g. "LogMode") to
15226	// unconditionally include in API requests. By default, fields with
15227	// empty values are omitted from API requests. However, any non-pointer,
15228	// non-interface field appearing in ForceSendFields will be sent to the
15229	// server regardless of whether the field is empty or not. This may be
15230	// used to include empty fields in Patch requests.
15231	ForceSendFields []string `json:"-"`
15232
15233	// NullFields is a list of field names (e.g. "LogMode") to include in
15234	// API requests with the JSON null value. By default, fields with empty
15235	// values are omitted from API requests. However, any field with an
15236	// empty value appearing in NullFields will be sent to the server as
15237	// null. It is an error if a field in this list has a non-empty value.
15238	// This may be used to include null fields in Patch requests.
15239	NullFields []string `json:"-"`
15240}
15241
15242func (s *LogConfigDataAccessOptions) MarshalJSON() ([]byte, error) {
15243	type NoMethod LogConfigDataAccessOptions
15244	raw := NoMethod(*s)
15245	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15246}
15247
15248// MachineType: A Machine Type resource. (== resource_for
15249// v1.machineTypes ==) (== resource_for beta.machineTypes ==)
15250type MachineType struct {
15251	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
15252	// format.
15253	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15254
15255	// Deprecated: [Output Only] The deprecation status associated with this
15256	// machine type.
15257	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
15258
15259	// Description: [Output Only] An optional textual description of the
15260	// resource.
15261	Description string `json:"description,omitempty"`
15262
15263	// GuestCpus: [Output Only] The number of virtual CPUs that are
15264	// available to the instance.
15265	GuestCpus int64 `json:"guestCpus,omitempty"`
15266
15267	// Id: [Output Only] The unique identifier for the resource. This
15268	// identifier is defined by the server.
15269	Id uint64 `json:"id,omitempty,string"`
15270
15271	// ImageSpaceGb: [Deprecated] This property is deprecated and will never
15272	// be populated with any relevant values.
15273	ImageSpaceGb int64 `json:"imageSpaceGb,omitempty"`
15274
15275	// IsSharedCpu: [Output Only] Whether this machine type has a shared
15276	// CPU. See Shared-core machine types for more information.
15277	IsSharedCpu bool `json:"isSharedCpu,omitempty"`
15278
15279	// Kind: [Output Only] The type of the resource. Always
15280	// compute#machineType for machine types.
15281	Kind string `json:"kind,omitempty"`
15282
15283	// MaximumPersistentDisks: [Output Only] Maximum persistent disks
15284	// allowed.
15285	MaximumPersistentDisks int64 `json:"maximumPersistentDisks,omitempty"`
15286
15287	// MaximumPersistentDisksSizeGb: [Output Only] Maximum total persistent
15288	// disks size (GB) allowed.
15289	MaximumPersistentDisksSizeGb int64 `json:"maximumPersistentDisksSizeGb,omitempty,string"`
15290
15291	// MemoryMb: [Output Only] The amount of physical memory available to
15292	// the instance, defined in MB.
15293	MemoryMb int64 `json:"memoryMb,omitempty"`
15294
15295	// Name: [Output Only] Name of the resource.
15296	Name string `json:"name,omitempty"`
15297
15298	// ScratchDisks: [Output Only] A list of extended scratch disks assigned
15299	// to the instance.
15300	ScratchDisks []*MachineTypeScratchDisks `json:"scratchDisks,omitempty"`
15301
15302	// SelfLink: [Output Only] Server-defined URL for the resource.
15303	SelfLink string `json:"selfLink,omitempty"`
15304
15305	// Zone: [Output Only] The name of the zone where the machine type
15306	// resides, such as us-central1-a.
15307	Zone string `json:"zone,omitempty"`
15308
15309	// ServerResponse contains the HTTP response code and headers from the
15310	// server.
15311	googleapi.ServerResponse `json:"-"`
15312
15313	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
15314	// to unconditionally include in API requests. By default, fields with
15315	// empty values are omitted from API requests. However, any non-pointer,
15316	// non-interface field appearing in ForceSendFields will be sent to the
15317	// server regardless of whether the field is empty or not. This may be
15318	// used to include empty fields in Patch requests.
15319	ForceSendFields []string `json:"-"`
15320
15321	// NullFields is a list of field names (e.g. "CreationTimestamp") to
15322	// include in API requests with the JSON null value. By default, fields
15323	// with empty values are omitted from API requests. However, any field
15324	// with an empty value appearing in NullFields will be sent to the
15325	// server as null. It is an error if a field in this list has a
15326	// non-empty value. This may be used to include null fields in Patch
15327	// requests.
15328	NullFields []string `json:"-"`
15329}
15330
15331func (s *MachineType) MarshalJSON() ([]byte, error) {
15332	type NoMethod MachineType
15333	raw := NoMethod(*s)
15334	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15335}
15336
15337type MachineTypeScratchDisks struct {
15338	// DiskGb: Size of the scratch disk, defined in GB.
15339	DiskGb int64 `json:"diskGb,omitempty"`
15340
15341	// ForceSendFields is a list of field names (e.g. "DiskGb") to
15342	// unconditionally include in API requests. By default, fields with
15343	// empty values are omitted from API requests. However, any non-pointer,
15344	// non-interface field appearing in ForceSendFields will be sent to the
15345	// server regardless of whether the field is empty or not. This may be
15346	// used to include empty fields in Patch requests.
15347	ForceSendFields []string `json:"-"`
15348
15349	// NullFields is a list of field names (e.g. "DiskGb") to include in API
15350	// requests with the JSON null value. By default, fields with empty
15351	// values are omitted from API requests. However, any field with an
15352	// empty value appearing in NullFields will be sent to the server as
15353	// null. It is an error if a field in this list has a non-empty value.
15354	// This may be used to include null fields in Patch requests.
15355	NullFields []string `json:"-"`
15356}
15357
15358func (s *MachineTypeScratchDisks) MarshalJSON() ([]byte, error) {
15359	type NoMethod MachineTypeScratchDisks
15360	raw := NoMethod(*s)
15361	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15362}
15363
15364type MachineTypeAggregatedList struct {
15365	// Id: [Output Only] Unique identifier for the resource; defined by the
15366	// server.
15367	Id string `json:"id,omitempty"`
15368
15369	// Items: A list of MachineTypesScopedList resources.
15370	Items map[string]MachineTypesScopedList `json:"items,omitempty"`
15371
15372	// Kind: [Output Only] Type of resource. Always
15373	// compute#machineTypeAggregatedList for aggregated lists of machine
15374	// types.
15375	Kind string `json:"kind,omitempty"`
15376
15377	// NextPageToken: [Output Only] This token allows you to get the next
15378	// page of results for list requests. If the number of results is larger
15379	// than maxResults, use the nextPageToken as a value for the query
15380	// parameter pageToken in the next list request. Subsequent list
15381	// requests will have their own nextPageToken to continue paging through
15382	// the results.
15383	NextPageToken string `json:"nextPageToken,omitempty"`
15384
15385	// SelfLink: [Output Only] Server-defined URL for this resource.
15386	SelfLink string `json:"selfLink,omitempty"`
15387
15388	// Warning: [Output Only] Informational warning message.
15389	Warning *MachineTypeAggregatedListWarning `json:"warning,omitempty"`
15390
15391	// ServerResponse contains the HTTP response code and headers from the
15392	// server.
15393	googleapi.ServerResponse `json:"-"`
15394
15395	// ForceSendFields is a list of field names (e.g. "Id") to
15396	// unconditionally include in API requests. By default, fields with
15397	// empty values are omitted from API requests. However, any non-pointer,
15398	// non-interface field appearing in ForceSendFields will be sent to the
15399	// server regardless of whether the field is empty or not. This may be
15400	// used to include empty fields in Patch requests.
15401	ForceSendFields []string `json:"-"`
15402
15403	// NullFields is a list of field names (e.g. "Id") to include in API
15404	// requests with the JSON null value. By default, fields with empty
15405	// values are omitted from API requests. However, any field with an
15406	// empty value appearing in NullFields will be sent to the server as
15407	// null. It is an error if a field in this list has a non-empty value.
15408	// This may be used to include null fields in Patch requests.
15409	NullFields []string `json:"-"`
15410}
15411
15412func (s *MachineTypeAggregatedList) MarshalJSON() ([]byte, error) {
15413	type NoMethod MachineTypeAggregatedList
15414	raw := NoMethod(*s)
15415	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15416}
15417
15418// MachineTypeAggregatedListWarning: [Output Only] Informational warning
15419// message.
15420type MachineTypeAggregatedListWarning struct {
15421	// Code: [Output Only] A warning code, if applicable. For example,
15422	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15423	// the response.
15424	//
15425	// Possible values:
15426	//   "CLEANUP_FAILED"
15427	//   "DEPRECATED_RESOURCE_USED"
15428	//   "DEPRECATED_TYPE_USED"
15429	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15430	//   "EXPERIMENTAL_TYPE_USED"
15431	//   "EXTERNAL_API_WARNING"
15432	//   "FIELD_VALUE_OVERRIDEN"
15433	//   "INJECTED_KERNELS_DEPRECATED"
15434	//   "MISSING_TYPE_DEPENDENCY"
15435	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15436	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15437	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15438	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15439	//   "NEXT_HOP_NOT_RUNNING"
15440	//   "NOT_CRITICAL_ERROR"
15441	//   "NO_RESULTS_ON_PAGE"
15442	//   "REQUIRED_TOS_AGREEMENT"
15443	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15444	//   "RESOURCE_NOT_DELETED"
15445	//   "SCHEMA_VALIDATION_IGNORED"
15446	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15447	//   "UNDECLARED_PROPERTIES"
15448	//   "UNREACHABLE"
15449	Code string `json:"code,omitempty"`
15450
15451	// Data: [Output Only] Metadata about this warning in key: value format.
15452	// For example:
15453	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15454	Data []*MachineTypeAggregatedListWarningData `json:"data,omitempty"`
15455
15456	// Message: [Output Only] A human-readable description of the warning
15457	// code.
15458	Message string `json:"message,omitempty"`
15459
15460	// ForceSendFields is a list of field names (e.g. "Code") to
15461	// unconditionally include in API requests. By default, fields with
15462	// empty values are omitted from API requests. However, any non-pointer,
15463	// non-interface field appearing in ForceSendFields will be sent to the
15464	// server regardless of whether the field is empty or not. This may be
15465	// used to include empty fields in Patch requests.
15466	ForceSendFields []string `json:"-"`
15467
15468	// NullFields is a list of field names (e.g. "Code") to include in API
15469	// requests with the JSON null value. By default, fields with empty
15470	// values are omitted from API requests. However, any field with an
15471	// empty value appearing in NullFields will be sent to the server as
15472	// null. It is an error if a field in this list has a non-empty value.
15473	// This may be used to include null fields in Patch requests.
15474	NullFields []string `json:"-"`
15475}
15476
15477func (s *MachineTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
15478	type NoMethod MachineTypeAggregatedListWarning
15479	raw := NoMethod(*s)
15480	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15481}
15482
15483type MachineTypeAggregatedListWarningData struct {
15484	// Key: [Output Only] A key that provides more detail on the warning
15485	// being returned. For example, for warnings where there are no results
15486	// in a list request for a particular zone, this key might be scope and
15487	// the key value might be the zone name. Other examples might be a key
15488	// indicating a deprecated resource and a suggested replacement, or a
15489	// warning about invalid network settings (for example, if an instance
15490	// attempts to perform IP forwarding but is not enabled for IP
15491	// forwarding).
15492	Key string `json:"key,omitempty"`
15493
15494	// Value: [Output Only] A warning data value corresponding to the key.
15495	Value string `json:"value,omitempty"`
15496
15497	// ForceSendFields is a list of field names (e.g. "Key") to
15498	// unconditionally include in API requests. By default, fields with
15499	// empty values are omitted from API requests. However, any non-pointer,
15500	// non-interface field appearing in ForceSendFields will be sent to the
15501	// server regardless of whether the field is empty or not. This may be
15502	// used to include empty fields in Patch requests.
15503	ForceSendFields []string `json:"-"`
15504
15505	// NullFields is a list of field names (e.g. "Key") to include in API
15506	// requests with the JSON null value. By default, fields with empty
15507	// values are omitted from API requests. However, any field with an
15508	// empty value appearing in NullFields will be sent to the server as
15509	// null. It is an error if a field in this list has a non-empty value.
15510	// This may be used to include null fields in Patch requests.
15511	NullFields []string `json:"-"`
15512}
15513
15514func (s *MachineTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
15515	type NoMethod MachineTypeAggregatedListWarningData
15516	raw := NoMethod(*s)
15517	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15518}
15519
15520// MachineTypeList: Contains a list of machine types.
15521type MachineTypeList struct {
15522	// Id: [Output Only] Unique identifier for the resource; defined by the
15523	// server.
15524	Id string `json:"id,omitempty"`
15525
15526	// Items: A list of MachineType resources.
15527	Items []*MachineType `json:"items,omitempty"`
15528
15529	// Kind: [Output Only] Type of resource. Always compute#machineTypeList
15530	// for lists of machine types.
15531	Kind string `json:"kind,omitempty"`
15532
15533	// NextPageToken: [Output Only] This token allows you to get the next
15534	// page of results for list requests. If the number of results is larger
15535	// than maxResults, use the nextPageToken as a value for the query
15536	// parameter pageToken in the next list request. Subsequent list
15537	// requests will have their own nextPageToken to continue paging through
15538	// the results.
15539	NextPageToken string `json:"nextPageToken,omitempty"`
15540
15541	// SelfLink: [Output Only] Server-defined URL for this resource.
15542	SelfLink string `json:"selfLink,omitempty"`
15543
15544	// Warning: [Output Only] Informational warning message.
15545	Warning *MachineTypeListWarning `json:"warning,omitempty"`
15546
15547	// ServerResponse contains the HTTP response code and headers from the
15548	// server.
15549	googleapi.ServerResponse `json:"-"`
15550
15551	// ForceSendFields is a list of field names (e.g. "Id") to
15552	// unconditionally include in API requests. By default, fields with
15553	// empty values are omitted from API requests. However, any non-pointer,
15554	// non-interface field appearing in ForceSendFields will be sent to the
15555	// server regardless of whether the field is empty or not. This may be
15556	// used to include empty fields in Patch requests.
15557	ForceSendFields []string `json:"-"`
15558
15559	// NullFields is a list of field names (e.g. "Id") to include in API
15560	// requests with the JSON null value. By default, fields with empty
15561	// values are omitted from API requests. However, any field with an
15562	// empty value appearing in NullFields will be sent to the server as
15563	// null. It is an error if a field in this list has a non-empty value.
15564	// This may be used to include null fields in Patch requests.
15565	NullFields []string `json:"-"`
15566}
15567
15568func (s *MachineTypeList) MarshalJSON() ([]byte, error) {
15569	type NoMethod MachineTypeList
15570	raw := NoMethod(*s)
15571	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15572}
15573
15574// MachineTypeListWarning: [Output Only] Informational warning message.
15575type MachineTypeListWarning struct {
15576	// Code: [Output Only] A warning code, if applicable. For example,
15577	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15578	// the response.
15579	//
15580	// Possible values:
15581	//   "CLEANUP_FAILED"
15582	//   "DEPRECATED_RESOURCE_USED"
15583	//   "DEPRECATED_TYPE_USED"
15584	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15585	//   "EXPERIMENTAL_TYPE_USED"
15586	//   "EXTERNAL_API_WARNING"
15587	//   "FIELD_VALUE_OVERRIDEN"
15588	//   "INJECTED_KERNELS_DEPRECATED"
15589	//   "MISSING_TYPE_DEPENDENCY"
15590	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15591	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15592	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15593	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15594	//   "NEXT_HOP_NOT_RUNNING"
15595	//   "NOT_CRITICAL_ERROR"
15596	//   "NO_RESULTS_ON_PAGE"
15597	//   "REQUIRED_TOS_AGREEMENT"
15598	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15599	//   "RESOURCE_NOT_DELETED"
15600	//   "SCHEMA_VALIDATION_IGNORED"
15601	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15602	//   "UNDECLARED_PROPERTIES"
15603	//   "UNREACHABLE"
15604	Code string `json:"code,omitempty"`
15605
15606	// Data: [Output Only] Metadata about this warning in key: value format.
15607	// For example:
15608	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15609	Data []*MachineTypeListWarningData `json:"data,omitempty"`
15610
15611	// Message: [Output Only] A human-readable description of the warning
15612	// code.
15613	Message string `json:"message,omitempty"`
15614
15615	// ForceSendFields is a list of field names (e.g. "Code") to
15616	// unconditionally include in API requests. By default, fields with
15617	// empty values are omitted from API requests. However, any non-pointer,
15618	// non-interface field appearing in ForceSendFields will be sent to the
15619	// server regardless of whether the field is empty or not. This may be
15620	// used to include empty fields in Patch requests.
15621	ForceSendFields []string `json:"-"`
15622
15623	// NullFields is a list of field names (e.g. "Code") to include in API
15624	// requests with the JSON null value. By default, fields with empty
15625	// values are omitted from API requests. However, any field with an
15626	// empty value appearing in NullFields will be sent to the server as
15627	// null. It is an error if a field in this list has a non-empty value.
15628	// This may be used to include null fields in Patch requests.
15629	NullFields []string `json:"-"`
15630}
15631
15632func (s *MachineTypeListWarning) MarshalJSON() ([]byte, error) {
15633	type NoMethod MachineTypeListWarning
15634	raw := NoMethod(*s)
15635	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15636}
15637
15638type MachineTypeListWarningData struct {
15639	// Key: [Output Only] A key that provides more detail on the warning
15640	// being returned. For example, for warnings where there are no results
15641	// in a list request for a particular zone, this key might be scope and
15642	// the key value might be the zone name. Other examples might be a key
15643	// indicating a deprecated resource and a suggested replacement, or a
15644	// warning about invalid network settings (for example, if an instance
15645	// attempts to perform IP forwarding but is not enabled for IP
15646	// forwarding).
15647	Key string `json:"key,omitempty"`
15648
15649	// Value: [Output Only] A warning data value corresponding to the key.
15650	Value string `json:"value,omitempty"`
15651
15652	// ForceSendFields is a list of field names (e.g. "Key") to
15653	// unconditionally include in API requests. By default, fields with
15654	// empty values are omitted from API requests. However, any non-pointer,
15655	// non-interface field appearing in ForceSendFields will be sent to the
15656	// server regardless of whether the field is empty or not. This may be
15657	// used to include empty fields in Patch requests.
15658	ForceSendFields []string `json:"-"`
15659
15660	// NullFields is a list of field names (e.g. "Key") to include in API
15661	// requests with the JSON null value. By default, fields with empty
15662	// values are omitted from API requests. However, any field with an
15663	// empty value appearing in NullFields will be sent to the server as
15664	// null. It is an error if a field in this list has a non-empty value.
15665	// This may be used to include null fields in Patch requests.
15666	NullFields []string `json:"-"`
15667}
15668
15669func (s *MachineTypeListWarningData) MarshalJSON() ([]byte, error) {
15670	type NoMethod MachineTypeListWarningData
15671	raw := NoMethod(*s)
15672	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15673}
15674
15675type MachineTypesScopedList struct {
15676	// MachineTypes: [Output Only] A list of machine types contained in this
15677	// scope.
15678	MachineTypes []*MachineType `json:"machineTypes,omitempty"`
15679
15680	// Warning: [Output Only] An informational warning that appears when the
15681	// machine types list is empty.
15682	Warning *MachineTypesScopedListWarning `json:"warning,omitempty"`
15683
15684	// ForceSendFields is a list of field names (e.g. "MachineTypes") to
15685	// unconditionally include in API requests. By default, fields with
15686	// empty values are omitted from API requests. However, any non-pointer,
15687	// non-interface field appearing in ForceSendFields will be sent to the
15688	// server regardless of whether the field is empty or not. This may be
15689	// used to include empty fields in Patch requests.
15690	ForceSendFields []string `json:"-"`
15691
15692	// NullFields is a list of field names (e.g. "MachineTypes") to include
15693	// in API requests with the JSON null value. By default, fields with
15694	// empty values are omitted from API requests. However, any field with
15695	// an empty value appearing in NullFields will be sent to the server as
15696	// null. It is an error if a field in this list has a non-empty value.
15697	// This may be used to include null fields in Patch requests.
15698	NullFields []string `json:"-"`
15699}
15700
15701func (s *MachineTypesScopedList) MarshalJSON() ([]byte, error) {
15702	type NoMethod MachineTypesScopedList
15703	raw := NoMethod(*s)
15704	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15705}
15706
15707// MachineTypesScopedListWarning: [Output Only] An informational warning
15708// that appears when the machine types list is empty.
15709type MachineTypesScopedListWarning struct {
15710	// Code: [Output Only] A warning code, if applicable. For example,
15711	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15712	// the response.
15713	//
15714	// Possible values:
15715	//   "CLEANUP_FAILED"
15716	//   "DEPRECATED_RESOURCE_USED"
15717	//   "DEPRECATED_TYPE_USED"
15718	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15719	//   "EXPERIMENTAL_TYPE_USED"
15720	//   "EXTERNAL_API_WARNING"
15721	//   "FIELD_VALUE_OVERRIDEN"
15722	//   "INJECTED_KERNELS_DEPRECATED"
15723	//   "MISSING_TYPE_DEPENDENCY"
15724	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15725	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15726	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15727	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15728	//   "NEXT_HOP_NOT_RUNNING"
15729	//   "NOT_CRITICAL_ERROR"
15730	//   "NO_RESULTS_ON_PAGE"
15731	//   "REQUIRED_TOS_AGREEMENT"
15732	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15733	//   "RESOURCE_NOT_DELETED"
15734	//   "SCHEMA_VALIDATION_IGNORED"
15735	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15736	//   "UNDECLARED_PROPERTIES"
15737	//   "UNREACHABLE"
15738	Code string `json:"code,omitempty"`
15739
15740	// Data: [Output Only] Metadata about this warning in key: value format.
15741	// For example:
15742	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15743	Data []*MachineTypesScopedListWarningData `json:"data,omitempty"`
15744
15745	// Message: [Output Only] A human-readable description of the warning
15746	// code.
15747	Message string `json:"message,omitempty"`
15748
15749	// ForceSendFields is a list of field names (e.g. "Code") to
15750	// unconditionally include in API requests. By default, fields with
15751	// empty values are omitted from API requests. However, any non-pointer,
15752	// non-interface field appearing in ForceSendFields will be sent to the
15753	// server regardless of whether the field is empty or not. This may be
15754	// used to include empty fields in Patch requests.
15755	ForceSendFields []string `json:"-"`
15756
15757	// NullFields is a list of field names (e.g. "Code") to include in API
15758	// requests with the JSON null value. By default, fields with empty
15759	// values are omitted from API requests. However, any field with an
15760	// empty value appearing in NullFields will be sent to the server as
15761	// null. It is an error if a field in this list has a non-empty value.
15762	// This may be used to include null fields in Patch requests.
15763	NullFields []string `json:"-"`
15764}
15765
15766func (s *MachineTypesScopedListWarning) MarshalJSON() ([]byte, error) {
15767	type NoMethod MachineTypesScopedListWarning
15768	raw := NoMethod(*s)
15769	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15770}
15771
15772type MachineTypesScopedListWarningData struct {
15773	// Key: [Output Only] A key that provides more detail on the warning
15774	// being returned. For example, for warnings where there are no results
15775	// in a list request for a particular zone, this key might be scope and
15776	// the key value might be the zone name. Other examples might be a key
15777	// indicating a deprecated resource and a suggested replacement, or a
15778	// warning about invalid network settings (for example, if an instance
15779	// attempts to perform IP forwarding but is not enabled for IP
15780	// forwarding).
15781	Key string `json:"key,omitempty"`
15782
15783	// Value: [Output Only] A warning data value corresponding to the key.
15784	Value string `json:"value,omitempty"`
15785
15786	// ForceSendFields is a list of field names (e.g. "Key") to
15787	// unconditionally include in API requests. By default, fields with
15788	// empty values are omitted from API requests. However, any non-pointer,
15789	// non-interface field appearing in ForceSendFields will be sent to the
15790	// server regardless of whether the field is empty or not. This may be
15791	// used to include empty fields in Patch requests.
15792	ForceSendFields []string `json:"-"`
15793
15794	// NullFields is a list of field names (e.g. "Key") to include in API
15795	// requests with the JSON null value. By default, fields with empty
15796	// values are omitted from API requests. However, any field with an
15797	// empty value appearing in NullFields will be sent to the server as
15798	// null. It is an error if a field in this list has a non-empty value.
15799	// This may be used to include null fields in Patch requests.
15800	NullFields []string `json:"-"`
15801}
15802
15803func (s *MachineTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
15804	type NoMethod MachineTypesScopedListWarningData
15805	raw := NoMethod(*s)
15806	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15807}
15808
15809// ManagedInstance: A Managed Instance resource.
15810type ManagedInstance struct {
15811	// CurrentAction: [Output Only] The current action that the managed
15812	// instance group has scheduled for the instance. Possible values:
15813	// - NONE The instance is running, and the managed instance group does
15814	// not have any scheduled actions for this instance.
15815	// - CREATING The managed instance group is creating this instance. If
15816	// the group fails to create this instance, it will try again until it
15817	// is successful.
15818	// - CREATING_WITHOUT_RETRIES The managed instance group is attempting
15819	// to create this instance only once. If the group fails to create this
15820	// instance, it does not try again and the group's targetSize value is
15821	// decreased instead.
15822	// - RECREATING The managed instance group is recreating this instance.
15823	//
15824	// - DELETING The managed instance group is permanently deleting this
15825	// instance.
15826	// - ABANDONING The managed instance group is abandoning this instance.
15827	// The instance will be removed from the instance group and from any
15828	// target pools that are associated with this group.
15829	// - RESTARTING The managed instance group is restarting the instance.
15830	//
15831	// - REFRESHING The managed instance group is applying configuration
15832	// changes to the instance without stopping it. For example, the group
15833	// can update the target pool list for an instance without stopping that
15834	// instance.
15835	// - VERIFYING The managed instance group has created the instance and
15836	// it is in the process of being verified.
15837	//
15838	// Possible values:
15839	//   "ABANDONING"
15840	//   "CREATING"
15841	//   "CREATING_WITHOUT_RETRIES"
15842	//   "DELETING"
15843	//   "NONE"
15844	//   "RECREATING"
15845	//   "REFRESHING"
15846	//   "RESTARTING"
15847	//   "VERIFYING"
15848	CurrentAction string `json:"currentAction,omitempty"`
15849
15850	// Id: [Output only] The unique identifier for this resource. This field
15851	// is empty when instance does not exist.
15852	Id uint64 `json:"id,omitempty,string"`
15853
15854	// Instance: [Output Only] The URL of the instance. The URL can exist
15855	// even if the instance has not yet been created.
15856	Instance string `json:"instance,omitempty"`
15857
15858	// InstanceStatus: [Output Only] The status of the instance. This field
15859	// is empty when the instance does not exist.
15860	//
15861	// Possible values:
15862	//   "PROVISIONING"
15863	//   "REPAIRING"
15864	//   "RUNNING"
15865	//   "STAGING"
15866	//   "STOPPED"
15867	//   "STOPPING"
15868	//   "SUSPENDED"
15869	//   "SUSPENDING"
15870	//   "TERMINATED"
15871	InstanceStatus string `json:"instanceStatus,omitempty"`
15872
15873	// LastAttempt: [Output Only] Information about the last attempt to
15874	// create or delete the instance.
15875	LastAttempt *ManagedInstanceLastAttempt `json:"lastAttempt,omitempty"`
15876
15877	// Version: [Output Only] Intended version of this instance.
15878	Version *ManagedInstanceVersion `json:"version,omitempty"`
15879
15880	// ForceSendFields is a list of field names (e.g. "CurrentAction") to
15881	// unconditionally include in API requests. By default, fields with
15882	// empty values are omitted from API requests. However, any non-pointer,
15883	// non-interface field appearing in ForceSendFields will be sent to the
15884	// server regardless of whether the field is empty or not. This may be
15885	// used to include empty fields in Patch requests.
15886	ForceSendFields []string `json:"-"`
15887
15888	// NullFields is a list of field names (e.g. "CurrentAction") to include
15889	// in API requests with the JSON null value. By default, fields with
15890	// empty values are omitted from API requests. However, any field with
15891	// an empty value appearing in NullFields will be sent to the server as
15892	// null. It is an error if a field in this list has a non-empty value.
15893	// This may be used to include null fields in Patch requests.
15894	NullFields []string `json:"-"`
15895}
15896
15897func (s *ManagedInstance) MarshalJSON() ([]byte, error) {
15898	type NoMethod ManagedInstance
15899	raw := NoMethod(*s)
15900	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15901}
15902
15903type ManagedInstanceLastAttempt struct {
15904	// Errors: [Output Only] Encountered errors during the last attempt to
15905	// create or delete the instance.
15906	Errors *ManagedInstanceLastAttemptErrors `json:"errors,omitempty"`
15907
15908	// ForceSendFields is a list of field names (e.g. "Errors") to
15909	// unconditionally include in API requests. By default, fields with
15910	// empty values are omitted from API requests. However, any non-pointer,
15911	// non-interface field appearing in ForceSendFields will be sent to the
15912	// server regardless of whether the field is empty or not. This may be
15913	// used to include empty fields in Patch requests.
15914	ForceSendFields []string `json:"-"`
15915
15916	// NullFields is a list of field names (e.g. "Errors") to include in API
15917	// requests with the JSON null value. By default, fields with empty
15918	// values are omitted from API requests. However, any field with an
15919	// empty value appearing in NullFields will be sent to the server as
15920	// null. It is an error if a field in this list has a non-empty value.
15921	// This may be used to include null fields in Patch requests.
15922	NullFields []string `json:"-"`
15923}
15924
15925func (s *ManagedInstanceLastAttempt) MarshalJSON() ([]byte, error) {
15926	type NoMethod ManagedInstanceLastAttempt
15927	raw := NoMethod(*s)
15928	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15929}
15930
15931// ManagedInstanceLastAttemptErrors: [Output Only] Encountered errors
15932// during the last attempt to create or delete the instance.
15933type ManagedInstanceLastAttemptErrors struct {
15934	// Errors: [Output Only] The array of errors encountered while
15935	// processing this operation.
15936	Errors []*ManagedInstanceLastAttemptErrorsErrors `json:"errors,omitempty"`
15937
15938	// ForceSendFields is a list of field names (e.g. "Errors") to
15939	// unconditionally include in API requests. By default, fields with
15940	// empty values are omitted from API requests. However, any non-pointer,
15941	// non-interface field appearing in ForceSendFields will be sent to the
15942	// server regardless of whether the field is empty or not. This may be
15943	// used to include empty fields in Patch requests.
15944	ForceSendFields []string `json:"-"`
15945
15946	// NullFields is a list of field names (e.g. "Errors") to include in API
15947	// requests with the JSON null value. By default, fields with empty
15948	// values are omitted from API requests. However, any field with an
15949	// empty value appearing in NullFields will be sent to the server as
15950	// null. It is an error if a field in this list has a non-empty value.
15951	// This may be used to include null fields in Patch requests.
15952	NullFields []string `json:"-"`
15953}
15954
15955func (s *ManagedInstanceLastAttemptErrors) MarshalJSON() ([]byte, error) {
15956	type NoMethod ManagedInstanceLastAttemptErrors
15957	raw := NoMethod(*s)
15958	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15959}
15960
15961type ManagedInstanceLastAttemptErrorsErrors struct {
15962	// Code: [Output Only] The error type identifier for this error.
15963	Code string `json:"code,omitempty"`
15964
15965	// Location: [Output Only] Indicates the field in the request that
15966	// caused the error. This property is optional.
15967	Location string `json:"location,omitempty"`
15968
15969	// Message: [Output Only] An optional, human-readable error message.
15970	Message string `json:"message,omitempty"`
15971
15972	// ForceSendFields is a list of field names (e.g. "Code") to
15973	// unconditionally include in API requests. By default, fields with
15974	// empty values are omitted from API requests. However, any non-pointer,
15975	// non-interface field appearing in ForceSendFields will be sent to the
15976	// server regardless of whether the field is empty or not. This may be
15977	// used to include empty fields in Patch requests.
15978	ForceSendFields []string `json:"-"`
15979
15980	// NullFields is a list of field names (e.g. "Code") to include in API
15981	// requests with the JSON null value. By default, fields with empty
15982	// values are omitted from API requests. However, any field with an
15983	// empty value appearing in NullFields will be sent to the server as
15984	// null. It is an error if a field in this list has a non-empty value.
15985	// This may be used to include null fields in Patch requests.
15986	NullFields []string `json:"-"`
15987}
15988
15989func (s *ManagedInstanceLastAttemptErrorsErrors) MarshalJSON() ([]byte, error) {
15990	type NoMethod ManagedInstanceLastAttemptErrorsErrors
15991	raw := NoMethod(*s)
15992	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15993}
15994
15995type ManagedInstanceVersion struct {
15996	// InstanceTemplate: [Output Only] The intended template of the
15997	// instance. This field is empty when current_action is one of {
15998	// DELETING, ABANDONING }.
15999	InstanceTemplate string `json:"instanceTemplate,omitempty"`
16000
16001	// Name: [Output Only] Name of the version.
16002	Name string `json:"name,omitempty"`
16003
16004	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
16005	// unconditionally include in API requests. By default, fields with
16006	// empty values are omitted from API requests. However, any non-pointer,
16007	// non-interface field appearing in ForceSendFields will be sent to the
16008	// server regardless of whether the field is empty or not. This may be
16009	// used to include empty fields in Patch requests.
16010	ForceSendFields []string `json:"-"`
16011
16012	// NullFields is a list of field names (e.g. "InstanceTemplate") to
16013	// include in API requests with the JSON null value. By default, fields
16014	// with empty values are omitted from API requests. However, any field
16015	// with an empty value appearing in NullFields will be sent to the
16016	// server as null. It is an error if a field in this list has a
16017	// non-empty value. This may be used to include null fields in Patch
16018	// requests.
16019	NullFields []string `json:"-"`
16020}
16021
16022func (s *ManagedInstanceVersion) MarshalJSON() ([]byte, error) {
16023	type NoMethod ManagedInstanceVersion
16024	raw := NoMethod(*s)
16025	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16026}
16027
16028// Metadata: A metadata key/value entry.
16029type Metadata struct {
16030	// Fingerprint: Specifies a fingerprint for this request, which is
16031	// essentially a hash of the metadata's contents and used for optimistic
16032	// locking. The fingerprint is initially generated by Compute Engine and
16033	// changes after every request to modify or update metadata. You must
16034	// always provide an up-to-date fingerprint hash in order to update or
16035	// change metadata, otherwise the request will fail with error 412
16036	// conditionNotMet.
16037	//
16038	// To see the latest fingerprint, make a get() request to retrieve the
16039	// resource.
16040	Fingerprint string `json:"fingerprint,omitempty"`
16041
16042	// Items: Array of key/value pairs. The total size of all keys and
16043	// values must be less than 512 KB.
16044	Items []*MetadataItems `json:"items,omitempty"`
16045
16046	// Kind: [Output Only] Type of the resource. Always compute#metadata for
16047	// metadata.
16048	Kind string `json:"kind,omitempty"`
16049
16050	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
16051	// unconditionally include in API requests. By default, fields with
16052	// empty values are omitted from API requests. However, any non-pointer,
16053	// non-interface field appearing in ForceSendFields will be sent to the
16054	// server regardless of whether the field is empty or not. This may be
16055	// used to include empty fields in Patch requests.
16056	ForceSendFields []string `json:"-"`
16057
16058	// NullFields is a list of field names (e.g. "Fingerprint") to include
16059	// in API requests with the JSON null value. By default, fields with
16060	// empty values are omitted from API requests. However, any field with
16061	// an empty value appearing in NullFields will be sent to the server as
16062	// null. It is an error if a field in this list has a non-empty value.
16063	// This may be used to include null fields in Patch requests.
16064	NullFields []string `json:"-"`
16065}
16066
16067func (s *Metadata) MarshalJSON() ([]byte, error) {
16068	type NoMethod Metadata
16069	raw := NoMethod(*s)
16070	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16071}
16072
16073type MetadataItems struct {
16074	// Key: Key for the metadata entry. Keys must conform to the following
16075	// regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is
16076	// reflected as part of a URL in the metadata server. Additionally, to
16077	// avoid ambiguity, keys must not conflict with any other metadata keys
16078	// for the project.
16079	Key string `json:"key,omitempty"`
16080
16081	// Value: Value for the metadata entry. These are free-form strings, and
16082	// only have meaning as interpreted by the image running in the
16083	// instance. The only restriction placed on values is that their size
16084	// must be less than or equal to 262144 bytes (256 KiB).
16085	Value *string `json:"value,omitempty"`
16086
16087	// ForceSendFields is a list of field names (e.g. "Key") to
16088	// unconditionally include in API requests. By default, fields with
16089	// empty values are omitted from API requests. However, any non-pointer,
16090	// non-interface field appearing in ForceSendFields will be sent to the
16091	// server regardless of whether the field is empty or not. This may be
16092	// used to include empty fields in Patch requests.
16093	ForceSendFields []string `json:"-"`
16094
16095	// NullFields is a list of field names (e.g. "Key") to include in API
16096	// requests with the JSON null value. By default, fields with empty
16097	// values are omitted from API requests. However, any field with an
16098	// empty value appearing in NullFields will be sent to the server as
16099	// null. It is an error if a field in this list has a non-empty value.
16100	// This may be used to include null fields in Patch requests.
16101	NullFields []string `json:"-"`
16102}
16103
16104func (s *MetadataItems) MarshalJSON() ([]byte, error) {
16105	type NoMethod MetadataItems
16106	raw := NoMethod(*s)
16107	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16108}
16109
16110// NamedPort: The named port. For example: .
16111type NamedPort struct {
16112	// Name: The name for this named port. The name must be 1-63 characters
16113	// long, and comply with RFC1035.
16114	Name string `json:"name,omitempty"`
16115
16116	// Port: The port number, which can be a value between 1 and 65535.
16117	Port int64 `json:"port,omitempty"`
16118
16119	// ForceSendFields is a list of field names (e.g. "Name") to
16120	// unconditionally include in API requests. By default, fields with
16121	// empty values are omitted from API requests. However, any non-pointer,
16122	// non-interface field appearing in ForceSendFields will be sent to the
16123	// server regardless of whether the field is empty or not. This may be
16124	// used to include empty fields in Patch requests.
16125	ForceSendFields []string `json:"-"`
16126
16127	// NullFields is a list of field names (e.g. "Name") to include in API
16128	// requests with the JSON null value. By default, fields with empty
16129	// values are omitted from API requests. However, any field with an
16130	// empty value appearing in NullFields will be sent to the server as
16131	// null. It is an error if a field in this list has a non-empty value.
16132	// This may be used to include null fields in Patch requests.
16133	NullFields []string `json:"-"`
16134}
16135
16136func (s *NamedPort) MarshalJSON() ([]byte, error) {
16137	type NoMethod NamedPort
16138	raw := NoMethod(*s)
16139	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16140}
16141
16142// Network: Represents a Network resource. Read Virtual Private Cloud
16143// (VPC) Network Overview for more information. (== resource_for
16144// v1.networks ==) (== resource_for beta.networks ==)
16145type Network struct {
16146	// IPv4Range: Deprecated in favor of subnet mode networks. The range of
16147	// internal addresses that are legal on this network. This range is a
16148	// CIDR specification, for example: 192.168.0.0/16. Provided by the
16149	// client when the network is created.
16150	IPv4Range string `json:"IPv4Range,omitempty"`
16151
16152	// AutoCreateSubnetworks: When set to true, the VPC network is created
16153	// in "auto" mode. When set to false, the VPC network is created in
16154	// "custom" mode.
16155	//
16156	// An auto mode VPC network starts with one subnet per region. Each
16157	// subnet has a predetermined range as described in Auto mode VPC
16158	// network IP ranges.
16159	AutoCreateSubnetworks bool `json:"autoCreateSubnetworks,omitempty"`
16160
16161	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
16162	// format.
16163	CreationTimestamp string `json:"creationTimestamp,omitempty"`
16164
16165	// Description: An optional description of this resource. Provide this
16166	// property when you create the resource.
16167	Description string `json:"description,omitempty"`
16168
16169	// GatewayIPv4: [Output Only] The gateway address for default routing
16170	// out of the network. This value is read only and is selected by GCP.
16171	GatewayIPv4 string `json:"gatewayIPv4,omitempty"`
16172
16173	// Id: [Output Only] The unique identifier for the resource. This
16174	// identifier is defined by the server.
16175	Id uint64 `json:"id,omitempty,string"`
16176
16177	// Kind: [Output Only] Type of the resource. Always compute#network for
16178	// networks.
16179	Kind string `json:"kind,omitempty"`
16180
16181	// Name: Name of the resource. Provided by the client when the resource
16182	// is created. The name must be 1-63 characters long, and comply with
16183	// RFC1035. Specifically, the name must be 1-63 characters long and
16184	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
16185	// the first character must be a lowercase letter, and all following
16186	// characters must be a dash, lowercase letter, or digit, except the
16187	// last character, which cannot be a dash.
16188	Name string `json:"name,omitempty"`
16189
16190	// Peerings: [Output Only] A list of network peerings for the resource.
16191	Peerings []*NetworkPeering `json:"peerings,omitempty"`
16192
16193	// RoutingConfig: The network-level routing configuration for this
16194	// network. Used by Cloud Router to determine what type of network-wide
16195	// routing behavior to enforce.
16196	RoutingConfig *NetworkRoutingConfig `json:"routingConfig,omitempty"`
16197
16198	// SelfLink: [Output Only] Server-defined URL for the resource.
16199	SelfLink string `json:"selfLink,omitempty"`
16200
16201	// Subnetworks: [Output Only] Server-defined fully-qualified URLs for
16202	// all subnetworks in this VPC network.
16203	Subnetworks []string `json:"subnetworks,omitempty"`
16204
16205	// ServerResponse contains the HTTP response code and headers from the
16206	// server.
16207	googleapi.ServerResponse `json:"-"`
16208
16209	// ForceSendFields is a list of field names (e.g. "IPv4Range") to
16210	// unconditionally include in API requests. By default, fields with
16211	// empty values are omitted from API requests. However, any non-pointer,
16212	// non-interface field appearing in ForceSendFields will be sent to the
16213	// server regardless of whether the field is empty or not. This may be
16214	// used to include empty fields in Patch requests.
16215	ForceSendFields []string `json:"-"`
16216
16217	// NullFields is a list of field names (e.g. "IPv4Range") to include in
16218	// API requests with the JSON null value. By default, fields with empty
16219	// values are omitted from API requests. However, any field with an
16220	// empty value appearing in NullFields will be sent to the server as
16221	// null. It is an error if a field in this list has a non-empty value.
16222	// This may be used to include null fields in Patch requests.
16223	NullFields []string `json:"-"`
16224}
16225
16226func (s *Network) MarshalJSON() ([]byte, error) {
16227	type NoMethod Network
16228	raw := NoMethod(*s)
16229	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16230}
16231
16232// NetworkEndpoint: The network endpoint.
16233type NetworkEndpoint struct {
16234	// Instance: The name for a specific VM instance that the IP address
16235	// belongs to. This is required for network endpoints of type
16236	// GCE_VM_IP_PORT. The instance must be in the same zone of network
16237	// endpoint group.
16238	//
16239	// The name must be 1-63 characters long, and comply with RFC1035.
16240	Instance string `json:"instance,omitempty"`
16241
16242	// IpAddress: Optional IPv4 address of network endpoint. The IP address
16243	// must belong to a VM in GCE (either the primary IP or as part of an
16244	// aliased IP range). If the IP address is not specified, then the
16245	// primary IP address for the VM instance in the network that the
16246	// network endpoint group belongs to will be used.
16247	IpAddress string `json:"ipAddress,omitempty"`
16248
16249	// Port: Optional port number of network endpoint. If not specified and
16250	// the NetworkEndpointGroup.network_endpoint_type is GCE_IP_PORT, the
16251	// defaultPort for the network endpoint group will be used.
16252	Port int64 `json:"port,omitempty"`
16253
16254	// ForceSendFields is a list of field names (e.g. "Instance") to
16255	// unconditionally include in API requests. By default, fields with
16256	// empty values are omitted from API requests. However, any non-pointer,
16257	// non-interface field appearing in ForceSendFields will be sent to the
16258	// server regardless of whether the field is empty or not. This may be
16259	// used to include empty fields in Patch requests.
16260	ForceSendFields []string `json:"-"`
16261
16262	// NullFields is a list of field names (e.g. "Instance") to include in
16263	// API requests with the JSON null value. By default, fields with empty
16264	// values are omitted from API requests. However, any field with an
16265	// empty value appearing in NullFields will be sent to the server as
16266	// null. It is an error if a field in this list has a non-empty value.
16267	// This may be used to include null fields in Patch requests.
16268	NullFields []string `json:"-"`
16269}
16270
16271func (s *NetworkEndpoint) MarshalJSON() ([]byte, error) {
16272	type NoMethod NetworkEndpoint
16273	raw := NoMethod(*s)
16274	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16275}
16276
16277// NetworkEndpointGroup: Represents a collection of network endpoints.
16278type NetworkEndpointGroup struct {
16279	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
16280	// format.
16281	CreationTimestamp string `json:"creationTimestamp,omitempty"`
16282
16283	// DefaultPort: The default port used if the port number is not
16284	// specified in the network endpoint.
16285	DefaultPort int64 `json:"defaultPort,omitempty"`
16286
16287	// Description: An optional description of this resource. Provide this
16288	// property when you create the resource.
16289	Description string `json:"description,omitempty"`
16290
16291	// Id: [Output Only] The unique identifier for the resource. This
16292	// identifier is defined by the server.
16293	Id uint64 `json:"id,omitempty,string"`
16294
16295	// Kind: [Output Only] Type of the resource. Always
16296	// compute#networkEndpointGroup for network endpoint group.
16297	Kind string `json:"kind,omitempty"`
16298
16299	// Name: Name of the resource; provided by the client when the resource
16300	// is created. The name must be 1-63 characters long, and comply with
16301	// RFC1035. Specifically, the name must be 1-63 characters long and
16302	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
16303	// the first character must be a lowercase letter, and all following
16304	// characters must be a dash, lowercase letter, or digit, except the
16305	// last character, which cannot be a dash.
16306	Name string `json:"name,omitempty"`
16307
16308	// Network: The URL of the network to which all network endpoints in the
16309	// NEG belong. Uses "default" project network if unspecified.
16310	Network string `json:"network,omitempty"`
16311
16312	// NetworkEndpointType: Type of network endpoints in this network
16313	// endpoint group. Currently the only supported value is GCE_VM_IP_PORT.
16314	//
16315	// Possible values:
16316	//   "GCE_VM_IP_PORT"
16317	NetworkEndpointType string `json:"networkEndpointType,omitempty"`
16318
16319	// SelfLink: [Output Only] Server-defined URL for the resource.
16320	SelfLink string `json:"selfLink,omitempty"`
16321
16322	// Size: [Output only] Number of network endpoints in the network
16323	// endpoint group.
16324	Size int64 `json:"size,omitempty"`
16325
16326	// Subnetwork: Optional URL of the subnetwork to which all network
16327	// endpoints in the NEG belong.
16328	Subnetwork string `json:"subnetwork,omitempty"`
16329
16330	// Zone: [Output Only] The URL of the zone where the network endpoint
16331	// group is located.
16332	Zone string `json:"zone,omitempty"`
16333
16334	// ServerResponse contains the HTTP response code and headers from the
16335	// server.
16336	googleapi.ServerResponse `json:"-"`
16337
16338	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
16339	// to unconditionally include in API requests. By default, fields with
16340	// empty values are omitted from API requests. However, any non-pointer,
16341	// non-interface field appearing in ForceSendFields will be sent to the
16342	// server regardless of whether the field is empty or not. This may be
16343	// used to include empty fields in Patch requests.
16344	ForceSendFields []string `json:"-"`
16345
16346	// NullFields is a list of field names (e.g. "CreationTimestamp") to
16347	// include in API requests with the JSON null value. By default, fields
16348	// with empty values are omitted from API requests. However, any field
16349	// with an empty value appearing in NullFields will be sent to the
16350	// server as null. It is an error if a field in this list has a
16351	// non-empty value. This may be used to include null fields in Patch
16352	// requests.
16353	NullFields []string `json:"-"`
16354}
16355
16356func (s *NetworkEndpointGroup) MarshalJSON() ([]byte, error) {
16357	type NoMethod NetworkEndpointGroup
16358	raw := NoMethod(*s)
16359	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16360}
16361
16362type NetworkEndpointGroupAggregatedList struct {
16363	// Id: [Output Only] Unique identifier for the resource; defined by the
16364	// server.
16365	Id string `json:"id,omitempty"`
16366
16367	// Items: A list of NetworkEndpointGroupsScopedList resources.
16368	Items map[string]NetworkEndpointGroupsScopedList `json:"items,omitempty"`
16369
16370	// Kind: [Output Only] The resource type, which is always
16371	// compute#networkEndpointGroupAggregatedList for aggregated lists of
16372	// network endpoint groups.
16373	Kind string `json:"kind,omitempty"`
16374
16375	// NextPageToken: [Output Only] This token allows you to get the next
16376	// page of results for list requests. If the number of results is larger
16377	// than maxResults, use the nextPageToken as a value for the query
16378	// parameter pageToken in the next list request. Subsequent list
16379	// requests will have their own nextPageToken to continue paging through
16380	// the results.
16381	NextPageToken string `json:"nextPageToken,omitempty"`
16382
16383	// SelfLink: [Output Only] Server-defined URL for this resource.
16384	SelfLink string `json:"selfLink,omitempty"`
16385
16386	// Warning: [Output Only] Informational warning message.
16387	Warning *NetworkEndpointGroupAggregatedListWarning `json:"warning,omitempty"`
16388
16389	// ServerResponse contains the HTTP response code and headers from the
16390	// server.
16391	googleapi.ServerResponse `json:"-"`
16392
16393	// ForceSendFields is a list of field names (e.g. "Id") to
16394	// unconditionally include in API requests. By default, fields with
16395	// empty values are omitted from API requests. However, any non-pointer,
16396	// non-interface field appearing in ForceSendFields will be sent to the
16397	// server regardless of whether the field is empty or not. This may be
16398	// used to include empty fields in Patch requests.
16399	ForceSendFields []string `json:"-"`
16400
16401	// NullFields is a list of field names (e.g. "Id") to include in API
16402	// requests with the JSON null value. By default, fields with empty
16403	// values are omitted from API requests. However, any field with an
16404	// empty value appearing in NullFields will be sent to the server as
16405	// null. It is an error if a field in this list has a non-empty value.
16406	// This may be used to include null fields in Patch requests.
16407	NullFields []string `json:"-"`
16408}
16409
16410func (s *NetworkEndpointGroupAggregatedList) MarshalJSON() ([]byte, error) {
16411	type NoMethod NetworkEndpointGroupAggregatedList
16412	raw := NoMethod(*s)
16413	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16414}
16415
16416// NetworkEndpointGroupAggregatedListWarning: [Output Only]
16417// Informational warning message.
16418type NetworkEndpointGroupAggregatedListWarning struct {
16419	// Code: [Output Only] A warning code, if applicable. For example,
16420	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16421	// the response.
16422	//
16423	// Possible values:
16424	//   "CLEANUP_FAILED"
16425	//   "DEPRECATED_RESOURCE_USED"
16426	//   "DEPRECATED_TYPE_USED"
16427	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16428	//   "EXPERIMENTAL_TYPE_USED"
16429	//   "EXTERNAL_API_WARNING"
16430	//   "FIELD_VALUE_OVERRIDEN"
16431	//   "INJECTED_KERNELS_DEPRECATED"
16432	//   "MISSING_TYPE_DEPENDENCY"
16433	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16434	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16435	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16436	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16437	//   "NEXT_HOP_NOT_RUNNING"
16438	//   "NOT_CRITICAL_ERROR"
16439	//   "NO_RESULTS_ON_PAGE"
16440	//   "REQUIRED_TOS_AGREEMENT"
16441	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16442	//   "RESOURCE_NOT_DELETED"
16443	//   "SCHEMA_VALIDATION_IGNORED"
16444	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16445	//   "UNDECLARED_PROPERTIES"
16446	//   "UNREACHABLE"
16447	Code string `json:"code,omitempty"`
16448
16449	// Data: [Output Only] Metadata about this warning in key: value format.
16450	// For example:
16451	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16452	Data []*NetworkEndpointGroupAggregatedListWarningData `json:"data,omitempty"`
16453
16454	// Message: [Output Only] A human-readable description of the warning
16455	// code.
16456	Message string `json:"message,omitempty"`
16457
16458	// ForceSendFields is a list of field names (e.g. "Code") to
16459	// unconditionally include in API requests. By default, fields with
16460	// empty values are omitted from API requests. However, any non-pointer,
16461	// non-interface field appearing in ForceSendFields will be sent to the
16462	// server regardless of whether the field is empty or not. This may be
16463	// used to include empty fields in Patch requests.
16464	ForceSendFields []string `json:"-"`
16465
16466	// NullFields is a list of field names (e.g. "Code") to include in API
16467	// requests with the JSON null value. By default, fields with empty
16468	// values are omitted from API requests. However, any field with an
16469	// empty value appearing in NullFields will be sent to the server as
16470	// null. It is an error if a field in this list has a non-empty value.
16471	// This may be used to include null fields in Patch requests.
16472	NullFields []string `json:"-"`
16473}
16474
16475func (s *NetworkEndpointGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
16476	type NoMethod NetworkEndpointGroupAggregatedListWarning
16477	raw := NoMethod(*s)
16478	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16479}
16480
16481type NetworkEndpointGroupAggregatedListWarningData struct {
16482	// Key: [Output Only] A key that provides more detail on the warning
16483	// being returned. For example, for warnings where there are no results
16484	// in a list request for a particular zone, this key might be scope and
16485	// the key value might be the zone name. Other examples might be a key
16486	// indicating a deprecated resource and a suggested replacement, or a
16487	// warning about invalid network settings (for example, if an instance
16488	// attempts to perform IP forwarding but is not enabled for IP
16489	// forwarding).
16490	Key string `json:"key,omitempty"`
16491
16492	// Value: [Output Only] A warning data value corresponding to the key.
16493	Value string `json:"value,omitempty"`
16494
16495	// ForceSendFields is a list of field names (e.g. "Key") to
16496	// unconditionally include in API requests. By default, fields with
16497	// empty values are omitted from API requests. However, any non-pointer,
16498	// non-interface field appearing in ForceSendFields will be sent to the
16499	// server regardless of whether the field is empty or not. This may be
16500	// used to include empty fields in Patch requests.
16501	ForceSendFields []string `json:"-"`
16502
16503	// NullFields is a list of field names (e.g. "Key") to include in API
16504	// requests with the JSON null value. By default, fields with empty
16505	// values are omitted from API requests. However, any field with an
16506	// empty value appearing in NullFields will be sent to the server as
16507	// null. It is an error if a field in this list has a non-empty value.
16508	// This may be used to include null fields in Patch requests.
16509	NullFields []string `json:"-"`
16510}
16511
16512func (s *NetworkEndpointGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
16513	type NoMethod NetworkEndpointGroupAggregatedListWarningData
16514	raw := NoMethod(*s)
16515	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16516}
16517
16518type NetworkEndpointGroupList struct {
16519	// Id: [Output Only] Unique identifier for the resource; defined by the
16520	// server.
16521	Id string `json:"id,omitempty"`
16522
16523	// Items: A list of NetworkEndpointGroup resources.
16524	Items []*NetworkEndpointGroup `json:"items,omitempty"`
16525
16526	// Kind: [Output Only] The resource type, which is always
16527	// compute#networkEndpointGroupList for network endpoint group lists.
16528	Kind string `json:"kind,omitempty"`
16529
16530	// NextPageToken: [Output Only] This token allows you to get the next
16531	// page of results for list requests. If the number of results is larger
16532	// than maxResults, use the nextPageToken as a value for the query
16533	// parameter pageToken in the next list request. Subsequent list
16534	// requests will have their own nextPageToken to continue paging through
16535	// the results.
16536	NextPageToken string `json:"nextPageToken,omitempty"`
16537
16538	// SelfLink: [Output Only] Server-defined URL for this resource.
16539	SelfLink string `json:"selfLink,omitempty"`
16540
16541	// Warning: [Output Only] Informational warning message.
16542	Warning *NetworkEndpointGroupListWarning `json:"warning,omitempty"`
16543
16544	// ServerResponse contains the HTTP response code and headers from the
16545	// server.
16546	googleapi.ServerResponse `json:"-"`
16547
16548	// ForceSendFields is a list of field names (e.g. "Id") to
16549	// unconditionally include in API requests. By default, fields with
16550	// empty values are omitted from API requests. However, any non-pointer,
16551	// non-interface field appearing in ForceSendFields will be sent to the
16552	// server regardless of whether the field is empty or not. This may be
16553	// used to include empty fields in Patch requests.
16554	ForceSendFields []string `json:"-"`
16555
16556	// NullFields is a list of field names (e.g. "Id") to include in API
16557	// requests with the JSON null value. By default, fields with empty
16558	// values are omitted from API requests. However, any field with an
16559	// empty value appearing in NullFields will be sent to the server as
16560	// null. It is an error if a field in this list has a non-empty value.
16561	// This may be used to include null fields in Patch requests.
16562	NullFields []string `json:"-"`
16563}
16564
16565func (s *NetworkEndpointGroupList) MarshalJSON() ([]byte, error) {
16566	type NoMethod NetworkEndpointGroupList
16567	raw := NoMethod(*s)
16568	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16569}
16570
16571// NetworkEndpointGroupListWarning: [Output Only] Informational warning
16572// message.
16573type NetworkEndpointGroupListWarning struct {
16574	// Code: [Output Only] A warning code, if applicable. For example,
16575	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16576	// the response.
16577	//
16578	// Possible values:
16579	//   "CLEANUP_FAILED"
16580	//   "DEPRECATED_RESOURCE_USED"
16581	//   "DEPRECATED_TYPE_USED"
16582	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16583	//   "EXPERIMENTAL_TYPE_USED"
16584	//   "EXTERNAL_API_WARNING"
16585	//   "FIELD_VALUE_OVERRIDEN"
16586	//   "INJECTED_KERNELS_DEPRECATED"
16587	//   "MISSING_TYPE_DEPENDENCY"
16588	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16589	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16590	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16591	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16592	//   "NEXT_HOP_NOT_RUNNING"
16593	//   "NOT_CRITICAL_ERROR"
16594	//   "NO_RESULTS_ON_PAGE"
16595	//   "REQUIRED_TOS_AGREEMENT"
16596	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16597	//   "RESOURCE_NOT_DELETED"
16598	//   "SCHEMA_VALIDATION_IGNORED"
16599	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16600	//   "UNDECLARED_PROPERTIES"
16601	//   "UNREACHABLE"
16602	Code string `json:"code,omitempty"`
16603
16604	// Data: [Output Only] Metadata about this warning in key: value format.
16605	// For example:
16606	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16607	Data []*NetworkEndpointGroupListWarningData `json:"data,omitempty"`
16608
16609	// Message: [Output Only] A human-readable description of the warning
16610	// code.
16611	Message string `json:"message,omitempty"`
16612
16613	// ForceSendFields is a list of field names (e.g. "Code") to
16614	// unconditionally include in API requests. By default, fields with
16615	// empty values are omitted from API requests. However, any non-pointer,
16616	// non-interface field appearing in ForceSendFields will be sent to the
16617	// server regardless of whether the field is empty or not. This may be
16618	// used to include empty fields in Patch requests.
16619	ForceSendFields []string `json:"-"`
16620
16621	// NullFields is a list of field names (e.g. "Code") to include in API
16622	// requests with the JSON null value. By default, fields with empty
16623	// values are omitted from API requests. However, any field with an
16624	// empty value appearing in NullFields will be sent to the server as
16625	// null. It is an error if a field in this list has a non-empty value.
16626	// This may be used to include null fields in Patch requests.
16627	NullFields []string `json:"-"`
16628}
16629
16630func (s *NetworkEndpointGroupListWarning) MarshalJSON() ([]byte, error) {
16631	type NoMethod NetworkEndpointGroupListWarning
16632	raw := NoMethod(*s)
16633	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16634}
16635
16636type NetworkEndpointGroupListWarningData struct {
16637	// Key: [Output Only] A key that provides more detail on the warning
16638	// being returned. For example, for warnings where there are no results
16639	// in a list request for a particular zone, this key might be scope and
16640	// the key value might be the zone name. Other examples might be a key
16641	// indicating a deprecated resource and a suggested replacement, or a
16642	// warning about invalid network settings (for example, if an instance
16643	// attempts to perform IP forwarding but is not enabled for IP
16644	// forwarding).
16645	Key string `json:"key,omitempty"`
16646
16647	// Value: [Output Only] A warning data value corresponding to the key.
16648	Value string `json:"value,omitempty"`
16649
16650	// ForceSendFields is a list of field names (e.g. "Key") to
16651	// unconditionally include in API requests. By default, fields with
16652	// empty values are omitted from API requests. However, any non-pointer,
16653	// non-interface field appearing in ForceSendFields will be sent to the
16654	// server regardless of whether the field is empty or not. This may be
16655	// used to include empty fields in Patch requests.
16656	ForceSendFields []string `json:"-"`
16657
16658	// NullFields is a list of field names (e.g. "Key") to include in API
16659	// requests with the JSON null value. By default, fields with empty
16660	// values are omitted from API requests. However, any field with an
16661	// empty value appearing in NullFields will be sent to the server as
16662	// null. It is an error if a field in this list has a non-empty value.
16663	// This may be used to include null fields in Patch requests.
16664	NullFields []string `json:"-"`
16665}
16666
16667func (s *NetworkEndpointGroupListWarningData) MarshalJSON() ([]byte, error) {
16668	type NoMethod NetworkEndpointGroupListWarningData
16669	raw := NoMethod(*s)
16670	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16671}
16672
16673type NetworkEndpointGroupsAttachEndpointsRequest struct {
16674	// NetworkEndpoints: The list of network endpoints to be attached.
16675	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
16676
16677	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
16678	// unconditionally include in API requests. By default, fields with
16679	// empty values are omitted from API requests. However, any non-pointer,
16680	// non-interface field appearing in ForceSendFields will be sent to the
16681	// server regardless of whether the field is empty or not. This may be
16682	// used to include empty fields in Patch requests.
16683	ForceSendFields []string `json:"-"`
16684
16685	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
16686	// include in API requests with the JSON null value. By default, fields
16687	// with empty values are omitted from API requests. However, any field
16688	// with an empty value appearing in NullFields will be sent to the
16689	// server as null. It is an error if a field in this list has a
16690	// non-empty value. This may be used to include null fields in Patch
16691	// requests.
16692	NullFields []string `json:"-"`
16693}
16694
16695func (s *NetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
16696	type NoMethod NetworkEndpointGroupsAttachEndpointsRequest
16697	raw := NoMethod(*s)
16698	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16699}
16700
16701type NetworkEndpointGroupsDetachEndpointsRequest struct {
16702	// NetworkEndpoints: The list of network endpoints to be detached.
16703	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
16704
16705	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
16706	// unconditionally include in API requests. By default, fields with
16707	// empty values are omitted from API requests. However, any non-pointer,
16708	// non-interface field appearing in ForceSendFields will be sent to the
16709	// server regardless of whether the field is empty or not. This may be
16710	// used to include empty fields in Patch requests.
16711	ForceSendFields []string `json:"-"`
16712
16713	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
16714	// include in API requests with the JSON null value. By default, fields
16715	// with empty values are omitted from API requests. However, any field
16716	// with an empty value appearing in NullFields will be sent to the
16717	// server as null. It is an error if a field in this list has a
16718	// non-empty value. This may be used to include null fields in Patch
16719	// requests.
16720	NullFields []string `json:"-"`
16721}
16722
16723func (s *NetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
16724	type NoMethod NetworkEndpointGroupsDetachEndpointsRequest
16725	raw := NoMethod(*s)
16726	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16727}
16728
16729type NetworkEndpointGroupsListEndpointsRequest struct {
16730	// HealthStatus: Optional query parameter for showing the health status
16731	// of each network endpoint. Valid options are SKIP or SHOW. If you
16732	// don't specifiy this parameter, the health status of network endpoints
16733	// will not be provided.
16734	//
16735	// Possible values:
16736	//   "SHOW"
16737	//   "SKIP"
16738	HealthStatus string `json:"healthStatus,omitempty"`
16739
16740	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
16741	// unconditionally include in API requests. By default, fields with
16742	// empty values are omitted from API requests. However, any non-pointer,
16743	// non-interface field appearing in ForceSendFields will be sent to the
16744	// server regardless of whether the field is empty or not. This may be
16745	// used to include empty fields in Patch requests.
16746	ForceSendFields []string `json:"-"`
16747
16748	// NullFields is a list of field names (e.g. "HealthStatus") to include
16749	// in API requests with the JSON null value. By default, fields with
16750	// empty values are omitted from API requests. However, any field with
16751	// an empty value appearing in NullFields will be sent to the server as
16752	// null. It is an error if a field in this list has a non-empty value.
16753	// This may be used to include null fields in Patch requests.
16754	NullFields []string `json:"-"`
16755}
16756
16757func (s *NetworkEndpointGroupsListEndpointsRequest) MarshalJSON() ([]byte, error) {
16758	type NoMethod NetworkEndpointGroupsListEndpointsRequest
16759	raw := NoMethod(*s)
16760	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16761}
16762
16763type NetworkEndpointGroupsListNetworkEndpoints struct {
16764	// Id: [Output Only] Unique identifier for the resource; defined by the
16765	// server.
16766	Id string `json:"id,omitempty"`
16767
16768	// Items: A list of NetworkEndpointWithHealthStatus resources.
16769	Items []*NetworkEndpointWithHealthStatus `json:"items,omitempty"`
16770
16771	// Kind: [Output Only] The resource type, which is always
16772	// compute#networkEndpointGroupsListNetworkEndpoints for the list of
16773	// network endpoints in the specified network endpoint group.
16774	Kind string `json:"kind,omitempty"`
16775
16776	// NextPageToken: [Output Only] This token allows you to get the next
16777	// page of results for list requests. If the number of results is larger
16778	// than maxResults, use the nextPageToken as a value for the query
16779	// parameter pageToken in the next list request. Subsequent list
16780	// requests will have their own nextPageToken to continue paging through
16781	// the results.
16782	NextPageToken string `json:"nextPageToken,omitempty"`
16783
16784	// Warning: [Output Only] Informational warning message.
16785	Warning *NetworkEndpointGroupsListNetworkEndpointsWarning `json:"warning,omitempty"`
16786
16787	// ServerResponse contains the HTTP response code and headers from the
16788	// server.
16789	googleapi.ServerResponse `json:"-"`
16790
16791	// ForceSendFields is a list of field names (e.g. "Id") to
16792	// unconditionally include in API requests. By default, fields with
16793	// empty values are omitted from API requests. However, any non-pointer,
16794	// non-interface field appearing in ForceSendFields will be sent to the
16795	// server regardless of whether the field is empty or not. This may be
16796	// used to include empty fields in Patch requests.
16797	ForceSendFields []string `json:"-"`
16798
16799	// NullFields is a list of field names (e.g. "Id") to include in API
16800	// requests with the JSON null value. By default, fields with empty
16801	// values are omitted from API requests. However, any field with an
16802	// empty value appearing in NullFields will be sent to the server as
16803	// null. It is an error if a field in this list has a non-empty value.
16804	// This may be used to include null fields in Patch requests.
16805	NullFields []string `json:"-"`
16806}
16807
16808func (s *NetworkEndpointGroupsListNetworkEndpoints) MarshalJSON() ([]byte, error) {
16809	type NoMethod NetworkEndpointGroupsListNetworkEndpoints
16810	raw := NoMethod(*s)
16811	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16812}
16813
16814// NetworkEndpointGroupsListNetworkEndpointsWarning: [Output Only]
16815// Informational warning message.
16816type NetworkEndpointGroupsListNetworkEndpointsWarning struct {
16817	// Code: [Output Only] A warning code, if applicable. For example,
16818	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16819	// the response.
16820	//
16821	// Possible values:
16822	//   "CLEANUP_FAILED"
16823	//   "DEPRECATED_RESOURCE_USED"
16824	//   "DEPRECATED_TYPE_USED"
16825	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16826	//   "EXPERIMENTAL_TYPE_USED"
16827	//   "EXTERNAL_API_WARNING"
16828	//   "FIELD_VALUE_OVERRIDEN"
16829	//   "INJECTED_KERNELS_DEPRECATED"
16830	//   "MISSING_TYPE_DEPENDENCY"
16831	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16832	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16833	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16834	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16835	//   "NEXT_HOP_NOT_RUNNING"
16836	//   "NOT_CRITICAL_ERROR"
16837	//   "NO_RESULTS_ON_PAGE"
16838	//   "REQUIRED_TOS_AGREEMENT"
16839	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16840	//   "RESOURCE_NOT_DELETED"
16841	//   "SCHEMA_VALIDATION_IGNORED"
16842	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16843	//   "UNDECLARED_PROPERTIES"
16844	//   "UNREACHABLE"
16845	Code string `json:"code,omitempty"`
16846
16847	// Data: [Output Only] Metadata about this warning in key: value format.
16848	// For example:
16849	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16850	Data []*NetworkEndpointGroupsListNetworkEndpointsWarningData `json:"data,omitempty"`
16851
16852	// Message: [Output Only] A human-readable description of the warning
16853	// code.
16854	Message string `json:"message,omitempty"`
16855
16856	// ForceSendFields is a list of field names (e.g. "Code") to
16857	// unconditionally include in API requests. By default, fields with
16858	// empty values are omitted from API requests. However, any non-pointer,
16859	// non-interface field appearing in ForceSendFields will be sent to the
16860	// server regardless of whether the field is empty or not. This may be
16861	// used to include empty fields in Patch requests.
16862	ForceSendFields []string `json:"-"`
16863
16864	// NullFields is a list of field names (e.g. "Code") to include in API
16865	// requests with the JSON null value. By default, fields with empty
16866	// values are omitted from API requests. However, any field with an
16867	// empty value appearing in NullFields will be sent to the server as
16868	// null. It is an error if a field in this list has a non-empty value.
16869	// This may be used to include null fields in Patch requests.
16870	NullFields []string `json:"-"`
16871}
16872
16873func (s *NetworkEndpointGroupsListNetworkEndpointsWarning) MarshalJSON() ([]byte, error) {
16874	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarning
16875	raw := NoMethod(*s)
16876	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16877}
16878
16879type NetworkEndpointGroupsListNetworkEndpointsWarningData struct {
16880	// Key: [Output Only] A key that provides more detail on the warning
16881	// being returned. For example, for warnings where there are no results
16882	// in a list request for a particular zone, this key might be scope and
16883	// the key value might be the zone name. Other examples might be a key
16884	// indicating a deprecated resource and a suggested replacement, or a
16885	// warning about invalid network settings (for example, if an instance
16886	// attempts to perform IP forwarding but is not enabled for IP
16887	// forwarding).
16888	Key string `json:"key,omitempty"`
16889
16890	// Value: [Output Only] A warning data value corresponding to the key.
16891	Value string `json:"value,omitempty"`
16892
16893	// ForceSendFields is a list of field names (e.g. "Key") to
16894	// unconditionally include in API requests. By default, fields with
16895	// empty values are omitted from API requests. However, any non-pointer,
16896	// non-interface field appearing in ForceSendFields will be sent to the
16897	// server regardless of whether the field is empty or not. This may be
16898	// used to include empty fields in Patch requests.
16899	ForceSendFields []string `json:"-"`
16900
16901	// NullFields is a list of field names (e.g. "Key") to include in API
16902	// requests with the JSON null value. By default, fields with empty
16903	// values are omitted from API requests. However, any field with an
16904	// empty value appearing in NullFields will be sent to the server as
16905	// null. It is an error if a field in this list has a non-empty value.
16906	// This may be used to include null fields in Patch requests.
16907	NullFields []string `json:"-"`
16908}
16909
16910func (s *NetworkEndpointGroupsListNetworkEndpointsWarningData) MarshalJSON() ([]byte, error) {
16911	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarningData
16912	raw := NoMethod(*s)
16913	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16914}
16915
16916type NetworkEndpointGroupsScopedList struct {
16917	// NetworkEndpointGroups: [Output Only] The list of network endpoint
16918	// groups that are contained in this scope.
16919	NetworkEndpointGroups []*NetworkEndpointGroup `json:"networkEndpointGroups,omitempty"`
16920
16921	// Warning: [Output Only] An informational warning that replaces the
16922	// list of network endpoint groups when the list is empty.
16923	Warning *NetworkEndpointGroupsScopedListWarning `json:"warning,omitempty"`
16924
16925	// ForceSendFields is a list of field names (e.g.
16926	// "NetworkEndpointGroups") to unconditionally include in API requests.
16927	// By default, fields with empty values are omitted from API requests.
16928	// However, any non-pointer, non-interface field appearing in
16929	// ForceSendFields will be sent to the server regardless of whether the
16930	// field is empty or not. This may be used to include empty fields in
16931	// Patch requests.
16932	ForceSendFields []string `json:"-"`
16933
16934	// NullFields is a list of field names (e.g. "NetworkEndpointGroups") to
16935	// include in API requests with the JSON null value. By default, fields
16936	// with empty values are omitted from API requests. However, any field
16937	// with an empty value appearing in NullFields will be sent to the
16938	// server as null. It is an error if a field in this list has a
16939	// non-empty value. This may be used to include null fields in Patch
16940	// requests.
16941	NullFields []string `json:"-"`
16942}
16943
16944func (s *NetworkEndpointGroupsScopedList) MarshalJSON() ([]byte, error) {
16945	type NoMethod NetworkEndpointGroupsScopedList
16946	raw := NoMethod(*s)
16947	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16948}
16949
16950// NetworkEndpointGroupsScopedListWarning: [Output Only] An
16951// informational warning that replaces the list of network endpoint
16952// groups when the list is empty.
16953type NetworkEndpointGroupsScopedListWarning struct {
16954	// Code: [Output Only] A warning code, if applicable. For example,
16955	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16956	// the response.
16957	//
16958	// Possible values:
16959	//   "CLEANUP_FAILED"
16960	//   "DEPRECATED_RESOURCE_USED"
16961	//   "DEPRECATED_TYPE_USED"
16962	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16963	//   "EXPERIMENTAL_TYPE_USED"
16964	//   "EXTERNAL_API_WARNING"
16965	//   "FIELD_VALUE_OVERRIDEN"
16966	//   "INJECTED_KERNELS_DEPRECATED"
16967	//   "MISSING_TYPE_DEPENDENCY"
16968	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16969	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16970	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16971	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16972	//   "NEXT_HOP_NOT_RUNNING"
16973	//   "NOT_CRITICAL_ERROR"
16974	//   "NO_RESULTS_ON_PAGE"
16975	//   "REQUIRED_TOS_AGREEMENT"
16976	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16977	//   "RESOURCE_NOT_DELETED"
16978	//   "SCHEMA_VALIDATION_IGNORED"
16979	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16980	//   "UNDECLARED_PROPERTIES"
16981	//   "UNREACHABLE"
16982	Code string `json:"code,omitempty"`
16983
16984	// Data: [Output Only] Metadata about this warning in key: value format.
16985	// For example:
16986	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16987	Data []*NetworkEndpointGroupsScopedListWarningData `json:"data,omitempty"`
16988
16989	// Message: [Output Only] A human-readable description of the warning
16990	// code.
16991	Message string `json:"message,omitempty"`
16992
16993	// ForceSendFields is a list of field names (e.g. "Code") to
16994	// unconditionally include in API requests. By default, fields with
16995	// empty values are omitted from API requests. However, any non-pointer,
16996	// non-interface field appearing in ForceSendFields will be sent to the
16997	// server regardless of whether the field is empty or not. This may be
16998	// used to include empty fields in Patch requests.
16999	ForceSendFields []string `json:"-"`
17000
17001	// NullFields is a list of field names (e.g. "Code") to include in API
17002	// requests with the JSON null value. By default, fields with empty
17003	// values are omitted from API requests. However, any field with an
17004	// empty value appearing in NullFields will be sent to the server as
17005	// null. It is an error if a field in this list has a non-empty value.
17006	// This may be used to include null fields in Patch requests.
17007	NullFields []string `json:"-"`
17008}
17009
17010func (s *NetworkEndpointGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
17011	type NoMethod NetworkEndpointGroupsScopedListWarning
17012	raw := NoMethod(*s)
17013	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17014}
17015
17016type NetworkEndpointGroupsScopedListWarningData struct {
17017	// Key: [Output Only] A key that provides more detail on the warning
17018	// being returned. For example, for warnings where there are no results
17019	// in a list request for a particular zone, this key might be scope and
17020	// the key value might be the zone name. Other examples might be a key
17021	// indicating a deprecated resource and a suggested replacement, or a
17022	// warning about invalid network settings (for example, if an instance
17023	// attempts to perform IP forwarding but is not enabled for IP
17024	// forwarding).
17025	Key string `json:"key,omitempty"`
17026
17027	// Value: [Output Only] A warning data value corresponding to the key.
17028	Value string `json:"value,omitempty"`
17029
17030	// ForceSendFields is a list of field names (e.g. "Key") to
17031	// unconditionally include in API requests. By default, fields with
17032	// empty values are omitted from API requests. However, any non-pointer,
17033	// non-interface field appearing in ForceSendFields will be sent to the
17034	// server regardless of whether the field is empty or not. This may be
17035	// used to include empty fields in Patch requests.
17036	ForceSendFields []string `json:"-"`
17037
17038	// NullFields is a list of field names (e.g. "Key") to include in API
17039	// requests with the JSON null value. By default, fields with empty
17040	// values are omitted from API requests. However, any field with an
17041	// empty value appearing in NullFields will be sent to the server as
17042	// null. It is an error if a field in this list has a non-empty value.
17043	// This may be used to include null fields in Patch requests.
17044	NullFields []string `json:"-"`
17045}
17046
17047func (s *NetworkEndpointGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
17048	type NoMethod NetworkEndpointGroupsScopedListWarningData
17049	raw := NoMethod(*s)
17050	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17051}
17052
17053type NetworkEndpointWithHealthStatus struct {
17054	// Healths: [Output only] The health status of network endpoint;
17055	Healths []*HealthStatusForNetworkEndpoint `json:"healths,omitempty"`
17056
17057	// NetworkEndpoint: [Output only] The network endpoint;
17058	NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"`
17059
17060	// ForceSendFields is a list of field names (e.g. "Healths") to
17061	// unconditionally include in API requests. By default, fields with
17062	// empty values are omitted from API requests. However, any non-pointer,
17063	// non-interface field appearing in ForceSendFields will be sent to the
17064	// server regardless of whether the field is empty or not. This may be
17065	// used to include empty fields in Patch requests.
17066	ForceSendFields []string `json:"-"`
17067
17068	// NullFields is a list of field names (e.g. "Healths") to include in
17069	// API requests with the JSON null value. By default, fields with empty
17070	// values are omitted from API requests. However, any field with an
17071	// empty value appearing in NullFields will be sent to the server as
17072	// null. It is an error if a field in this list has a non-empty value.
17073	// This may be used to include null fields in Patch requests.
17074	NullFields []string `json:"-"`
17075}
17076
17077func (s *NetworkEndpointWithHealthStatus) MarshalJSON() ([]byte, error) {
17078	type NoMethod NetworkEndpointWithHealthStatus
17079	raw := NoMethod(*s)
17080	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17081}
17082
17083// NetworkInterface: A network interface resource attached to an
17084// instance.
17085type NetworkInterface struct {
17086	// AccessConfigs: An array of configurations for this interface.
17087	// Currently, only one access config, ONE_TO_ONE_NAT, is supported. If
17088	// there are no accessConfigs specified, then this instance will have no
17089	// external internet access.
17090	AccessConfigs []*AccessConfig `json:"accessConfigs,omitempty"`
17091
17092	// AliasIpRanges: An array of alias IP ranges for this network
17093	// interface. Can only be specified for network interfaces on
17094	// subnet-mode networks.
17095	AliasIpRanges []*AliasIpRange `json:"aliasIpRanges,omitempty"`
17096
17097	// Fingerprint: Fingerprint hash of contents stored in this network
17098	// interface. This field will be ignored when inserting an Instance or
17099	// adding a NetworkInterface. An up-to-date fingerprint must be provided
17100	// in order to update the NetworkInterface, otherwise the request will
17101	// fail with error 412 conditionNotMet.
17102	Fingerprint string `json:"fingerprint,omitempty"`
17103
17104	// Kind: [Output Only] Type of the resource. Always
17105	// compute#networkInterface for network interfaces.
17106	Kind string `json:"kind,omitempty"`
17107
17108	// Name: [Output Only] The name of the network interface, generated by
17109	// the server. For network devices, these are eth0, eth1, etc.
17110	Name string `json:"name,omitempty"`
17111
17112	// Network: URL of the network resource for this instance. When creating
17113	// an instance, if neither the network nor the subnetwork is specified,
17114	// the default network global/networks/default is used; if the network
17115	// is not specified but the subnetwork is specified, the network is
17116	// inferred.
17117	//
17118	// This field is optional when creating a firewall rule. If not
17119	// specified when creating a firewall rule, the default network
17120	// global/networks/default is used.
17121	//
17122	// If you specify this property, you can specify the network as a full
17123	// or partial URL. For example, the following are all valid URLs:
17124	// -
17125	// https://www.googleapis.com/compute/v1/projects/project/global/networks/network
17126	// - projects/project/global/networks/network
17127	// - global/networks/default
17128	Network string `json:"network,omitempty"`
17129
17130	// NetworkIP: An IPv4 internal network address to assign to the instance
17131	// for this network interface. If not specified by the user, an unused
17132	// internal IP is assigned by the system.
17133	NetworkIP string `json:"networkIP,omitempty"`
17134
17135	// Subnetwork: The URL of the Subnetwork resource for this instance. If
17136	// the network resource is in legacy mode, do not provide this property.
17137	// If the network is in auto subnet mode, providing the subnetwork is
17138	// optional. If the network is in custom subnet mode, then this field
17139	// should be specified. If you specify this property, you can specify
17140	// the subnetwork as a full or partial URL. For example, the following
17141	// are all valid URLs:
17142	// -
17143	// https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
17144	// - regions/region/subnetworks/subnetwork
17145	Subnetwork string `json:"subnetwork,omitempty"`
17146
17147	// ForceSendFields is a list of field names (e.g. "AccessConfigs") to
17148	// unconditionally include in API requests. By default, fields with
17149	// empty values are omitted from API requests. However, any non-pointer,
17150	// non-interface field appearing in ForceSendFields will be sent to the
17151	// server regardless of whether the field is empty or not. This may be
17152	// used to include empty fields in Patch requests.
17153	ForceSendFields []string `json:"-"`
17154
17155	// NullFields is a list of field names (e.g. "AccessConfigs") to include
17156	// in API requests with the JSON null value. By default, fields with
17157	// empty values are omitted from API requests. However, any field with
17158	// an empty value appearing in NullFields will be sent to the server as
17159	// null. It is an error if a field in this list has a non-empty value.
17160	// This may be used to include null fields in Patch requests.
17161	NullFields []string `json:"-"`
17162}
17163
17164func (s *NetworkInterface) MarshalJSON() ([]byte, error) {
17165	type NoMethod NetworkInterface
17166	raw := NoMethod(*s)
17167	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17168}
17169
17170// NetworkList: Contains a list of networks.
17171type NetworkList struct {
17172	// Id: [Output Only] Unique identifier for the resource; defined by the
17173	// server.
17174	Id string `json:"id,omitempty"`
17175
17176	// Items: A list of Network resources.
17177	Items []*Network `json:"items,omitempty"`
17178
17179	// Kind: [Output Only] Type of resource. Always compute#networkList for
17180	// lists of networks.
17181	Kind string `json:"kind,omitempty"`
17182
17183	// NextPageToken: [Output Only] This token allows you to get the next
17184	// page of results for list requests. If the number of results is larger
17185	// than maxResults, use the nextPageToken as a value for the query
17186	// parameter pageToken in the next list request. Subsequent list
17187	// requests will have their own nextPageToken to continue paging through
17188	// the results.
17189	NextPageToken string `json:"nextPageToken,omitempty"`
17190
17191	// SelfLink: [Output Only] Server-defined URL for this resource.
17192	SelfLink string `json:"selfLink,omitempty"`
17193
17194	// Warning: [Output Only] Informational warning message.
17195	Warning *NetworkListWarning `json:"warning,omitempty"`
17196
17197	// ServerResponse contains the HTTP response code and headers from the
17198	// server.
17199	googleapi.ServerResponse `json:"-"`
17200
17201	// ForceSendFields is a list of field names (e.g. "Id") to
17202	// unconditionally include in API requests. By default, fields with
17203	// empty values are omitted from API requests. However, any non-pointer,
17204	// non-interface field appearing in ForceSendFields will be sent to the
17205	// server regardless of whether the field is empty or not. This may be
17206	// used to include empty fields in Patch requests.
17207	ForceSendFields []string `json:"-"`
17208
17209	// NullFields is a list of field names (e.g. "Id") to include in API
17210	// requests with the JSON null value. By default, fields with empty
17211	// values are omitted from API requests. However, any field with an
17212	// empty value appearing in NullFields will be sent to the server as
17213	// null. It is an error if a field in this list has a non-empty value.
17214	// This may be used to include null fields in Patch requests.
17215	NullFields []string `json:"-"`
17216}
17217
17218func (s *NetworkList) MarshalJSON() ([]byte, error) {
17219	type NoMethod NetworkList
17220	raw := NoMethod(*s)
17221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17222}
17223
17224// NetworkListWarning: [Output Only] Informational warning message.
17225type NetworkListWarning struct {
17226	// Code: [Output Only] A warning code, if applicable. For example,
17227	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17228	// the response.
17229	//
17230	// Possible values:
17231	//   "CLEANUP_FAILED"
17232	//   "DEPRECATED_RESOURCE_USED"
17233	//   "DEPRECATED_TYPE_USED"
17234	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17235	//   "EXPERIMENTAL_TYPE_USED"
17236	//   "EXTERNAL_API_WARNING"
17237	//   "FIELD_VALUE_OVERRIDEN"
17238	//   "INJECTED_KERNELS_DEPRECATED"
17239	//   "MISSING_TYPE_DEPENDENCY"
17240	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17241	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17242	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17243	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17244	//   "NEXT_HOP_NOT_RUNNING"
17245	//   "NOT_CRITICAL_ERROR"
17246	//   "NO_RESULTS_ON_PAGE"
17247	//   "REQUIRED_TOS_AGREEMENT"
17248	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17249	//   "RESOURCE_NOT_DELETED"
17250	//   "SCHEMA_VALIDATION_IGNORED"
17251	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17252	//   "UNDECLARED_PROPERTIES"
17253	//   "UNREACHABLE"
17254	Code string `json:"code,omitempty"`
17255
17256	// Data: [Output Only] Metadata about this warning in key: value format.
17257	// For example:
17258	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17259	Data []*NetworkListWarningData `json:"data,omitempty"`
17260
17261	// Message: [Output Only] A human-readable description of the warning
17262	// code.
17263	Message string `json:"message,omitempty"`
17264
17265	// ForceSendFields is a list of field names (e.g. "Code") to
17266	// unconditionally include in API requests. By default, fields with
17267	// empty values are omitted from API requests. However, any non-pointer,
17268	// non-interface field appearing in ForceSendFields will be sent to the
17269	// server regardless of whether the field is empty or not. This may be
17270	// used to include empty fields in Patch requests.
17271	ForceSendFields []string `json:"-"`
17272
17273	// NullFields is a list of field names (e.g. "Code") to include in API
17274	// requests with the JSON null value. By default, fields with empty
17275	// values are omitted from API requests. However, any field with an
17276	// empty value appearing in NullFields will be sent to the server as
17277	// null. It is an error if a field in this list has a non-empty value.
17278	// This may be used to include null fields in Patch requests.
17279	NullFields []string `json:"-"`
17280}
17281
17282func (s *NetworkListWarning) MarshalJSON() ([]byte, error) {
17283	type NoMethod NetworkListWarning
17284	raw := NoMethod(*s)
17285	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17286}
17287
17288type NetworkListWarningData struct {
17289	// Key: [Output Only] A key that provides more detail on the warning
17290	// being returned. For example, for warnings where there are no results
17291	// in a list request for a particular zone, this key might be scope and
17292	// the key value might be the zone name. Other examples might be a key
17293	// indicating a deprecated resource and a suggested replacement, or a
17294	// warning about invalid network settings (for example, if an instance
17295	// attempts to perform IP forwarding but is not enabled for IP
17296	// forwarding).
17297	Key string `json:"key,omitempty"`
17298
17299	// Value: [Output Only] A warning data value corresponding to the key.
17300	Value string `json:"value,omitempty"`
17301
17302	// ForceSendFields is a list of field names (e.g. "Key") to
17303	// unconditionally include in API requests. By default, fields with
17304	// empty values are omitted from API requests. However, any non-pointer,
17305	// non-interface field appearing in ForceSendFields will be sent to the
17306	// server regardless of whether the field is empty or not. This may be
17307	// used to include empty fields in Patch requests.
17308	ForceSendFields []string `json:"-"`
17309
17310	// NullFields is a list of field names (e.g. "Key") to include in API
17311	// requests with the JSON null value. By default, fields with empty
17312	// values are omitted from API requests. However, any field with an
17313	// empty value appearing in NullFields will be sent to the server as
17314	// null. It is an error if a field in this list has a non-empty value.
17315	// This may be used to include null fields in Patch requests.
17316	NullFields []string `json:"-"`
17317}
17318
17319func (s *NetworkListWarningData) MarshalJSON() ([]byte, error) {
17320	type NoMethod NetworkListWarningData
17321	raw := NoMethod(*s)
17322	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17323}
17324
17325// NetworkPeering: A network peering attached to a network resource. The
17326// message includes the peering name, peer network, peering state, and a
17327// flag indicating whether Google Compute Engine should automatically
17328// create routes for the peering.
17329type NetworkPeering struct {
17330	// AutoCreateRoutes: This field will be deprecated soon. Prefer using
17331	// exchange_subnet_routes instead. Indicates whether full mesh
17332	// connectivity is created and managed automatically. When it is set to
17333	// true, Google Compute Engine will automatically create and manage the
17334	// routes between two networks when the state is ACTIVE. Otherwise, user
17335	// needs to create routes manually to route packets to peer network.
17336	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
17337
17338	// ExchangeSubnetRoutes: Whether full mesh connectivity is created and
17339	// managed automatically. When it is set to true, Google Compute Engine
17340	// will automatically create and manage the routes between two networks
17341	// when the peering state is ACTIVE. Otherwise, user needs to create
17342	// routes manually to route packets to peer network.
17343	ExchangeSubnetRoutes bool `json:"exchangeSubnetRoutes,omitempty"`
17344
17345	// Name: Name of this peering. Provided by the client when the peering
17346	// is created. The name must comply with RFC1035. Specifically, the name
17347	// must be 1-63 characters long and match regular expression
17348	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
17349	// a lowercase letter, and all the following characters must be a dash,
17350	// lowercase letter, or digit, except the last character, which cannot
17351	// be a dash.
17352	Name string `json:"name,omitempty"`
17353
17354	// Network: The URL of the peer network. It can be either full URL or
17355	// partial URL. The peer network may belong to a different project. If
17356	// the partial URL does not contain project, it is assumed that the peer
17357	// network is in the same project as the current network.
17358	Network string `json:"network,omitempty"`
17359
17360	// State: [Output Only] State for the peering.
17361	//
17362	// Possible values:
17363	//   "ACTIVE"
17364	//   "INACTIVE"
17365	State string `json:"state,omitempty"`
17366
17367	// StateDetails: [Output Only] Details about the current state of the
17368	// peering.
17369	StateDetails string `json:"stateDetails,omitempty"`
17370
17371	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
17372	// unconditionally include in API requests. By default, fields with
17373	// empty values are omitted from API requests. However, any non-pointer,
17374	// non-interface field appearing in ForceSendFields will be sent to the
17375	// server regardless of whether the field is empty or not. This may be
17376	// used to include empty fields in Patch requests.
17377	ForceSendFields []string `json:"-"`
17378
17379	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
17380	// include in API requests with the JSON null value. By default, fields
17381	// with empty values are omitted from API requests. However, any field
17382	// with an empty value appearing in NullFields will be sent to the
17383	// server as null. It is an error if a field in this list has a
17384	// non-empty value. This may be used to include null fields in Patch
17385	// requests.
17386	NullFields []string `json:"-"`
17387}
17388
17389func (s *NetworkPeering) MarshalJSON() ([]byte, error) {
17390	type NoMethod NetworkPeering
17391	raw := NoMethod(*s)
17392	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17393}
17394
17395// NetworkRoutingConfig: A routing configuration attached to a network
17396// resource. The message includes the list of routers associated with
17397// the network, and a flag indicating the type of routing behavior to
17398// enforce network-wide.
17399type NetworkRoutingConfig struct {
17400	// RoutingMode: The network-wide routing mode to use. If set to
17401	// REGIONAL, this network's cloud routers will only advertise routes
17402	// with subnets of this network in the same region as the router. If set
17403	// to GLOBAL, this network's cloud routers will advertise routes with
17404	// all subnets of this network, across regions.
17405	//
17406	// Possible values:
17407	//   "GLOBAL"
17408	//   "REGIONAL"
17409	RoutingMode string `json:"routingMode,omitempty"`
17410
17411	// ForceSendFields is a list of field names (e.g. "RoutingMode") to
17412	// unconditionally include in API requests. By default, fields with
17413	// empty values are omitted from API requests. However, any non-pointer,
17414	// non-interface field appearing in ForceSendFields will be sent to the
17415	// server regardless of whether the field is empty or not. This may be
17416	// used to include empty fields in Patch requests.
17417	ForceSendFields []string `json:"-"`
17418
17419	// NullFields is a list of field names (e.g. "RoutingMode") to include
17420	// in API requests with the JSON null value. By default, fields with
17421	// empty values are omitted from API requests. However, any field with
17422	// an empty value appearing in NullFields will be sent to the server as
17423	// null. It is an error if a field in this list has a non-empty value.
17424	// This may be used to include null fields in Patch requests.
17425	NullFields []string `json:"-"`
17426}
17427
17428func (s *NetworkRoutingConfig) MarshalJSON() ([]byte, error) {
17429	type NoMethod NetworkRoutingConfig
17430	raw := NoMethod(*s)
17431	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17432}
17433
17434type NetworksAddPeeringRequest struct {
17435	// AutoCreateRoutes: This field will be deprecated soon. Prefer using
17436	// exchange_subnet_routes in network_peering instead. Whether Google
17437	// Compute Engine manages the routes automatically.
17438	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
17439
17440	// Name: Name of the peering, which should conform to RFC1035.
17441	Name string `json:"name,omitempty"`
17442
17443	// NetworkPeering: Network peering parameters. In order to specify route
17444	// policies for peering using import/export custom routes, you will have
17445	// to fill all peering related parameters (name, peer network,
17446	// exchange_subnet_routes) in network_peeringfield. Corresponding fields
17447	// in NetworksAddPeeringRequest will be deprecated soon.
17448	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
17449
17450	// PeerNetwork: URL of the peer network. It can be either full URL or
17451	// partial URL. The peer network may belong to a different project. If
17452	// the partial URL does not contain project, it is assumed that the peer
17453	// network is in the same project as the current network.
17454	PeerNetwork string `json:"peerNetwork,omitempty"`
17455
17456	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
17457	// unconditionally include in API requests. By default, fields with
17458	// empty values are omitted from API requests. However, any non-pointer,
17459	// non-interface field appearing in ForceSendFields will be sent to the
17460	// server regardless of whether the field is empty or not. This may be
17461	// used to include empty fields in Patch requests.
17462	ForceSendFields []string `json:"-"`
17463
17464	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
17465	// include in API requests with the JSON null value. By default, fields
17466	// with empty values are omitted from API requests. However, any field
17467	// with an empty value appearing in NullFields will be sent to the
17468	// server as null. It is an error if a field in this list has a
17469	// non-empty value. This may be used to include null fields in Patch
17470	// requests.
17471	NullFields []string `json:"-"`
17472}
17473
17474func (s *NetworksAddPeeringRequest) MarshalJSON() ([]byte, error) {
17475	type NoMethod NetworksAddPeeringRequest
17476	raw := NoMethod(*s)
17477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17478}
17479
17480type NetworksRemovePeeringRequest struct {
17481	// Name: Name of the peering, which should conform to RFC1035.
17482	Name string `json:"name,omitempty"`
17483
17484	// ForceSendFields is a list of field names (e.g. "Name") to
17485	// unconditionally include in API requests. By default, fields with
17486	// empty values are omitted from API requests. However, any non-pointer,
17487	// non-interface field appearing in ForceSendFields will be sent to the
17488	// server regardless of whether the field is empty or not. This may be
17489	// used to include empty fields in Patch requests.
17490	ForceSendFields []string `json:"-"`
17491
17492	// NullFields is a list of field names (e.g. "Name") to include in API
17493	// requests with the JSON null value. By default, fields with empty
17494	// values are omitted from API requests. However, any field with an
17495	// empty value appearing in NullFields will be sent to the server as
17496	// null. It is an error if a field in this list has a non-empty value.
17497	// This may be used to include null fields in Patch requests.
17498	NullFields []string `json:"-"`
17499}
17500
17501func (s *NetworksRemovePeeringRequest) MarshalJSON() ([]byte, error) {
17502	type NoMethod NetworksRemovePeeringRequest
17503	raw := NoMethod(*s)
17504	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17505}
17506
17507// NodeGroup: A NodeGroup resource. To create a node group, you must
17508// first create a node templates. To learn more about node groups and
17509// sole-tenant nodes, read the Sole-tenant nodes documentation. (==
17510// resource_for beta.nodeGroups ==) (== resource_for v1.nodeGroups ==)
17511type NodeGroup struct {
17512	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
17513	// format.
17514	CreationTimestamp string `json:"creationTimestamp,omitempty"`
17515
17516	// Description: An optional description of this resource. Provide this
17517	// property when you create the resource.
17518	Description string `json:"description,omitempty"`
17519
17520	// Id: [Output Only] The unique identifier for the resource. This
17521	// identifier is defined by the server.
17522	Id uint64 `json:"id,omitempty,string"`
17523
17524	// Kind: [Output Only] The type of the resource. Always
17525	// compute#nodeGroup for node group.
17526	Kind string `json:"kind,omitempty"`
17527
17528	// Name: The name of the resource, provided by the client when initially
17529	// creating the resource. The resource name must be 1-63 characters
17530	// long, and comply with RFC1035. Specifically, the name must be 1-63
17531	// characters long and match the regular expression
17532	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
17533	// a lowercase letter, and all following characters must be a dash,
17534	// lowercase letter, or digit, except the last character, which cannot
17535	// be a dash.
17536	Name string `json:"name,omitempty"`
17537
17538	// NodeTemplate: The URL of the node template to which this node group
17539	// belongs.
17540	NodeTemplate string `json:"nodeTemplate,omitempty"`
17541
17542	// SelfLink: [Output Only] Server-defined URL for the resource.
17543	SelfLink string `json:"selfLink,omitempty"`
17544
17545	// Size: [Output Only] The total number of nodes in the node group.
17546	Size int64 `json:"size,omitempty"`
17547
17548	// Possible values:
17549	//   "CREATING"
17550	//   "DELETING"
17551	//   "INVALID"
17552	//   "READY"
17553	Status string `json:"status,omitempty"`
17554
17555	// Zone: [Output Only] The name of the zone where the node group
17556	// resides, such as us-central1-a.
17557	Zone string `json:"zone,omitempty"`
17558
17559	// ServerResponse contains the HTTP response code and headers from the
17560	// server.
17561	googleapi.ServerResponse `json:"-"`
17562
17563	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
17564	// to unconditionally include in API requests. By default, fields with
17565	// empty values are omitted from API requests. However, any non-pointer,
17566	// non-interface field appearing in ForceSendFields will be sent to the
17567	// server regardless of whether the field is empty or not. This may be
17568	// used to include empty fields in Patch requests.
17569	ForceSendFields []string `json:"-"`
17570
17571	// NullFields is a list of field names (e.g. "CreationTimestamp") to
17572	// include in API requests with the JSON null value. By default, fields
17573	// with empty values are omitted from API requests. However, any field
17574	// with an empty value appearing in NullFields will be sent to the
17575	// server as null. It is an error if a field in this list has a
17576	// non-empty value. This may be used to include null fields in Patch
17577	// requests.
17578	NullFields []string `json:"-"`
17579}
17580
17581func (s *NodeGroup) MarshalJSON() ([]byte, error) {
17582	type NoMethod NodeGroup
17583	raw := NoMethod(*s)
17584	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17585}
17586
17587type NodeGroupAggregatedList struct {
17588	// Id: [Output Only] Unique identifier for the resource; defined by the
17589	// server.
17590	Id string `json:"id,omitempty"`
17591
17592	// Items: A list of NodeGroupsScopedList resources.
17593	Items map[string]NodeGroupsScopedList `json:"items,omitempty"`
17594
17595	// Kind: [Output Only] Type of resource.Always
17596	// compute#nodeGroupAggregatedList for aggregated lists of node groups.
17597	Kind string `json:"kind,omitempty"`
17598
17599	// NextPageToken: [Output Only] This token allows you to get the next
17600	// page of results for list requests. If the number of results is larger
17601	// than maxResults, use the nextPageToken as a value for the query
17602	// parameter pageToken in the next list request. Subsequent list
17603	// requests will have their own nextPageToken to continue paging through
17604	// the results.
17605	NextPageToken string `json:"nextPageToken,omitempty"`
17606
17607	// SelfLink: [Output Only] Server-defined URL for this resource.
17608	SelfLink string `json:"selfLink,omitempty"`
17609
17610	// Warning: [Output Only] Informational warning message.
17611	Warning *NodeGroupAggregatedListWarning `json:"warning,omitempty"`
17612
17613	// ServerResponse contains the HTTP response code and headers from the
17614	// server.
17615	googleapi.ServerResponse `json:"-"`
17616
17617	// ForceSendFields is a list of field names (e.g. "Id") to
17618	// unconditionally include in API requests. By default, fields with
17619	// empty values are omitted from API requests. However, any non-pointer,
17620	// non-interface field appearing in ForceSendFields will be sent to the
17621	// server regardless of whether the field is empty or not. This may be
17622	// used to include empty fields in Patch requests.
17623	ForceSendFields []string `json:"-"`
17624
17625	// NullFields is a list of field names (e.g. "Id") to include in API
17626	// requests with the JSON null value. By default, fields with empty
17627	// values are omitted from API requests. However, any field with an
17628	// empty value appearing in NullFields will be sent to the server as
17629	// null. It is an error if a field in this list has a non-empty value.
17630	// This may be used to include null fields in Patch requests.
17631	NullFields []string `json:"-"`
17632}
17633
17634func (s *NodeGroupAggregatedList) MarshalJSON() ([]byte, error) {
17635	type NoMethod NodeGroupAggregatedList
17636	raw := NoMethod(*s)
17637	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17638}
17639
17640// NodeGroupAggregatedListWarning: [Output Only] Informational warning
17641// message.
17642type NodeGroupAggregatedListWarning struct {
17643	// Code: [Output Only] A warning code, if applicable. For example,
17644	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17645	// the response.
17646	//
17647	// Possible values:
17648	//   "CLEANUP_FAILED"
17649	//   "DEPRECATED_RESOURCE_USED"
17650	//   "DEPRECATED_TYPE_USED"
17651	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17652	//   "EXPERIMENTAL_TYPE_USED"
17653	//   "EXTERNAL_API_WARNING"
17654	//   "FIELD_VALUE_OVERRIDEN"
17655	//   "INJECTED_KERNELS_DEPRECATED"
17656	//   "MISSING_TYPE_DEPENDENCY"
17657	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17658	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17659	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17660	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17661	//   "NEXT_HOP_NOT_RUNNING"
17662	//   "NOT_CRITICAL_ERROR"
17663	//   "NO_RESULTS_ON_PAGE"
17664	//   "REQUIRED_TOS_AGREEMENT"
17665	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17666	//   "RESOURCE_NOT_DELETED"
17667	//   "SCHEMA_VALIDATION_IGNORED"
17668	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17669	//   "UNDECLARED_PROPERTIES"
17670	//   "UNREACHABLE"
17671	Code string `json:"code,omitempty"`
17672
17673	// Data: [Output Only] Metadata about this warning in key: value format.
17674	// For example:
17675	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17676	Data []*NodeGroupAggregatedListWarningData `json:"data,omitempty"`
17677
17678	// Message: [Output Only] A human-readable description of the warning
17679	// code.
17680	Message string `json:"message,omitempty"`
17681
17682	// ForceSendFields is a list of field names (e.g. "Code") to
17683	// unconditionally include in API requests. By default, fields with
17684	// empty values are omitted from API requests. However, any non-pointer,
17685	// non-interface field appearing in ForceSendFields will be sent to the
17686	// server regardless of whether the field is empty or not. This may be
17687	// used to include empty fields in Patch requests.
17688	ForceSendFields []string `json:"-"`
17689
17690	// NullFields is a list of field names (e.g. "Code") to include in API
17691	// requests with the JSON null value. By default, fields with empty
17692	// values are omitted from API requests. However, any field with an
17693	// empty value appearing in NullFields will be sent to the server as
17694	// null. It is an error if a field in this list has a non-empty value.
17695	// This may be used to include null fields in Patch requests.
17696	NullFields []string `json:"-"`
17697}
17698
17699func (s *NodeGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
17700	type NoMethod NodeGroupAggregatedListWarning
17701	raw := NoMethod(*s)
17702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17703}
17704
17705type NodeGroupAggregatedListWarningData struct {
17706	// Key: [Output Only] A key that provides more detail on the warning
17707	// being returned. For example, for warnings where there are no results
17708	// in a list request for a particular zone, this key might be scope and
17709	// the key value might be the zone name. Other examples might be a key
17710	// indicating a deprecated resource and a suggested replacement, or a
17711	// warning about invalid network settings (for example, if an instance
17712	// attempts to perform IP forwarding but is not enabled for IP
17713	// forwarding).
17714	Key string `json:"key,omitempty"`
17715
17716	// Value: [Output Only] A warning data value corresponding to the key.
17717	Value string `json:"value,omitempty"`
17718
17719	// ForceSendFields is a list of field names (e.g. "Key") to
17720	// unconditionally include in API requests. By default, fields with
17721	// empty values are omitted from API requests. However, any non-pointer,
17722	// non-interface field appearing in ForceSendFields will be sent to the
17723	// server regardless of whether the field is empty or not. This may be
17724	// used to include empty fields in Patch requests.
17725	ForceSendFields []string `json:"-"`
17726
17727	// NullFields is a list of field names (e.g. "Key") to include in API
17728	// requests with the JSON null value. By default, fields with empty
17729	// values are omitted from API requests. However, any field with an
17730	// empty value appearing in NullFields will be sent to the server as
17731	// null. It is an error if a field in this list has a non-empty value.
17732	// This may be used to include null fields in Patch requests.
17733	NullFields []string `json:"-"`
17734}
17735
17736func (s *NodeGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
17737	type NoMethod NodeGroupAggregatedListWarningData
17738	raw := NoMethod(*s)
17739	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17740}
17741
17742// NodeGroupList: Contains a list of nodeGroups.
17743type NodeGroupList struct {
17744	// Id: [Output Only] Unique identifier for the resource; defined by the
17745	// server.
17746	Id string `json:"id,omitempty"`
17747
17748	// Items: A list of NodeGroup resources.
17749	Items []*NodeGroup `json:"items,omitempty"`
17750
17751	// Kind: [Output Only] Type of resource.Always compute#nodeGroupList for
17752	// lists of node groups.
17753	Kind string `json:"kind,omitempty"`
17754
17755	// NextPageToken: [Output Only] This token allows you to get the next
17756	// page of results for list requests. If the number of results is larger
17757	// than maxResults, use the nextPageToken as a value for the query
17758	// parameter pageToken in the next list request. Subsequent list
17759	// requests will have their own nextPageToken to continue paging through
17760	// the results.
17761	NextPageToken string `json:"nextPageToken,omitempty"`
17762
17763	// SelfLink: [Output Only] Server-defined URL for this resource.
17764	SelfLink string `json:"selfLink,omitempty"`
17765
17766	// Warning: [Output Only] Informational warning message.
17767	Warning *NodeGroupListWarning `json:"warning,omitempty"`
17768
17769	// ServerResponse contains the HTTP response code and headers from the
17770	// server.
17771	googleapi.ServerResponse `json:"-"`
17772
17773	// ForceSendFields is a list of field names (e.g. "Id") to
17774	// unconditionally include in API requests. By default, fields with
17775	// empty values are omitted from API requests. However, any non-pointer,
17776	// non-interface field appearing in ForceSendFields will be sent to the
17777	// server regardless of whether the field is empty or not. This may be
17778	// used to include empty fields in Patch requests.
17779	ForceSendFields []string `json:"-"`
17780
17781	// NullFields is a list of field names (e.g. "Id") to include in API
17782	// requests with the JSON null value. By default, fields with empty
17783	// values are omitted from API requests. However, any field with an
17784	// empty value appearing in NullFields will be sent to the server as
17785	// null. It is an error if a field in this list has a non-empty value.
17786	// This may be used to include null fields in Patch requests.
17787	NullFields []string `json:"-"`
17788}
17789
17790func (s *NodeGroupList) MarshalJSON() ([]byte, error) {
17791	type NoMethod NodeGroupList
17792	raw := NoMethod(*s)
17793	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17794}
17795
17796// NodeGroupListWarning: [Output Only] Informational warning message.
17797type NodeGroupListWarning struct {
17798	// Code: [Output Only] A warning code, if applicable. For example,
17799	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17800	// the response.
17801	//
17802	// Possible values:
17803	//   "CLEANUP_FAILED"
17804	//   "DEPRECATED_RESOURCE_USED"
17805	//   "DEPRECATED_TYPE_USED"
17806	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17807	//   "EXPERIMENTAL_TYPE_USED"
17808	//   "EXTERNAL_API_WARNING"
17809	//   "FIELD_VALUE_OVERRIDEN"
17810	//   "INJECTED_KERNELS_DEPRECATED"
17811	//   "MISSING_TYPE_DEPENDENCY"
17812	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17813	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17814	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17815	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17816	//   "NEXT_HOP_NOT_RUNNING"
17817	//   "NOT_CRITICAL_ERROR"
17818	//   "NO_RESULTS_ON_PAGE"
17819	//   "REQUIRED_TOS_AGREEMENT"
17820	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17821	//   "RESOURCE_NOT_DELETED"
17822	//   "SCHEMA_VALIDATION_IGNORED"
17823	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17824	//   "UNDECLARED_PROPERTIES"
17825	//   "UNREACHABLE"
17826	Code string `json:"code,omitempty"`
17827
17828	// Data: [Output Only] Metadata about this warning in key: value format.
17829	// For example:
17830	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17831	Data []*NodeGroupListWarningData `json:"data,omitempty"`
17832
17833	// Message: [Output Only] A human-readable description of the warning
17834	// code.
17835	Message string `json:"message,omitempty"`
17836
17837	// ForceSendFields is a list of field names (e.g. "Code") to
17838	// unconditionally include in API requests. By default, fields with
17839	// empty values are omitted from API requests. However, any non-pointer,
17840	// non-interface field appearing in ForceSendFields will be sent to the
17841	// server regardless of whether the field is empty or not. This may be
17842	// used to include empty fields in Patch requests.
17843	ForceSendFields []string `json:"-"`
17844
17845	// NullFields is a list of field names (e.g. "Code") to include in API
17846	// requests with the JSON null value. By default, fields with empty
17847	// values are omitted from API requests. However, any field with an
17848	// empty value appearing in NullFields will be sent to the server as
17849	// null. It is an error if a field in this list has a non-empty value.
17850	// This may be used to include null fields in Patch requests.
17851	NullFields []string `json:"-"`
17852}
17853
17854func (s *NodeGroupListWarning) MarshalJSON() ([]byte, error) {
17855	type NoMethod NodeGroupListWarning
17856	raw := NoMethod(*s)
17857	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17858}
17859
17860type NodeGroupListWarningData struct {
17861	// Key: [Output Only] A key that provides more detail on the warning
17862	// being returned. For example, for warnings where there are no results
17863	// in a list request for a particular zone, this key might be scope and
17864	// the key value might be the zone name. Other examples might be a key
17865	// indicating a deprecated resource and a suggested replacement, or a
17866	// warning about invalid network settings (for example, if an instance
17867	// attempts to perform IP forwarding but is not enabled for IP
17868	// forwarding).
17869	Key string `json:"key,omitempty"`
17870
17871	// Value: [Output Only] A warning data value corresponding to the key.
17872	Value string `json:"value,omitempty"`
17873
17874	// ForceSendFields is a list of field names (e.g. "Key") to
17875	// unconditionally include in API requests. By default, fields with
17876	// empty values are omitted from API requests. However, any non-pointer,
17877	// non-interface field appearing in ForceSendFields will be sent to the
17878	// server regardless of whether the field is empty or not. This may be
17879	// used to include empty fields in Patch requests.
17880	ForceSendFields []string `json:"-"`
17881
17882	// NullFields is a list of field names (e.g. "Key") to include in API
17883	// requests with the JSON null value. By default, fields with empty
17884	// values are omitted from API requests. However, any field with an
17885	// empty value appearing in NullFields will be sent to the server as
17886	// null. It is an error if a field in this list has a non-empty value.
17887	// This may be used to include null fields in Patch requests.
17888	NullFields []string `json:"-"`
17889}
17890
17891func (s *NodeGroupListWarningData) MarshalJSON() ([]byte, error) {
17892	type NoMethod NodeGroupListWarningData
17893	raw := NoMethod(*s)
17894	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17895}
17896
17897type NodeGroupNode struct {
17898	// Instances: Instances scheduled on this node.
17899	Instances []string `json:"instances,omitempty"`
17900
17901	// Name: The name of the node.
17902	Name string `json:"name,omitempty"`
17903
17904	// NodeType: The type of this node.
17905	NodeType string `json:"nodeType,omitempty"`
17906
17907	// Possible values:
17908	//   "CREATING"
17909	//   "DELETING"
17910	//   "INVALID"
17911	//   "READY"
17912	//   "REPAIRING"
17913	Status string `json:"status,omitempty"`
17914
17915	// ForceSendFields is a list of field names (e.g. "Instances") to
17916	// unconditionally include in API requests. By default, fields with
17917	// empty values are omitted from API requests. However, any non-pointer,
17918	// non-interface field appearing in ForceSendFields will be sent to the
17919	// server regardless of whether the field is empty or not. This may be
17920	// used to include empty fields in Patch requests.
17921	ForceSendFields []string `json:"-"`
17922
17923	// NullFields is a list of field names (e.g. "Instances") to include in
17924	// API requests with the JSON null value. By default, fields with empty
17925	// values are omitted from API requests. However, any field with an
17926	// empty value appearing in NullFields will be sent to the server as
17927	// null. It is an error if a field in this list has a non-empty value.
17928	// This may be used to include null fields in Patch requests.
17929	NullFields []string `json:"-"`
17930}
17931
17932func (s *NodeGroupNode) MarshalJSON() ([]byte, error) {
17933	type NoMethod NodeGroupNode
17934	raw := NoMethod(*s)
17935	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17936}
17937
17938type NodeGroupsAddNodesRequest struct {
17939	// AdditionalNodeCount: Count of additional nodes to be added to the
17940	// node group.
17941	AdditionalNodeCount int64 `json:"additionalNodeCount,omitempty"`
17942
17943	// ForceSendFields is a list of field names (e.g. "AdditionalNodeCount")
17944	// to unconditionally include in API requests. By default, fields with
17945	// empty values are omitted from API requests. However, any non-pointer,
17946	// non-interface field appearing in ForceSendFields will be sent to the
17947	// server regardless of whether the field is empty or not. This may be
17948	// used to include empty fields in Patch requests.
17949	ForceSendFields []string `json:"-"`
17950
17951	// NullFields is a list of field names (e.g. "AdditionalNodeCount") to
17952	// include in API requests with the JSON null value. By default, fields
17953	// with empty values are omitted from API requests. However, any field
17954	// with an empty value appearing in NullFields will be sent to the
17955	// server as null. It is an error if a field in this list has a
17956	// non-empty value. This may be used to include null fields in Patch
17957	// requests.
17958	NullFields []string `json:"-"`
17959}
17960
17961func (s *NodeGroupsAddNodesRequest) MarshalJSON() ([]byte, error) {
17962	type NoMethod NodeGroupsAddNodesRequest
17963	raw := NoMethod(*s)
17964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17965}
17966
17967type NodeGroupsDeleteNodesRequest struct {
17968	Nodes []string `json:"nodes,omitempty"`
17969
17970	// ForceSendFields is a list of field names (e.g. "Nodes") to
17971	// unconditionally include in API requests. By default, fields with
17972	// empty values are omitted from API requests. However, any non-pointer,
17973	// non-interface field appearing in ForceSendFields will be sent to the
17974	// server regardless of whether the field is empty or not. This may be
17975	// used to include empty fields in Patch requests.
17976	ForceSendFields []string `json:"-"`
17977
17978	// NullFields is a list of field names (e.g. "Nodes") to include in API
17979	// requests with the JSON null value. By default, fields with empty
17980	// values are omitted from API requests. However, any field with an
17981	// empty value appearing in NullFields will be sent to the server as
17982	// null. It is an error if a field in this list has a non-empty value.
17983	// This may be used to include null fields in Patch requests.
17984	NullFields []string `json:"-"`
17985}
17986
17987func (s *NodeGroupsDeleteNodesRequest) MarshalJSON() ([]byte, error) {
17988	type NoMethod NodeGroupsDeleteNodesRequest
17989	raw := NoMethod(*s)
17990	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17991}
17992
17993type NodeGroupsListNodes struct {
17994	// Id: [Output Only] Unique identifier for the resource; defined by the
17995	// server.
17996	Id string `json:"id,omitempty"`
17997
17998	// Items: A list of Node resources.
17999	Items []*NodeGroupNode `json:"items,omitempty"`
18000
18001	// Kind: [Output Only] The resource type, which is always
18002	// compute.nodeGroupsListNodes for the list of nodes in the specified
18003	// node group.
18004	Kind string `json:"kind,omitempty"`
18005
18006	// NextPageToken: [Output Only] This token allows you to get the next
18007	// page of results for list requests. If the number of results is larger
18008	// than maxResults, use the nextPageToken as a value for the query
18009	// parameter pageToken in the next list request. Subsequent list
18010	// requests will have their own nextPageToken to continue paging through
18011	// the results.
18012	NextPageToken string `json:"nextPageToken,omitempty"`
18013
18014	// SelfLink: [Output Only] Server-defined URL for this resource.
18015	SelfLink string `json:"selfLink,omitempty"`
18016
18017	// Warning: [Output Only] Informational warning message.
18018	Warning *NodeGroupsListNodesWarning `json:"warning,omitempty"`
18019
18020	// ServerResponse contains the HTTP response code and headers from the
18021	// server.
18022	googleapi.ServerResponse `json:"-"`
18023
18024	// ForceSendFields is a list of field names (e.g. "Id") to
18025	// unconditionally include in API requests. By default, fields with
18026	// empty values are omitted from API requests. However, any non-pointer,
18027	// non-interface field appearing in ForceSendFields will be sent to the
18028	// server regardless of whether the field is empty or not. This may be
18029	// used to include empty fields in Patch requests.
18030	ForceSendFields []string `json:"-"`
18031
18032	// NullFields is a list of field names (e.g. "Id") to include in API
18033	// requests with the JSON null value. By default, fields with empty
18034	// values are omitted from API requests. However, any field with an
18035	// empty value appearing in NullFields will be sent to the server as
18036	// null. It is an error if a field in this list has a non-empty value.
18037	// This may be used to include null fields in Patch requests.
18038	NullFields []string `json:"-"`
18039}
18040
18041func (s *NodeGroupsListNodes) MarshalJSON() ([]byte, error) {
18042	type NoMethod NodeGroupsListNodes
18043	raw := NoMethod(*s)
18044	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18045}
18046
18047// NodeGroupsListNodesWarning: [Output Only] Informational warning
18048// message.
18049type NodeGroupsListNodesWarning struct {
18050	// Code: [Output Only] A warning code, if applicable. For example,
18051	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18052	// the response.
18053	//
18054	// Possible values:
18055	//   "CLEANUP_FAILED"
18056	//   "DEPRECATED_RESOURCE_USED"
18057	//   "DEPRECATED_TYPE_USED"
18058	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18059	//   "EXPERIMENTAL_TYPE_USED"
18060	//   "EXTERNAL_API_WARNING"
18061	//   "FIELD_VALUE_OVERRIDEN"
18062	//   "INJECTED_KERNELS_DEPRECATED"
18063	//   "MISSING_TYPE_DEPENDENCY"
18064	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18065	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18066	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18067	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18068	//   "NEXT_HOP_NOT_RUNNING"
18069	//   "NOT_CRITICAL_ERROR"
18070	//   "NO_RESULTS_ON_PAGE"
18071	//   "REQUIRED_TOS_AGREEMENT"
18072	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18073	//   "RESOURCE_NOT_DELETED"
18074	//   "SCHEMA_VALIDATION_IGNORED"
18075	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18076	//   "UNDECLARED_PROPERTIES"
18077	//   "UNREACHABLE"
18078	Code string `json:"code,omitempty"`
18079
18080	// Data: [Output Only] Metadata about this warning in key: value format.
18081	// For example:
18082	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18083	Data []*NodeGroupsListNodesWarningData `json:"data,omitempty"`
18084
18085	// Message: [Output Only] A human-readable description of the warning
18086	// code.
18087	Message string `json:"message,omitempty"`
18088
18089	// ForceSendFields is a list of field names (e.g. "Code") to
18090	// unconditionally include in API requests. By default, fields with
18091	// empty values are omitted from API requests. However, any non-pointer,
18092	// non-interface field appearing in ForceSendFields will be sent to the
18093	// server regardless of whether the field is empty or not. This may be
18094	// used to include empty fields in Patch requests.
18095	ForceSendFields []string `json:"-"`
18096
18097	// NullFields is a list of field names (e.g. "Code") to include in API
18098	// requests with the JSON null value. By default, fields with empty
18099	// values are omitted from API requests. However, any field with an
18100	// empty value appearing in NullFields will be sent to the server as
18101	// null. It is an error if a field in this list has a non-empty value.
18102	// This may be used to include null fields in Patch requests.
18103	NullFields []string `json:"-"`
18104}
18105
18106func (s *NodeGroupsListNodesWarning) MarshalJSON() ([]byte, error) {
18107	type NoMethod NodeGroupsListNodesWarning
18108	raw := NoMethod(*s)
18109	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18110}
18111
18112type NodeGroupsListNodesWarningData struct {
18113	// Key: [Output Only] A key that provides more detail on the warning
18114	// being returned. For example, for warnings where there are no results
18115	// in a list request for a particular zone, this key might be scope and
18116	// the key value might be the zone name. Other examples might be a key
18117	// indicating a deprecated resource and a suggested replacement, or a
18118	// warning about invalid network settings (for example, if an instance
18119	// attempts to perform IP forwarding but is not enabled for IP
18120	// forwarding).
18121	Key string `json:"key,omitempty"`
18122
18123	// Value: [Output Only] A warning data value corresponding to the key.
18124	Value string `json:"value,omitempty"`
18125
18126	// ForceSendFields is a list of field names (e.g. "Key") to
18127	// unconditionally include in API requests. By default, fields with
18128	// empty values are omitted from API requests. However, any non-pointer,
18129	// non-interface field appearing in ForceSendFields will be sent to the
18130	// server regardless of whether the field is empty or not. This may be
18131	// used to include empty fields in Patch requests.
18132	ForceSendFields []string `json:"-"`
18133
18134	// NullFields is a list of field names (e.g. "Key") to include in API
18135	// requests with the JSON null value. By default, fields with empty
18136	// values are omitted from API requests. However, any field with an
18137	// empty value appearing in NullFields will be sent to the server as
18138	// null. It is an error if a field in this list has a non-empty value.
18139	// This may be used to include null fields in Patch requests.
18140	NullFields []string `json:"-"`
18141}
18142
18143func (s *NodeGroupsListNodesWarningData) MarshalJSON() ([]byte, error) {
18144	type NoMethod NodeGroupsListNodesWarningData
18145	raw := NoMethod(*s)
18146	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18147}
18148
18149type NodeGroupsScopedList struct {
18150	// NodeGroups: [Output Only] A list of node groups contained in this
18151	// scope.
18152	NodeGroups []*NodeGroup `json:"nodeGroups,omitempty"`
18153
18154	// Warning: [Output Only] An informational warning that appears when the
18155	// nodeGroup list is empty.
18156	Warning *NodeGroupsScopedListWarning `json:"warning,omitempty"`
18157
18158	// ForceSendFields is a list of field names (e.g. "NodeGroups") to
18159	// unconditionally include in API requests. By default, fields with
18160	// empty values are omitted from API requests. However, any non-pointer,
18161	// non-interface field appearing in ForceSendFields will be sent to the
18162	// server regardless of whether the field is empty or not. This may be
18163	// used to include empty fields in Patch requests.
18164	ForceSendFields []string `json:"-"`
18165
18166	// NullFields is a list of field names (e.g. "NodeGroups") to include in
18167	// API requests with the JSON null value. By default, fields with empty
18168	// values are omitted from API requests. However, any field with an
18169	// empty value appearing in NullFields will be sent to the server as
18170	// null. It is an error if a field in this list has a non-empty value.
18171	// This may be used to include null fields in Patch requests.
18172	NullFields []string `json:"-"`
18173}
18174
18175func (s *NodeGroupsScopedList) MarshalJSON() ([]byte, error) {
18176	type NoMethod NodeGroupsScopedList
18177	raw := NoMethod(*s)
18178	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18179}
18180
18181// NodeGroupsScopedListWarning: [Output Only] An informational warning
18182// that appears when the nodeGroup list is empty.
18183type NodeGroupsScopedListWarning struct {
18184	// Code: [Output Only] A warning code, if applicable. For example,
18185	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18186	// the response.
18187	//
18188	// Possible values:
18189	//   "CLEANUP_FAILED"
18190	//   "DEPRECATED_RESOURCE_USED"
18191	//   "DEPRECATED_TYPE_USED"
18192	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18193	//   "EXPERIMENTAL_TYPE_USED"
18194	//   "EXTERNAL_API_WARNING"
18195	//   "FIELD_VALUE_OVERRIDEN"
18196	//   "INJECTED_KERNELS_DEPRECATED"
18197	//   "MISSING_TYPE_DEPENDENCY"
18198	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18199	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18200	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18201	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18202	//   "NEXT_HOP_NOT_RUNNING"
18203	//   "NOT_CRITICAL_ERROR"
18204	//   "NO_RESULTS_ON_PAGE"
18205	//   "REQUIRED_TOS_AGREEMENT"
18206	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18207	//   "RESOURCE_NOT_DELETED"
18208	//   "SCHEMA_VALIDATION_IGNORED"
18209	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18210	//   "UNDECLARED_PROPERTIES"
18211	//   "UNREACHABLE"
18212	Code string `json:"code,omitempty"`
18213
18214	// Data: [Output Only] Metadata about this warning in key: value format.
18215	// For example:
18216	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18217	Data []*NodeGroupsScopedListWarningData `json:"data,omitempty"`
18218
18219	// Message: [Output Only] A human-readable description of the warning
18220	// code.
18221	Message string `json:"message,omitempty"`
18222
18223	// ForceSendFields is a list of field names (e.g. "Code") to
18224	// unconditionally include in API requests. By default, fields with
18225	// empty values are omitted from API requests. However, any non-pointer,
18226	// non-interface field appearing in ForceSendFields will be sent to the
18227	// server regardless of whether the field is empty or not. This may be
18228	// used to include empty fields in Patch requests.
18229	ForceSendFields []string `json:"-"`
18230
18231	// NullFields is a list of field names (e.g. "Code") to include in API
18232	// requests with the JSON null value. By default, fields with empty
18233	// values are omitted from API requests. However, any field with an
18234	// empty value appearing in NullFields will be sent to the server as
18235	// null. It is an error if a field in this list has a non-empty value.
18236	// This may be used to include null fields in Patch requests.
18237	NullFields []string `json:"-"`
18238}
18239
18240func (s *NodeGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
18241	type NoMethod NodeGroupsScopedListWarning
18242	raw := NoMethod(*s)
18243	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18244}
18245
18246type NodeGroupsScopedListWarningData struct {
18247	// Key: [Output Only] A key that provides more detail on the warning
18248	// being returned. For example, for warnings where there are no results
18249	// in a list request for a particular zone, this key might be scope and
18250	// the key value might be the zone name. Other examples might be a key
18251	// indicating a deprecated resource and a suggested replacement, or a
18252	// warning about invalid network settings (for example, if an instance
18253	// attempts to perform IP forwarding but is not enabled for IP
18254	// forwarding).
18255	Key string `json:"key,omitempty"`
18256
18257	// Value: [Output Only] A warning data value corresponding to the key.
18258	Value string `json:"value,omitempty"`
18259
18260	// ForceSendFields is a list of field names (e.g. "Key") to
18261	// unconditionally include in API requests. By default, fields with
18262	// empty values are omitted from API requests. However, any non-pointer,
18263	// non-interface field appearing in ForceSendFields will be sent to the
18264	// server regardless of whether the field is empty or not. This may be
18265	// used to include empty fields in Patch requests.
18266	ForceSendFields []string `json:"-"`
18267
18268	// NullFields is a list of field names (e.g. "Key") to include in API
18269	// requests with the JSON null value. By default, fields with empty
18270	// values are omitted from API requests. However, any field with an
18271	// empty value appearing in NullFields will be sent to the server as
18272	// null. It is an error if a field in this list has a non-empty value.
18273	// This may be used to include null fields in Patch requests.
18274	NullFields []string `json:"-"`
18275}
18276
18277func (s *NodeGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
18278	type NoMethod NodeGroupsScopedListWarningData
18279	raw := NoMethod(*s)
18280	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18281}
18282
18283type NodeGroupsSetNodeTemplateRequest struct {
18284	// NodeTemplate: Full or partial URL of the node template resource to be
18285	// updated for this node group.
18286	NodeTemplate string `json:"nodeTemplate,omitempty"`
18287
18288	// ForceSendFields is a list of field names (e.g. "NodeTemplate") to
18289	// unconditionally include in API requests. By default, fields with
18290	// empty values are omitted from API requests. However, any non-pointer,
18291	// non-interface field appearing in ForceSendFields will be sent to the
18292	// server regardless of whether the field is empty or not. This may be
18293	// used to include empty fields in Patch requests.
18294	ForceSendFields []string `json:"-"`
18295
18296	// NullFields is a list of field names (e.g. "NodeTemplate") to include
18297	// in API requests with the JSON null value. By default, fields with
18298	// empty values are omitted from API requests. However, any field with
18299	// an empty value appearing in NullFields will be sent to the server as
18300	// null. It is an error if a field in this list has a non-empty value.
18301	// This may be used to include null fields in Patch requests.
18302	NullFields []string `json:"-"`
18303}
18304
18305func (s *NodeGroupsSetNodeTemplateRequest) MarshalJSON() ([]byte, error) {
18306	type NoMethod NodeGroupsSetNodeTemplateRequest
18307	raw := NoMethod(*s)
18308	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18309}
18310
18311// NodeTemplate: A Node Template resource. To learn more about node
18312// templates and sole-tenant nodes, read the Sole-tenant nodes
18313// documentation. (== resource_for beta.nodeTemplates ==) (==
18314// resource_for v1.nodeTemplates ==)
18315type NodeTemplate struct {
18316	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
18317	// format.
18318	CreationTimestamp string `json:"creationTimestamp,omitempty"`
18319
18320	// Description: An optional description of this resource. Provide this
18321	// property when you create the resource.
18322	Description string `json:"description,omitempty"`
18323
18324	// Id: [Output Only] The unique identifier for the resource. This
18325	// identifier is defined by the server.
18326	Id uint64 `json:"id,omitempty,string"`
18327
18328	// Kind: [Output Only] The type of the resource. Always
18329	// compute#nodeTemplate for node templates.
18330	Kind string `json:"kind,omitempty"`
18331
18332	// Name: The name of the resource, provided by the client when initially
18333	// creating the resource. The resource name must be 1-63 characters
18334	// long, and comply with RFC1035. Specifically, the name must be 1-63
18335	// characters long and match the regular expression
18336	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
18337	// a lowercase letter, and all following characters must be a dash,
18338	// lowercase letter, or digit, except the last character, which cannot
18339	// be a dash.
18340	Name string `json:"name,omitempty"`
18341
18342	// NodeAffinityLabels: Labels to use for node affinity, which will be
18343	// used in instance scheduling.
18344	NodeAffinityLabels map[string]string `json:"nodeAffinityLabels,omitempty"`
18345
18346	// NodeType: The node type to use for nodes group that are created from
18347	// this template.
18348	NodeType string `json:"nodeType,omitempty"`
18349
18350	// NodeTypeFlexibility: The flexible properties of the desired node
18351	// type. Node groups that use this node template will create nodes of a
18352	// type that matches these properties.
18353	//
18354	// This field is mutually exclusive with the node_type property; you can
18355	// only define one or the other, but not both.
18356	NodeTypeFlexibility *NodeTemplateNodeTypeFlexibility `json:"nodeTypeFlexibility,omitempty"`
18357
18358	// Region: [Output Only] The name of the region where the node template
18359	// resides, such as us-central1.
18360	Region string `json:"region,omitempty"`
18361
18362	// SelfLink: [Output Only] Server-defined URL for the resource.
18363	SelfLink string `json:"selfLink,omitempty"`
18364
18365	// Status: [Output Only] The status of the node template. One of the
18366	// following values: CREATING, READY, and DELETING.
18367	//
18368	// Possible values:
18369	//   "CREATING"
18370	//   "DELETING"
18371	//   "INVALID"
18372	//   "READY"
18373	Status string `json:"status,omitempty"`
18374
18375	// StatusMessage: [Output Only] An optional, human-readable explanation
18376	// of the status.
18377	StatusMessage string `json:"statusMessage,omitempty"`
18378
18379	// ServerResponse contains the HTTP response code and headers from the
18380	// server.
18381	googleapi.ServerResponse `json:"-"`
18382
18383	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
18384	// to unconditionally include in API requests. By default, fields with
18385	// empty values are omitted from API requests. However, any non-pointer,
18386	// non-interface field appearing in ForceSendFields will be sent to the
18387	// server regardless of whether the field is empty or not. This may be
18388	// used to include empty fields in Patch requests.
18389	ForceSendFields []string `json:"-"`
18390
18391	// NullFields is a list of field names (e.g. "CreationTimestamp") to
18392	// include in API requests with the JSON null value. By default, fields
18393	// with empty values are omitted from API requests. However, any field
18394	// with an empty value appearing in NullFields will be sent to the
18395	// server as null. It is an error if a field in this list has a
18396	// non-empty value. This may be used to include null fields in Patch
18397	// requests.
18398	NullFields []string `json:"-"`
18399}
18400
18401func (s *NodeTemplate) MarshalJSON() ([]byte, error) {
18402	type NoMethod NodeTemplate
18403	raw := NoMethod(*s)
18404	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18405}
18406
18407type NodeTemplateAggregatedList struct {
18408	// Id: [Output Only] Unique identifier for the resource; defined by the
18409	// server.
18410	Id string `json:"id,omitempty"`
18411
18412	// Items: A list of NodeTemplatesScopedList resources.
18413	Items map[string]NodeTemplatesScopedList `json:"items,omitempty"`
18414
18415	// Kind: [Output Only] Type of resource.Always
18416	// compute#nodeTemplateAggregatedList for aggregated lists of node
18417	// templates.
18418	Kind string `json:"kind,omitempty"`
18419
18420	// NextPageToken: [Output Only] This token allows you to get the next
18421	// page of results for list requests. If the number of results is larger
18422	// than maxResults, use the nextPageToken as a value for the query
18423	// parameter pageToken in the next list request. Subsequent list
18424	// requests will have their own nextPageToken to continue paging through
18425	// the results.
18426	NextPageToken string `json:"nextPageToken,omitempty"`
18427
18428	// SelfLink: [Output Only] Server-defined URL for this resource.
18429	SelfLink string `json:"selfLink,omitempty"`
18430
18431	// Warning: [Output Only] Informational warning message.
18432	Warning *NodeTemplateAggregatedListWarning `json:"warning,omitempty"`
18433
18434	// ServerResponse contains the HTTP response code and headers from the
18435	// server.
18436	googleapi.ServerResponse `json:"-"`
18437
18438	// ForceSendFields is a list of field names (e.g. "Id") to
18439	// unconditionally include in API requests. By default, fields with
18440	// empty values are omitted from API requests. However, any non-pointer,
18441	// non-interface field appearing in ForceSendFields will be sent to the
18442	// server regardless of whether the field is empty or not. This may be
18443	// used to include empty fields in Patch requests.
18444	ForceSendFields []string `json:"-"`
18445
18446	// NullFields is a list of field names (e.g. "Id") to include in API
18447	// requests with the JSON null value. By default, fields with empty
18448	// values are omitted from API requests. However, any field with an
18449	// empty value appearing in NullFields will be sent to the server as
18450	// null. It is an error if a field in this list has a non-empty value.
18451	// This may be used to include null fields in Patch requests.
18452	NullFields []string `json:"-"`
18453}
18454
18455func (s *NodeTemplateAggregatedList) MarshalJSON() ([]byte, error) {
18456	type NoMethod NodeTemplateAggregatedList
18457	raw := NoMethod(*s)
18458	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18459}
18460
18461// NodeTemplateAggregatedListWarning: [Output Only] Informational
18462// warning message.
18463type NodeTemplateAggregatedListWarning struct {
18464	// Code: [Output Only] A warning code, if applicable. For example,
18465	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18466	// the response.
18467	//
18468	// Possible values:
18469	//   "CLEANUP_FAILED"
18470	//   "DEPRECATED_RESOURCE_USED"
18471	//   "DEPRECATED_TYPE_USED"
18472	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18473	//   "EXPERIMENTAL_TYPE_USED"
18474	//   "EXTERNAL_API_WARNING"
18475	//   "FIELD_VALUE_OVERRIDEN"
18476	//   "INJECTED_KERNELS_DEPRECATED"
18477	//   "MISSING_TYPE_DEPENDENCY"
18478	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18479	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18480	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18481	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18482	//   "NEXT_HOP_NOT_RUNNING"
18483	//   "NOT_CRITICAL_ERROR"
18484	//   "NO_RESULTS_ON_PAGE"
18485	//   "REQUIRED_TOS_AGREEMENT"
18486	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18487	//   "RESOURCE_NOT_DELETED"
18488	//   "SCHEMA_VALIDATION_IGNORED"
18489	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18490	//   "UNDECLARED_PROPERTIES"
18491	//   "UNREACHABLE"
18492	Code string `json:"code,omitempty"`
18493
18494	// Data: [Output Only] Metadata about this warning in key: value format.
18495	// For example:
18496	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18497	Data []*NodeTemplateAggregatedListWarningData `json:"data,omitempty"`
18498
18499	// Message: [Output Only] A human-readable description of the warning
18500	// code.
18501	Message string `json:"message,omitempty"`
18502
18503	// ForceSendFields is a list of field names (e.g. "Code") to
18504	// unconditionally include in API requests. By default, fields with
18505	// empty values are omitted from API requests. However, any non-pointer,
18506	// non-interface field appearing in ForceSendFields will be sent to the
18507	// server regardless of whether the field is empty or not. This may be
18508	// used to include empty fields in Patch requests.
18509	ForceSendFields []string `json:"-"`
18510
18511	// NullFields is a list of field names (e.g. "Code") to include in API
18512	// requests with the JSON null value. By default, fields with empty
18513	// values are omitted from API requests. However, any field with an
18514	// empty value appearing in NullFields will be sent to the server as
18515	// null. It is an error if a field in this list has a non-empty value.
18516	// This may be used to include null fields in Patch requests.
18517	NullFields []string `json:"-"`
18518}
18519
18520func (s *NodeTemplateAggregatedListWarning) MarshalJSON() ([]byte, error) {
18521	type NoMethod NodeTemplateAggregatedListWarning
18522	raw := NoMethod(*s)
18523	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18524}
18525
18526type NodeTemplateAggregatedListWarningData struct {
18527	// Key: [Output Only] A key that provides more detail on the warning
18528	// being returned. For example, for warnings where there are no results
18529	// in a list request for a particular zone, this key might be scope and
18530	// the key value might be the zone name. Other examples might be a key
18531	// indicating a deprecated resource and a suggested replacement, or a
18532	// warning about invalid network settings (for example, if an instance
18533	// attempts to perform IP forwarding but is not enabled for IP
18534	// forwarding).
18535	Key string `json:"key,omitempty"`
18536
18537	// Value: [Output Only] A warning data value corresponding to the key.
18538	Value string `json:"value,omitempty"`
18539
18540	// ForceSendFields is a list of field names (e.g. "Key") to
18541	// unconditionally include in API requests. By default, fields with
18542	// empty values are omitted from API requests. However, any non-pointer,
18543	// non-interface field appearing in ForceSendFields will be sent to the
18544	// server regardless of whether the field is empty or not. This may be
18545	// used to include empty fields in Patch requests.
18546	ForceSendFields []string `json:"-"`
18547
18548	// NullFields is a list of field names (e.g. "Key") to include in API
18549	// requests with the JSON null value. By default, fields with empty
18550	// values are omitted from API requests. However, any field with an
18551	// empty value appearing in NullFields will be sent to the server as
18552	// null. It is an error if a field in this list has a non-empty value.
18553	// This may be used to include null fields in Patch requests.
18554	NullFields []string `json:"-"`
18555}
18556
18557func (s *NodeTemplateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
18558	type NoMethod NodeTemplateAggregatedListWarningData
18559	raw := NoMethod(*s)
18560	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18561}
18562
18563// NodeTemplateList: Contains a list of node templates.
18564type NodeTemplateList struct {
18565	// Id: [Output Only] Unique identifier for the resource; defined by the
18566	// server.
18567	Id string `json:"id,omitempty"`
18568
18569	// Items: A list of NodeTemplate resources.
18570	Items []*NodeTemplate `json:"items,omitempty"`
18571
18572	// Kind: [Output Only] Type of resource.Always compute#nodeTemplateList
18573	// for lists of node templates.
18574	Kind string `json:"kind,omitempty"`
18575
18576	// NextPageToken: [Output Only] This token allows you to get the next
18577	// page of results for list requests. If the number of results is larger
18578	// than maxResults, use the nextPageToken as a value for the query
18579	// parameter pageToken in the next list request. Subsequent list
18580	// requests will have their own nextPageToken to continue paging through
18581	// the results.
18582	NextPageToken string `json:"nextPageToken,omitempty"`
18583
18584	// SelfLink: [Output Only] Server-defined URL for this resource.
18585	SelfLink string `json:"selfLink,omitempty"`
18586
18587	// Warning: [Output Only] Informational warning message.
18588	Warning *NodeTemplateListWarning `json:"warning,omitempty"`
18589
18590	// ServerResponse contains the HTTP response code and headers from the
18591	// server.
18592	googleapi.ServerResponse `json:"-"`
18593
18594	// ForceSendFields is a list of field names (e.g. "Id") to
18595	// unconditionally include in API requests. By default, fields with
18596	// empty values are omitted from API requests. However, any non-pointer,
18597	// non-interface field appearing in ForceSendFields will be sent to the
18598	// server regardless of whether the field is empty or not. This may be
18599	// used to include empty fields in Patch requests.
18600	ForceSendFields []string `json:"-"`
18601
18602	// NullFields is a list of field names (e.g. "Id") to include in API
18603	// requests with the JSON null value. By default, fields with empty
18604	// values are omitted from API requests. However, any field with an
18605	// empty value appearing in NullFields will be sent to the server as
18606	// null. It is an error if a field in this list has a non-empty value.
18607	// This may be used to include null fields in Patch requests.
18608	NullFields []string `json:"-"`
18609}
18610
18611func (s *NodeTemplateList) MarshalJSON() ([]byte, error) {
18612	type NoMethod NodeTemplateList
18613	raw := NoMethod(*s)
18614	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18615}
18616
18617// NodeTemplateListWarning: [Output Only] Informational warning message.
18618type NodeTemplateListWarning struct {
18619	// Code: [Output Only] A warning code, if applicable. For example,
18620	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18621	// the response.
18622	//
18623	// Possible values:
18624	//   "CLEANUP_FAILED"
18625	//   "DEPRECATED_RESOURCE_USED"
18626	//   "DEPRECATED_TYPE_USED"
18627	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18628	//   "EXPERIMENTAL_TYPE_USED"
18629	//   "EXTERNAL_API_WARNING"
18630	//   "FIELD_VALUE_OVERRIDEN"
18631	//   "INJECTED_KERNELS_DEPRECATED"
18632	//   "MISSING_TYPE_DEPENDENCY"
18633	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18634	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18635	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18636	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18637	//   "NEXT_HOP_NOT_RUNNING"
18638	//   "NOT_CRITICAL_ERROR"
18639	//   "NO_RESULTS_ON_PAGE"
18640	//   "REQUIRED_TOS_AGREEMENT"
18641	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18642	//   "RESOURCE_NOT_DELETED"
18643	//   "SCHEMA_VALIDATION_IGNORED"
18644	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18645	//   "UNDECLARED_PROPERTIES"
18646	//   "UNREACHABLE"
18647	Code string `json:"code,omitempty"`
18648
18649	// Data: [Output Only] Metadata about this warning in key: value format.
18650	// For example:
18651	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18652	Data []*NodeTemplateListWarningData `json:"data,omitempty"`
18653
18654	// Message: [Output Only] A human-readable description of the warning
18655	// code.
18656	Message string `json:"message,omitempty"`
18657
18658	// ForceSendFields is a list of field names (e.g. "Code") to
18659	// unconditionally include in API requests. By default, fields with
18660	// empty values are omitted from API requests. However, any non-pointer,
18661	// non-interface field appearing in ForceSendFields will be sent to the
18662	// server regardless of whether the field is empty or not. This may be
18663	// used to include empty fields in Patch requests.
18664	ForceSendFields []string `json:"-"`
18665
18666	// NullFields is a list of field names (e.g. "Code") to include in API
18667	// requests with the JSON null value. By default, fields with empty
18668	// values are omitted from API requests. However, any field with an
18669	// empty value appearing in NullFields will be sent to the server as
18670	// null. It is an error if a field in this list has a non-empty value.
18671	// This may be used to include null fields in Patch requests.
18672	NullFields []string `json:"-"`
18673}
18674
18675func (s *NodeTemplateListWarning) MarshalJSON() ([]byte, error) {
18676	type NoMethod NodeTemplateListWarning
18677	raw := NoMethod(*s)
18678	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18679}
18680
18681type NodeTemplateListWarningData struct {
18682	// Key: [Output Only] A key that provides more detail on the warning
18683	// being returned. For example, for warnings where there are no results
18684	// in a list request for a particular zone, this key might be scope and
18685	// the key value might be the zone name. Other examples might be a key
18686	// indicating a deprecated resource and a suggested replacement, or a
18687	// warning about invalid network settings (for example, if an instance
18688	// attempts to perform IP forwarding but is not enabled for IP
18689	// forwarding).
18690	Key string `json:"key,omitempty"`
18691
18692	// Value: [Output Only] A warning data value corresponding to the key.
18693	Value string `json:"value,omitempty"`
18694
18695	// ForceSendFields is a list of field names (e.g. "Key") to
18696	// unconditionally include in API requests. By default, fields with
18697	// empty values are omitted from API requests. However, any non-pointer,
18698	// non-interface field appearing in ForceSendFields will be sent to the
18699	// server regardless of whether the field is empty or not. This may be
18700	// used to include empty fields in Patch requests.
18701	ForceSendFields []string `json:"-"`
18702
18703	// NullFields is a list of field names (e.g. "Key") to include in API
18704	// requests with the JSON null value. By default, fields with empty
18705	// values are omitted from API requests. However, any field with an
18706	// empty value appearing in NullFields will be sent to the server as
18707	// null. It is an error if a field in this list has a non-empty value.
18708	// This may be used to include null fields in Patch requests.
18709	NullFields []string `json:"-"`
18710}
18711
18712func (s *NodeTemplateListWarningData) MarshalJSON() ([]byte, error) {
18713	type NoMethod NodeTemplateListWarningData
18714	raw := NoMethod(*s)
18715	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18716}
18717
18718type NodeTemplateNodeTypeFlexibility struct {
18719	Cpus string `json:"cpus,omitempty"`
18720
18721	LocalSsd string `json:"localSsd,omitempty"`
18722
18723	Memory string `json:"memory,omitempty"`
18724
18725	// ForceSendFields is a list of field names (e.g. "Cpus") to
18726	// unconditionally include in API requests. By default, fields with
18727	// empty values are omitted from API requests. However, any non-pointer,
18728	// non-interface field appearing in ForceSendFields will be sent to the
18729	// server regardless of whether the field is empty or not. This may be
18730	// used to include empty fields in Patch requests.
18731	ForceSendFields []string `json:"-"`
18732
18733	// NullFields is a list of field names (e.g. "Cpus") to include in API
18734	// requests with the JSON null value. By default, fields with empty
18735	// values are omitted from API requests. However, any field with an
18736	// empty value appearing in NullFields will be sent to the server as
18737	// null. It is an error if a field in this list has a non-empty value.
18738	// This may be used to include null fields in Patch requests.
18739	NullFields []string `json:"-"`
18740}
18741
18742func (s *NodeTemplateNodeTypeFlexibility) MarshalJSON() ([]byte, error) {
18743	type NoMethod NodeTemplateNodeTypeFlexibility
18744	raw := NoMethod(*s)
18745	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18746}
18747
18748type NodeTemplatesScopedList struct {
18749	// NodeTemplates: [Output Only] A list of node templates contained in
18750	// this scope.
18751	NodeTemplates []*NodeTemplate `json:"nodeTemplates,omitempty"`
18752
18753	// Warning: [Output Only] An informational warning that appears when the
18754	// node templates list is empty.
18755	Warning *NodeTemplatesScopedListWarning `json:"warning,omitempty"`
18756
18757	// ForceSendFields is a list of field names (e.g. "NodeTemplates") to
18758	// unconditionally include in API requests. By default, fields with
18759	// empty values are omitted from API requests. However, any non-pointer,
18760	// non-interface field appearing in ForceSendFields will be sent to the
18761	// server regardless of whether the field is empty or not. This may be
18762	// used to include empty fields in Patch requests.
18763	ForceSendFields []string `json:"-"`
18764
18765	// NullFields is a list of field names (e.g. "NodeTemplates") to include
18766	// in API requests with the JSON null value. By default, fields with
18767	// empty values are omitted from API requests. However, any field with
18768	// an empty value appearing in NullFields will be sent to the server as
18769	// null. It is an error if a field in this list has a non-empty value.
18770	// This may be used to include null fields in Patch requests.
18771	NullFields []string `json:"-"`
18772}
18773
18774func (s *NodeTemplatesScopedList) MarshalJSON() ([]byte, error) {
18775	type NoMethod NodeTemplatesScopedList
18776	raw := NoMethod(*s)
18777	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18778}
18779
18780// NodeTemplatesScopedListWarning: [Output Only] An informational
18781// warning that appears when the node templates list is empty.
18782type NodeTemplatesScopedListWarning struct {
18783	// Code: [Output Only] A warning code, if applicable. For example,
18784	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18785	// the response.
18786	//
18787	// Possible values:
18788	//   "CLEANUP_FAILED"
18789	//   "DEPRECATED_RESOURCE_USED"
18790	//   "DEPRECATED_TYPE_USED"
18791	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18792	//   "EXPERIMENTAL_TYPE_USED"
18793	//   "EXTERNAL_API_WARNING"
18794	//   "FIELD_VALUE_OVERRIDEN"
18795	//   "INJECTED_KERNELS_DEPRECATED"
18796	//   "MISSING_TYPE_DEPENDENCY"
18797	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18798	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18799	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18800	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18801	//   "NEXT_HOP_NOT_RUNNING"
18802	//   "NOT_CRITICAL_ERROR"
18803	//   "NO_RESULTS_ON_PAGE"
18804	//   "REQUIRED_TOS_AGREEMENT"
18805	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18806	//   "RESOURCE_NOT_DELETED"
18807	//   "SCHEMA_VALIDATION_IGNORED"
18808	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18809	//   "UNDECLARED_PROPERTIES"
18810	//   "UNREACHABLE"
18811	Code string `json:"code,omitempty"`
18812
18813	// Data: [Output Only] Metadata about this warning in key: value format.
18814	// For example:
18815	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18816	Data []*NodeTemplatesScopedListWarningData `json:"data,omitempty"`
18817
18818	// Message: [Output Only] A human-readable description of the warning
18819	// code.
18820	Message string `json:"message,omitempty"`
18821
18822	// ForceSendFields is a list of field names (e.g. "Code") to
18823	// unconditionally include in API requests. By default, fields with
18824	// empty values are omitted from API requests. However, any non-pointer,
18825	// non-interface field appearing in ForceSendFields will be sent to the
18826	// server regardless of whether the field is empty or not. This may be
18827	// used to include empty fields in Patch requests.
18828	ForceSendFields []string `json:"-"`
18829
18830	// NullFields is a list of field names (e.g. "Code") to include in API
18831	// requests with the JSON null value. By default, fields with empty
18832	// values are omitted from API requests. However, any field with an
18833	// empty value appearing in NullFields will be sent to the server as
18834	// null. It is an error if a field in this list has a non-empty value.
18835	// This may be used to include null fields in Patch requests.
18836	NullFields []string `json:"-"`
18837}
18838
18839func (s *NodeTemplatesScopedListWarning) MarshalJSON() ([]byte, error) {
18840	type NoMethod NodeTemplatesScopedListWarning
18841	raw := NoMethod(*s)
18842	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18843}
18844
18845type NodeTemplatesScopedListWarningData struct {
18846	// Key: [Output Only] A key that provides more detail on the warning
18847	// being returned. For example, for warnings where there are no results
18848	// in a list request for a particular zone, this key might be scope and
18849	// the key value might be the zone name. Other examples might be a key
18850	// indicating a deprecated resource and a suggested replacement, or a
18851	// warning about invalid network settings (for example, if an instance
18852	// attempts to perform IP forwarding but is not enabled for IP
18853	// forwarding).
18854	Key string `json:"key,omitempty"`
18855
18856	// Value: [Output Only] A warning data value corresponding to the key.
18857	Value string `json:"value,omitempty"`
18858
18859	// ForceSendFields is a list of field names (e.g. "Key") to
18860	// unconditionally include in API requests. By default, fields with
18861	// empty values are omitted from API requests. However, any non-pointer,
18862	// non-interface field appearing in ForceSendFields will be sent to the
18863	// server regardless of whether the field is empty or not. This may be
18864	// used to include empty fields in Patch requests.
18865	ForceSendFields []string `json:"-"`
18866
18867	// NullFields is a list of field names (e.g. "Key") to include in API
18868	// requests with the JSON null value. By default, fields with empty
18869	// values are omitted from API requests. However, any field with an
18870	// empty value appearing in NullFields will be sent to the server as
18871	// null. It is an error if a field in this list has a non-empty value.
18872	// This may be used to include null fields in Patch requests.
18873	NullFields []string `json:"-"`
18874}
18875
18876func (s *NodeTemplatesScopedListWarningData) MarshalJSON() ([]byte, error) {
18877	type NoMethod NodeTemplatesScopedListWarningData
18878	raw := NoMethod(*s)
18879	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18880}
18881
18882// NodeType: A Node Type resource.
18883type NodeType struct {
18884	// CpuPlatform: [Output Only] The CPU platform used by this node type.
18885	CpuPlatform string `json:"cpuPlatform,omitempty"`
18886
18887	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
18888	// format.
18889	CreationTimestamp string `json:"creationTimestamp,omitempty"`
18890
18891	// Deprecated: [Output Only] The deprecation status associated with this
18892	// node type.
18893	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
18894
18895	// Description: [Output Only] An optional textual description of the
18896	// resource.
18897	Description string `json:"description,omitempty"`
18898
18899	// GuestCpus: [Output Only] The number of virtual CPUs that are
18900	// available to the node type.
18901	GuestCpus int64 `json:"guestCpus,omitempty"`
18902
18903	// Id: [Output Only] The unique identifier for the resource. This
18904	// identifier is defined by the server.
18905	Id uint64 `json:"id,omitempty,string"`
18906
18907	// Kind: [Output Only] The type of the resource. Always compute#nodeType
18908	// for node types.
18909	Kind string `json:"kind,omitempty"`
18910
18911	// LocalSsdGb: [Output Only] Local SSD available to the node type,
18912	// defined in GB.
18913	LocalSsdGb int64 `json:"localSsdGb,omitempty"`
18914
18915	// MemoryMb: [Output Only] The amount of physical memory available to
18916	// the node type, defined in MB.
18917	MemoryMb int64 `json:"memoryMb,omitempty"`
18918
18919	// Name: [Output Only] Name of the resource.
18920	Name string `json:"name,omitempty"`
18921
18922	// SelfLink: [Output Only] Server-defined URL for the resource.
18923	SelfLink string `json:"selfLink,omitempty"`
18924
18925	// Zone: [Output Only] The name of the zone where the node type resides,
18926	// such as us-central1-a.
18927	Zone string `json:"zone,omitempty"`
18928
18929	// ServerResponse contains the HTTP response code and headers from the
18930	// server.
18931	googleapi.ServerResponse `json:"-"`
18932
18933	// ForceSendFields is a list of field names (e.g. "CpuPlatform") to
18934	// unconditionally include in API requests. By default, fields with
18935	// empty values are omitted from API requests. However, any non-pointer,
18936	// non-interface field appearing in ForceSendFields will be sent to the
18937	// server regardless of whether the field is empty or not. This may be
18938	// used to include empty fields in Patch requests.
18939	ForceSendFields []string `json:"-"`
18940
18941	// NullFields is a list of field names (e.g. "CpuPlatform") to include
18942	// in API requests with the JSON null value. By default, fields with
18943	// empty values are omitted from API requests. However, any field with
18944	// an empty value appearing in NullFields will be sent to the server as
18945	// null. It is an error if a field in this list has a non-empty value.
18946	// This may be used to include null fields in Patch requests.
18947	NullFields []string `json:"-"`
18948}
18949
18950func (s *NodeType) MarshalJSON() ([]byte, error) {
18951	type NoMethod NodeType
18952	raw := NoMethod(*s)
18953	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18954}
18955
18956type NodeTypeAggregatedList struct {
18957	// Id: [Output Only] Unique identifier for the resource; defined by the
18958	// server.
18959	Id string `json:"id,omitempty"`
18960
18961	// Items: A list of NodeTypesScopedList resources.
18962	Items map[string]NodeTypesScopedList `json:"items,omitempty"`
18963
18964	// Kind: [Output Only] Type of resource.Always
18965	// compute#nodeTypeAggregatedList for aggregated lists of node types.
18966	Kind string `json:"kind,omitempty"`
18967
18968	// NextPageToken: [Output Only] This token allows you to get the next
18969	// page of results for list requests. If the number of results is larger
18970	// than maxResults, use the nextPageToken as a value for the query
18971	// parameter pageToken in the next list request. Subsequent list
18972	// requests will have their own nextPageToken to continue paging through
18973	// the results.
18974	NextPageToken string `json:"nextPageToken,omitempty"`
18975
18976	// SelfLink: [Output Only] Server-defined URL for this resource.
18977	SelfLink string `json:"selfLink,omitempty"`
18978
18979	// Warning: [Output Only] Informational warning message.
18980	Warning *NodeTypeAggregatedListWarning `json:"warning,omitempty"`
18981
18982	// ServerResponse contains the HTTP response code and headers from the
18983	// server.
18984	googleapi.ServerResponse `json:"-"`
18985
18986	// ForceSendFields is a list of field names (e.g. "Id") to
18987	// unconditionally include in API requests. By default, fields with
18988	// empty values are omitted from API requests. However, any non-pointer,
18989	// non-interface field appearing in ForceSendFields will be sent to the
18990	// server regardless of whether the field is empty or not. This may be
18991	// used to include empty fields in Patch requests.
18992	ForceSendFields []string `json:"-"`
18993
18994	// NullFields is a list of field names (e.g. "Id") to include in API
18995	// requests with the JSON null value. By default, fields with empty
18996	// values are omitted from API requests. However, any field with an
18997	// empty value appearing in NullFields will be sent to the server as
18998	// null. It is an error if a field in this list has a non-empty value.
18999	// This may be used to include null fields in Patch requests.
19000	NullFields []string `json:"-"`
19001}
19002
19003func (s *NodeTypeAggregatedList) MarshalJSON() ([]byte, error) {
19004	type NoMethod NodeTypeAggregatedList
19005	raw := NoMethod(*s)
19006	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19007}
19008
19009// NodeTypeAggregatedListWarning: [Output Only] Informational warning
19010// message.
19011type NodeTypeAggregatedListWarning struct {
19012	// Code: [Output Only] A warning code, if applicable. For example,
19013	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19014	// the response.
19015	//
19016	// Possible values:
19017	//   "CLEANUP_FAILED"
19018	//   "DEPRECATED_RESOURCE_USED"
19019	//   "DEPRECATED_TYPE_USED"
19020	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19021	//   "EXPERIMENTAL_TYPE_USED"
19022	//   "EXTERNAL_API_WARNING"
19023	//   "FIELD_VALUE_OVERRIDEN"
19024	//   "INJECTED_KERNELS_DEPRECATED"
19025	//   "MISSING_TYPE_DEPENDENCY"
19026	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19027	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19028	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19029	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19030	//   "NEXT_HOP_NOT_RUNNING"
19031	//   "NOT_CRITICAL_ERROR"
19032	//   "NO_RESULTS_ON_PAGE"
19033	//   "REQUIRED_TOS_AGREEMENT"
19034	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19035	//   "RESOURCE_NOT_DELETED"
19036	//   "SCHEMA_VALIDATION_IGNORED"
19037	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19038	//   "UNDECLARED_PROPERTIES"
19039	//   "UNREACHABLE"
19040	Code string `json:"code,omitempty"`
19041
19042	// Data: [Output Only] Metadata about this warning in key: value format.
19043	// For example:
19044	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19045	Data []*NodeTypeAggregatedListWarningData `json:"data,omitempty"`
19046
19047	// Message: [Output Only] A human-readable description of the warning
19048	// code.
19049	Message string `json:"message,omitempty"`
19050
19051	// ForceSendFields is a list of field names (e.g. "Code") to
19052	// unconditionally include in API requests. By default, fields with
19053	// empty values are omitted from API requests. However, any non-pointer,
19054	// non-interface field appearing in ForceSendFields will be sent to the
19055	// server regardless of whether the field is empty or not. This may be
19056	// used to include empty fields in Patch requests.
19057	ForceSendFields []string `json:"-"`
19058
19059	// NullFields is a list of field names (e.g. "Code") to include in API
19060	// requests with the JSON null value. By default, fields with empty
19061	// values are omitted from API requests. However, any field with an
19062	// empty value appearing in NullFields will be sent to the server as
19063	// null. It is an error if a field in this list has a non-empty value.
19064	// This may be used to include null fields in Patch requests.
19065	NullFields []string `json:"-"`
19066}
19067
19068func (s *NodeTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
19069	type NoMethod NodeTypeAggregatedListWarning
19070	raw := NoMethod(*s)
19071	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19072}
19073
19074type NodeTypeAggregatedListWarningData struct {
19075	// Key: [Output Only] A key that provides more detail on the warning
19076	// being returned. For example, for warnings where there are no results
19077	// in a list request for a particular zone, this key might be scope and
19078	// the key value might be the zone name. Other examples might be a key
19079	// indicating a deprecated resource and a suggested replacement, or a
19080	// warning about invalid network settings (for example, if an instance
19081	// attempts to perform IP forwarding but is not enabled for IP
19082	// forwarding).
19083	Key string `json:"key,omitempty"`
19084
19085	// Value: [Output Only] A warning data value corresponding to the key.
19086	Value string `json:"value,omitempty"`
19087
19088	// ForceSendFields is a list of field names (e.g. "Key") to
19089	// unconditionally include in API requests. By default, fields with
19090	// empty values are omitted from API requests. However, any non-pointer,
19091	// non-interface field appearing in ForceSendFields will be sent to the
19092	// server regardless of whether the field is empty or not. This may be
19093	// used to include empty fields in Patch requests.
19094	ForceSendFields []string `json:"-"`
19095
19096	// NullFields is a list of field names (e.g. "Key") to include in API
19097	// requests with the JSON null value. By default, fields with empty
19098	// values are omitted from API requests. However, any field with an
19099	// empty value appearing in NullFields will be sent to the server as
19100	// null. It is an error if a field in this list has a non-empty value.
19101	// This may be used to include null fields in Patch requests.
19102	NullFields []string `json:"-"`
19103}
19104
19105func (s *NodeTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
19106	type NoMethod NodeTypeAggregatedListWarningData
19107	raw := NoMethod(*s)
19108	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19109}
19110
19111// NodeTypeList: Contains a list of node types.
19112type NodeTypeList struct {
19113	// Id: [Output Only] Unique identifier for the resource; defined by the
19114	// server.
19115	Id string `json:"id,omitempty"`
19116
19117	// Items: A list of NodeType resources.
19118	Items []*NodeType `json:"items,omitempty"`
19119
19120	// Kind: [Output Only] Type of resource.Always compute#nodeTypeList for
19121	// lists of node types.
19122	Kind string `json:"kind,omitempty"`
19123
19124	// NextPageToken: [Output Only] This token allows you to get the next
19125	// page of results for list requests. If the number of results is larger
19126	// than maxResults, use the nextPageToken as a value for the query
19127	// parameter pageToken in the next list request. Subsequent list
19128	// requests will have their own nextPageToken to continue paging through
19129	// the results.
19130	NextPageToken string `json:"nextPageToken,omitempty"`
19131
19132	// SelfLink: [Output Only] Server-defined URL for this resource.
19133	SelfLink string `json:"selfLink,omitempty"`
19134
19135	// Warning: [Output Only] Informational warning message.
19136	Warning *NodeTypeListWarning `json:"warning,omitempty"`
19137
19138	// ServerResponse contains the HTTP response code and headers from the
19139	// server.
19140	googleapi.ServerResponse `json:"-"`
19141
19142	// ForceSendFields is a list of field names (e.g. "Id") to
19143	// unconditionally include in API requests. By default, fields with
19144	// empty values are omitted from API requests. However, any non-pointer,
19145	// non-interface field appearing in ForceSendFields will be sent to the
19146	// server regardless of whether the field is empty or not. This may be
19147	// used to include empty fields in Patch requests.
19148	ForceSendFields []string `json:"-"`
19149
19150	// NullFields is a list of field names (e.g. "Id") to include in API
19151	// requests with the JSON null value. By default, fields with empty
19152	// values are omitted from API requests. However, any field with an
19153	// empty value appearing in NullFields will be sent to the server as
19154	// null. It is an error if a field in this list has a non-empty value.
19155	// This may be used to include null fields in Patch requests.
19156	NullFields []string `json:"-"`
19157}
19158
19159func (s *NodeTypeList) MarshalJSON() ([]byte, error) {
19160	type NoMethod NodeTypeList
19161	raw := NoMethod(*s)
19162	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19163}
19164
19165// NodeTypeListWarning: [Output Only] Informational warning message.
19166type NodeTypeListWarning struct {
19167	// Code: [Output Only] A warning code, if applicable. For example,
19168	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19169	// the response.
19170	//
19171	// Possible values:
19172	//   "CLEANUP_FAILED"
19173	//   "DEPRECATED_RESOURCE_USED"
19174	//   "DEPRECATED_TYPE_USED"
19175	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19176	//   "EXPERIMENTAL_TYPE_USED"
19177	//   "EXTERNAL_API_WARNING"
19178	//   "FIELD_VALUE_OVERRIDEN"
19179	//   "INJECTED_KERNELS_DEPRECATED"
19180	//   "MISSING_TYPE_DEPENDENCY"
19181	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19182	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19183	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19184	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19185	//   "NEXT_HOP_NOT_RUNNING"
19186	//   "NOT_CRITICAL_ERROR"
19187	//   "NO_RESULTS_ON_PAGE"
19188	//   "REQUIRED_TOS_AGREEMENT"
19189	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19190	//   "RESOURCE_NOT_DELETED"
19191	//   "SCHEMA_VALIDATION_IGNORED"
19192	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19193	//   "UNDECLARED_PROPERTIES"
19194	//   "UNREACHABLE"
19195	Code string `json:"code,omitempty"`
19196
19197	// Data: [Output Only] Metadata about this warning in key: value format.
19198	// For example:
19199	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19200	Data []*NodeTypeListWarningData `json:"data,omitempty"`
19201
19202	// Message: [Output Only] A human-readable description of the warning
19203	// code.
19204	Message string `json:"message,omitempty"`
19205
19206	// ForceSendFields is a list of field names (e.g. "Code") to
19207	// unconditionally include in API requests. By default, fields with
19208	// empty values are omitted from API requests. However, any non-pointer,
19209	// non-interface field appearing in ForceSendFields will be sent to the
19210	// server regardless of whether the field is empty or not. This may be
19211	// used to include empty fields in Patch requests.
19212	ForceSendFields []string `json:"-"`
19213
19214	// NullFields is a list of field names (e.g. "Code") to include in API
19215	// requests with the JSON null value. By default, fields with empty
19216	// values are omitted from API requests. However, any field with an
19217	// empty value appearing in NullFields will be sent to the server as
19218	// null. It is an error if a field in this list has a non-empty value.
19219	// This may be used to include null fields in Patch requests.
19220	NullFields []string `json:"-"`
19221}
19222
19223func (s *NodeTypeListWarning) MarshalJSON() ([]byte, error) {
19224	type NoMethod NodeTypeListWarning
19225	raw := NoMethod(*s)
19226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19227}
19228
19229type NodeTypeListWarningData struct {
19230	// Key: [Output Only] A key that provides more detail on the warning
19231	// being returned. For example, for warnings where there are no results
19232	// in a list request for a particular zone, this key might be scope and
19233	// the key value might be the zone name. Other examples might be a key
19234	// indicating a deprecated resource and a suggested replacement, or a
19235	// warning about invalid network settings (for example, if an instance
19236	// attempts to perform IP forwarding but is not enabled for IP
19237	// forwarding).
19238	Key string `json:"key,omitempty"`
19239
19240	// Value: [Output Only] A warning data value corresponding to the key.
19241	Value string `json:"value,omitempty"`
19242
19243	// ForceSendFields is a list of field names (e.g. "Key") to
19244	// unconditionally include in API requests. By default, fields with
19245	// empty values are omitted from API requests. However, any non-pointer,
19246	// non-interface field appearing in ForceSendFields will be sent to the
19247	// server regardless of whether the field is empty or not. This may be
19248	// used to include empty fields in Patch requests.
19249	ForceSendFields []string `json:"-"`
19250
19251	// NullFields is a list of field names (e.g. "Key") to include in API
19252	// requests with the JSON null value. By default, fields with empty
19253	// values are omitted from API requests. However, any field with an
19254	// empty value appearing in NullFields will be sent to the server as
19255	// null. It is an error if a field in this list has a non-empty value.
19256	// This may be used to include null fields in Patch requests.
19257	NullFields []string `json:"-"`
19258}
19259
19260func (s *NodeTypeListWarningData) MarshalJSON() ([]byte, error) {
19261	type NoMethod NodeTypeListWarningData
19262	raw := NoMethod(*s)
19263	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19264}
19265
19266type NodeTypesScopedList struct {
19267	// NodeTypes: [Output Only] A list of node types contained in this
19268	// scope.
19269	NodeTypes []*NodeType `json:"nodeTypes,omitempty"`
19270
19271	// Warning: [Output Only] An informational warning that appears when the
19272	// node types list is empty.
19273	Warning *NodeTypesScopedListWarning `json:"warning,omitempty"`
19274
19275	// ForceSendFields is a list of field names (e.g. "NodeTypes") to
19276	// unconditionally include in API requests. By default, fields with
19277	// empty values are omitted from API requests. However, any non-pointer,
19278	// non-interface field appearing in ForceSendFields will be sent to the
19279	// server regardless of whether the field is empty or not. This may be
19280	// used to include empty fields in Patch requests.
19281	ForceSendFields []string `json:"-"`
19282
19283	// NullFields is a list of field names (e.g. "NodeTypes") to include in
19284	// API requests with the JSON null value. By default, fields with empty
19285	// values are omitted from API requests. However, any field with an
19286	// empty value appearing in NullFields will be sent to the server as
19287	// null. It is an error if a field in this list has a non-empty value.
19288	// This may be used to include null fields in Patch requests.
19289	NullFields []string `json:"-"`
19290}
19291
19292func (s *NodeTypesScopedList) MarshalJSON() ([]byte, error) {
19293	type NoMethod NodeTypesScopedList
19294	raw := NoMethod(*s)
19295	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19296}
19297
19298// NodeTypesScopedListWarning: [Output Only] An informational warning
19299// that appears when the node types list is empty.
19300type NodeTypesScopedListWarning struct {
19301	// Code: [Output Only] A warning code, if applicable. For example,
19302	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19303	// the response.
19304	//
19305	// Possible values:
19306	//   "CLEANUP_FAILED"
19307	//   "DEPRECATED_RESOURCE_USED"
19308	//   "DEPRECATED_TYPE_USED"
19309	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19310	//   "EXPERIMENTAL_TYPE_USED"
19311	//   "EXTERNAL_API_WARNING"
19312	//   "FIELD_VALUE_OVERRIDEN"
19313	//   "INJECTED_KERNELS_DEPRECATED"
19314	//   "MISSING_TYPE_DEPENDENCY"
19315	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19316	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19317	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19318	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19319	//   "NEXT_HOP_NOT_RUNNING"
19320	//   "NOT_CRITICAL_ERROR"
19321	//   "NO_RESULTS_ON_PAGE"
19322	//   "REQUIRED_TOS_AGREEMENT"
19323	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19324	//   "RESOURCE_NOT_DELETED"
19325	//   "SCHEMA_VALIDATION_IGNORED"
19326	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19327	//   "UNDECLARED_PROPERTIES"
19328	//   "UNREACHABLE"
19329	Code string `json:"code,omitempty"`
19330
19331	// Data: [Output Only] Metadata about this warning in key: value format.
19332	// For example:
19333	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19334	Data []*NodeTypesScopedListWarningData `json:"data,omitempty"`
19335
19336	// Message: [Output Only] A human-readable description of the warning
19337	// code.
19338	Message string `json:"message,omitempty"`
19339
19340	// ForceSendFields is a list of field names (e.g. "Code") to
19341	// unconditionally include in API requests. By default, fields with
19342	// empty values are omitted from API requests. However, any non-pointer,
19343	// non-interface field appearing in ForceSendFields will be sent to the
19344	// server regardless of whether the field is empty or not. This may be
19345	// used to include empty fields in Patch requests.
19346	ForceSendFields []string `json:"-"`
19347
19348	// NullFields is a list of field names (e.g. "Code") to include in API
19349	// requests with the JSON null value. By default, fields with empty
19350	// values are omitted from API requests. However, any field with an
19351	// empty value appearing in NullFields will be sent to the server as
19352	// null. It is an error if a field in this list has a non-empty value.
19353	// This may be used to include null fields in Patch requests.
19354	NullFields []string `json:"-"`
19355}
19356
19357func (s *NodeTypesScopedListWarning) MarshalJSON() ([]byte, error) {
19358	type NoMethod NodeTypesScopedListWarning
19359	raw := NoMethod(*s)
19360	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19361}
19362
19363type NodeTypesScopedListWarningData struct {
19364	// Key: [Output Only] A key that provides more detail on the warning
19365	// being returned. For example, for warnings where there are no results
19366	// in a list request for a particular zone, this key might be scope and
19367	// the key value might be the zone name. Other examples might be a key
19368	// indicating a deprecated resource and a suggested replacement, or a
19369	// warning about invalid network settings (for example, if an instance
19370	// attempts to perform IP forwarding but is not enabled for IP
19371	// forwarding).
19372	Key string `json:"key,omitempty"`
19373
19374	// Value: [Output Only] A warning data value corresponding to the key.
19375	Value string `json:"value,omitempty"`
19376
19377	// ForceSendFields is a list of field names (e.g. "Key") to
19378	// unconditionally include in API requests. By default, fields with
19379	// empty values are omitted from API requests. However, any non-pointer,
19380	// non-interface field appearing in ForceSendFields will be sent to the
19381	// server regardless of whether the field is empty or not. This may be
19382	// used to include empty fields in Patch requests.
19383	ForceSendFields []string `json:"-"`
19384
19385	// NullFields is a list of field names (e.g. "Key") to include in API
19386	// requests with the JSON null value. By default, fields with empty
19387	// values are omitted from API requests. However, any field with an
19388	// empty value appearing in NullFields will be sent to the server as
19389	// null. It is an error if a field in this list has a non-empty value.
19390	// This may be used to include null fields in Patch requests.
19391	NullFields []string `json:"-"`
19392}
19393
19394func (s *NodeTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
19395	type NoMethod NodeTypesScopedListWarningData
19396	raw := NoMethod(*s)
19397	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19398}
19399
19400// Operation: An Operation resource, used to manage asynchronous API
19401// requests. (== resource_for v1.globalOperations ==) (== resource_for
19402// beta.globalOperations ==) (== resource_for v1.regionOperations ==)
19403// (== resource_for beta.regionOperations ==) (== resource_for
19404// v1.zoneOperations ==) (== resource_for beta.zoneOperations ==)
19405type Operation struct {
19406	// ClientOperationId: [Output Only] The value of `requestId` if you
19407	// provided it in the request. Not present otherwise.
19408	ClientOperationId string `json:"clientOperationId,omitempty"`
19409
19410	// CreationTimestamp: [Deprecated] This field is deprecated.
19411	CreationTimestamp string `json:"creationTimestamp,omitempty"`
19412
19413	// Description: [Output Only] A textual description of the operation,
19414	// which is set when the operation is created.
19415	Description string `json:"description,omitempty"`
19416
19417	// EndTime: [Output Only] The time that this operation was completed.
19418	// This value is in RFC3339 text format.
19419	EndTime string `json:"endTime,omitempty"`
19420
19421	// Error: [Output Only] If errors are generated during processing of the
19422	// operation, this field will be populated.
19423	Error *OperationError `json:"error,omitempty"`
19424
19425	// HttpErrorMessage: [Output Only] If the operation fails, this field
19426	// contains the HTTP error message that was returned, such as NOT FOUND.
19427	HttpErrorMessage string `json:"httpErrorMessage,omitempty"`
19428
19429	// HttpErrorStatusCode: [Output Only] If the operation fails, this field
19430	// contains the HTTP error status code that was returned. For example, a
19431	// 404 means the resource was not found.
19432	HttpErrorStatusCode int64 `json:"httpErrorStatusCode,omitempty"`
19433
19434	// Id: [Output Only] The unique identifier for the resource. This
19435	// identifier is defined by the server.
19436	Id uint64 `json:"id,omitempty,string"`
19437
19438	// InsertTime: [Output Only] The time that this operation was requested.
19439	// This value is in RFC3339 text format.
19440	InsertTime string `json:"insertTime,omitempty"`
19441
19442	// Kind: [Output Only] Type of the resource. Always compute#operation
19443	// for Operation resources.
19444	Kind string `json:"kind,omitempty"`
19445
19446	// Name: [Output Only] Name of the resource.
19447	Name string `json:"name,omitempty"`
19448
19449	// OperationType: [Output Only] The type of operation, such as insert,
19450	// update, or delete, and so on.
19451	OperationType string `json:"operationType,omitempty"`
19452
19453	// Progress: [Output Only] An optional progress indicator that ranges
19454	// from 0 to 100. There is no requirement that this be linear or support
19455	// any granularity of operations. This should not be used to guess when
19456	// the operation will be complete. This number should monotonically
19457	// increase as the operation progresses.
19458	Progress int64 `json:"progress,omitempty"`
19459
19460	// Region: [Output Only] The URL of the region where the operation
19461	// resides. Only available when performing regional operations. You must
19462	// specify this field as part of the HTTP request URL. It is not
19463	// settable as a field in the request body.
19464	Region string `json:"region,omitempty"`
19465
19466	// SelfLink: [Output Only] Server-defined URL for the resource.
19467	SelfLink string `json:"selfLink,omitempty"`
19468
19469	// StartTime: [Output Only] The time that this operation was started by
19470	// the server. This value is in RFC3339 text format.
19471	StartTime string `json:"startTime,omitempty"`
19472
19473	// Status: [Output Only] The status of the operation, which can be one
19474	// of the following: PENDING, RUNNING, or DONE.
19475	//
19476	// Possible values:
19477	//   "DONE"
19478	//   "PENDING"
19479	//   "RUNNING"
19480	Status string `json:"status,omitempty"`
19481
19482	// StatusMessage: [Output Only] An optional textual description of the
19483	// current status of the operation.
19484	StatusMessage string `json:"statusMessage,omitempty"`
19485
19486	// TargetId: [Output Only] The unique target ID, which identifies a
19487	// specific incarnation of the target resource.
19488	TargetId uint64 `json:"targetId,omitempty,string"`
19489
19490	// TargetLink: [Output Only] The URL of the resource that the operation
19491	// modifies. For operations related to creating a snapshot, this points
19492	// to the persistent disk that the snapshot was created from.
19493	TargetLink string `json:"targetLink,omitempty"`
19494
19495	// User: [Output Only] User who requested the operation, for example:
19496	// user@example.com.
19497	User string `json:"user,omitempty"`
19498
19499	// Warnings: [Output Only] If warning messages are generated during
19500	// processing of the operation, this field will be populated.
19501	Warnings []*OperationWarnings `json:"warnings,omitempty"`
19502
19503	// Zone: [Output Only] The URL of the zone where the operation resides.
19504	// Only available when performing per-zone operations. You must specify
19505	// this field as part of the HTTP request URL. It is not settable as a
19506	// field in the request body.
19507	Zone string `json:"zone,omitempty"`
19508
19509	// ServerResponse contains the HTTP response code and headers from the
19510	// server.
19511	googleapi.ServerResponse `json:"-"`
19512
19513	// ForceSendFields is a list of field names (e.g. "ClientOperationId")
19514	// to unconditionally include in API requests. By default, fields with
19515	// empty values are omitted from API requests. However, any non-pointer,
19516	// non-interface field appearing in ForceSendFields will be sent to the
19517	// server regardless of whether the field is empty or not. This may be
19518	// used to include empty fields in Patch requests.
19519	ForceSendFields []string `json:"-"`
19520
19521	// NullFields is a list of field names (e.g. "ClientOperationId") to
19522	// include in API requests with the JSON null value. By default, fields
19523	// with empty values are omitted from API requests. However, any field
19524	// with an empty value appearing in NullFields will be sent to the
19525	// server as null. It is an error if a field in this list has a
19526	// non-empty value. This may be used to include null fields in Patch
19527	// requests.
19528	NullFields []string `json:"-"`
19529}
19530
19531func (s *Operation) MarshalJSON() ([]byte, error) {
19532	type NoMethod Operation
19533	raw := NoMethod(*s)
19534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19535}
19536
19537// OperationError: [Output Only] If errors are generated during
19538// processing of the operation, this field will be populated.
19539type OperationError struct {
19540	// Errors: [Output Only] The array of errors encountered while
19541	// processing this operation.
19542	Errors []*OperationErrorErrors `json:"errors,omitempty"`
19543
19544	// ForceSendFields is a list of field names (e.g. "Errors") to
19545	// unconditionally include in API requests. By default, fields with
19546	// empty values are omitted from API requests. However, any non-pointer,
19547	// non-interface field appearing in ForceSendFields will be sent to the
19548	// server regardless of whether the field is empty or not. This may be
19549	// used to include empty fields in Patch requests.
19550	ForceSendFields []string `json:"-"`
19551
19552	// NullFields is a list of field names (e.g. "Errors") to include in API
19553	// requests with the JSON null value. By default, fields with empty
19554	// values are omitted from API requests. However, any field with an
19555	// empty value appearing in NullFields will be sent to the server as
19556	// null. It is an error if a field in this list has a non-empty value.
19557	// This may be used to include null fields in Patch requests.
19558	NullFields []string `json:"-"`
19559}
19560
19561func (s *OperationError) MarshalJSON() ([]byte, error) {
19562	type NoMethod OperationError
19563	raw := NoMethod(*s)
19564	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19565}
19566
19567type OperationErrorErrors struct {
19568	// Code: [Output Only] The error type identifier for this error.
19569	Code string `json:"code,omitempty"`
19570
19571	// Location: [Output Only] Indicates the field in the request that
19572	// caused the error. This property is optional.
19573	Location string `json:"location,omitempty"`
19574
19575	// Message: [Output Only] An optional, human-readable error message.
19576	Message string `json:"message,omitempty"`
19577
19578	// ForceSendFields is a list of field names (e.g. "Code") to
19579	// unconditionally include in API requests. By default, fields with
19580	// empty values are omitted from API requests. However, any non-pointer,
19581	// non-interface field appearing in ForceSendFields will be sent to the
19582	// server regardless of whether the field is empty or not. This may be
19583	// used to include empty fields in Patch requests.
19584	ForceSendFields []string `json:"-"`
19585
19586	// NullFields is a list of field names (e.g. "Code") to include in API
19587	// requests with the JSON null value. By default, fields with empty
19588	// values are omitted from API requests. However, any field with an
19589	// empty value appearing in NullFields will be sent to the server as
19590	// null. It is an error if a field in this list has a non-empty value.
19591	// This may be used to include null fields in Patch requests.
19592	NullFields []string `json:"-"`
19593}
19594
19595func (s *OperationErrorErrors) MarshalJSON() ([]byte, error) {
19596	type NoMethod OperationErrorErrors
19597	raw := NoMethod(*s)
19598	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19599}
19600
19601type OperationWarnings struct {
19602	// Code: [Output Only] A warning code, if applicable. For example,
19603	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19604	// the response.
19605	//
19606	// Possible values:
19607	//   "CLEANUP_FAILED"
19608	//   "DEPRECATED_RESOURCE_USED"
19609	//   "DEPRECATED_TYPE_USED"
19610	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19611	//   "EXPERIMENTAL_TYPE_USED"
19612	//   "EXTERNAL_API_WARNING"
19613	//   "FIELD_VALUE_OVERRIDEN"
19614	//   "INJECTED_KERNELS_DEPRECATED"
19615	//   "MISSING_TYPE_DEPENDENCY"
19616	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19617	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19618	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19619	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19620	//   "NEXT_HOP_NOT_RUNNING"
19621	//   "NOT_CRITICAL_ERROR"
19622	//   "NO_RESULTS_ON_PAGE"
19623	//   "REQUIRED_TOS_AGREEMENT"
19624	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19625	//   "RESOURCE_NOT_DELETED"
19626	//   "SCHEMA_VALIDATION_IGNORED"
19627	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19628	//   "UNDECLARED_PROPERTIES"
19629	//   "UNREACHABLE"
19630	Code string `json:"code,omitempty"`
19631
19632	// Data: [Output Only] Metadata about this warning in key: value format.
19633	// For example:
19634	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19635	Data []*OperationWarningsData `json:"data,omitempty"`
19636
19637	// Message: [Output Only] A human-readable description of the warning
19638	// code.
19639	Message string `json:"message,omitempty"`
19640
19641	// ForceSendFields is a list of field names (e.g. "Code") 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. "Code") to include in API
19650	// 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 *OperationWarnings) MarshalJSON() ([]byte, error) {
19659	type NoMethod OperationWarnings
19660	raw := NoMethod(*s)
19661	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19662}
19663
19664type OperationWarningsData struct {
19665	// Key: [Output Only] A key that provides more detail on the warning
19666	// being returned. For example, for warnings where there are no results
19667	// in a list request for a particular zone, this key might be scope and
19668	// the key value might be the zone name. Other examples might be a key
19669	// indicating a deprecated resource and a suggested replacement, or a
19670	// warning about invalid network settings (for example, if an instance
19671	// attempts to perform IP forwarding but is not enabled for IP
19672	// forwarding).
19673	Key string `json:"key,omitempty"`
19674
19675	// Value: [Output Only] A warning data value corresponding to the key.
19676	Value string `json:"value,omitempty"`
19677
19678	// ForceSendFields is a list of field names (e.g. "Key") to
19679	// unconditionally include in API requests. By default, fields with
19680	// empty values are omitted from API requests. However, any non-pointer,
19681	// non-interface field appearing in ForceSendFields will be sent to the
19682	// server regardless of whether the field is empty or not. This may be
19683	// used to include empty fields in Patch requests.
19684	ForceSendFields []string `json:"-"`
19685
19686	// NullFields is a list of field names (e.g. "Key") to include in API
19687	// requests with the JSON null value. By default, fields with empty
19688	// values are omitted from API requests. However, any field with an
19689	// empty value appearing in NullFields will be sent to the server as
19690	// null. It is an error if a field in this list has a non-empty value.
19691	// This may be used to include null fields in Patch requests.
19692	NullFields []string `json:"-"`
19693}
19694
19695func (s *OperationWarningsData) MarshalJSON() ([]byte, error) {
19696	type NoMethod OperationWarningsData
19697	raw := NoMethod(*s)
19698	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19699}
19700
19701type OperationAggregatedList struct {
19702	// Id: [Output Only] The unique identifier for the resource. This
19703	// identifier is defined by the server.
19704	Id string `json:"id,omitempty"`
19705
19706	// Items: [Output Only] A map of scoped operation lists.
19707	Items map[string]OperationsScopedList `json:"items,omitempty"`
19708
19709	// Kind: [Output Only] Type of resource. Always
19710	// compute#operationAggregatedList for aggregated lists of operations.
19711	Kind string `json:"kind,omitempty"`
19712
19713	// NextPageToken: [Output Only] This token allows you to get the next
19714	// page of results for list requests. If the number of results is larger
19715	// than maxResults, use the nextPageToken as a value for the query
19716	// parameter pageToken in the next list request. Subsequent list
19717	// requests will have their own nextPageToken to continue paging through
19718	// the results.
19719	NextPageToken string `json:"nextPageToken,omitempty"`
19720
19721	// SelfLink: [Output Only] Server-defined URL for this resource.
19722	SelfLink string `json:"selfLink,omitempty"`
19723
19724	// Warning: [Output Only] Informational warning message.
19725	Warning *OperationAggregatedListWarning `json:"warning,omitempty"`
19726
19727	// ServerResponse contains the HTTP response code and headers from the
19728	// server.
19729	googleapi.ServerResponse `json:"-"`
19730
19731	// ForceSendFields is a list of field names (e.g. "Id") to
19732	// unconditionally include in API requests. By default, fields with
19733	// empty values are omitted from API requests. However, any non-pointer,
19734	// non-interface field appearing in ForceSendFields will be sent to the
19735	// server regardless of whether the field is empty or not. This may be
19736	// used to include empty fields in Patch requests.
19737	ForceSendFields []string `json:"-"`
19738
19739	// NullFields is a list of field names (e.g. "Id") to include in API
19740	// requests with the JSON null value. By default, fields with empty
19741	// values are omitted from API requests. However, any field with an
19742	// empty value appearing in NullFields will be sent to the server as
19743	// null. It is an error if a field in this list has a non-empty value.
19744	// This may be used to include null fields in Patch requests.
19745	NullFields []string `json:"-"`
19746}
19747
19748func (s *OperationAggregatedList) MarshalJSON() ([]byte, error) {
19749	type NoMethod OperationAggregatedList
19750	raw := NoMethod(*s)
19751	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19752}
19753
19754// OperationAggregatedListWarning: [Output Only] Informational warning
19755// message.
19756type OperationAggregatedListWarning struct {
19757	// Code: [Output Only] A warning code, if applicable. For example,
19758	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19759	// the response.
19760	//
19761	// Possible values:
19762	//   "CLEANUP_FAILED"
19763	//   "DEPRECATED_RESOURCE_USED"
19764	//   "DEPRECATED_TYPE_USED"
19765	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19766	//   "EXPERIMENTAL_TYPE_USED"
19767	//   "EXTERNAL_API_WARNING"
19768	//   "FIELD_VALUE_OVERRIDEN"
19769	//   "INJECTED_KERNELS_DEPRECATED"
19770	//   "MISSING_TYPE_DEPENDENCY"
19771	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19772	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19773	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19774	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19775	//   "NEXT_HOP_NOT_RUNNING"
19776	//   "NOT_CRITICAL_ERROR"
19777	//   "NO_RESULTS_ON_PAGE"
19778	//   "REQUIRED_TOS_AGREEMENT"
19779	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19780	//   "RESOURCE_NOT_DELETED"
19781	//   "SCHEMA_VALIDATION_IGNORED"
19782	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19783	//   "UNDECLARED_PROPERTIES"
19784	//   "UNREACHABLE"
19785	Code string `json:"code,omitempty"`
19786
19787	// Data: [Output Only] Metadata about this warning in key: value format.
19788	// For example:
19789	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19790	Data []*OperationAggregatedListWarningData `json:"data,omitempty"`
19791
19792	// Message: [Output Only] A human-readable description of the warning
19793	// code.
19794	Message string `json:"message,omitempty"`
19795
19796	// ForceSendFields is a list of field names (e.g. "Code") to
19797	// unconditionally include in API requests. By default, fields with
19798	// empty values are omitted from API requests. However, any non-pointer,
19799	// non-interface field appearing in ForceSendFields will be sent to the
19800	// server regardless of whether the field is empty or not. This may be
19801	// used to include empty fields in Patch requests.
19802	ForceSendFields []string `json:"-"`
19803
19804	// NullFields is a list of field names (e.g. "Code") to include in API
19805	// requests with the JSON null value. By default, fields with empty
19806	// values are omitted from API requests. However, any field with an
19807	// empty value appearing in NullFields will be sent to the server as
19808	// null. It is an error if a field in this list has a non-empty value.
19809	// This may be used to include null fields in Patch requests.
19810	NullFields []string `json:"-"`
19811}
19812
19813func (s *OperationAggregatedListWarning) MarshalJSON() ([]byte, error) {
19814	type NoMethod OperationAggregatedListWarning
19815	raw := NoMethod(*s)
19816	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19817}
19818
19819type OperationAggregatedListWarningData struct {
19820	// Key: [Output Only] A key that provides more detail on the warning
19821	// being returned. For example, for warnings where there are no results
19822	// in a list request for a particular zone, this key might be scope and
19823	// the key value might be the zone name. Other examples might be a key
19824	// indicating a deprecated resource and a suggested replacement, or a
19825	// warning about invalid network settings (for example, if an instance
19826	// attempts to perform IP forwarding but is not enabled for IP
19827	// forwarding).
19828	Key string `json:"key,omitempty"`
19829
19830	// Value: [Output Only] A warning data value corresponding to the key.
19831	Value string `json:"value,omitempty"`
19832
19833	// ForceSendFields is a list of field names (e.g. "Key") to
19834	// unconditionally include in API requests. By default, fields with
19835	// empty values are omitted from API requests. However, any non-pointer,
19836	// non-interface field appearing in ForceSendFields will be sent to the
19837	// server regardless of whether the field is empty or not. This may be
19838	// used to include empty fields in Patch requests.
19839	ForceSendFields []string `json:"-"`
19840
19841	// NullFields is a list of field names (e.g. "Key") to include in API
19842	// requests with the JSON null value. By default, fields with empty
19843	// values are omitted from API requests. However, any field with an
19844	// empty value appearing in NullFields will be sent to the server as
19845	// null. It is an error if a field in this list has a non-empty value.
19846	// This may be used to include null fields in Patch requests.
19847	NullFields []string `json:"-"`
19848}
19849
19850func (s *OperationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
19851	type NoMethod OperationAggregatedListWarningData
19852	raw := NoMethod(*s)
19853	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19854}
19855
19856// OperationList: Contains a list of Operation resources.
19857type OperationList struct {
19858	// Id: [Output Only] The unique identifier for the resource. This
19859	// identifier is defined by the server.
19860	Id string `json:"id,omitempty"`
19861
19862	// Items: [Output Only] A list of Operation resources.
19863	Items []*Operation `json:"items,omitempty"`
19864
19865	// Kind: [Output Only] Type of resource. Always compute#operations for
19866	// Operations resource.
19867	Kind string `json:"kind,omitempty"`
19868
19869	// NextPageToken: [Output Only] This token allows you to get the next
19870	// page of results for list requests. If the number of results is larger
19871	// than maxResults, use the nextPageToken as a value for the query
19872	// parameter pageToken in the next list request. Subsequent list
19873	// requests will have their own nextPageToken to continue paging through
19874	// the results.
19875	NextPageToken string `json:"nextPageToken,omitempty"`
19876
19877	// SelfLink: [Output Only] Server-defined URL for this resource.
19878	SelfLink string `json:"selfLink,omitempty"`
19879
19880	// Warning: [Output Only] Informational warning message.
19881	Warning *OperationListWarning `json:"warning,omitempty"`
19882
19883	// ServerResponse contains the HTTP response code and headers from the
19884	// server.
19885	googleapi.ServerResponse `json:"-"`
19886
19887	// ForceSendFields is a list of field names (e.g. "Id") to
19888	// unconditionally include in API requests. By default, fields with
19889	// empty values are omitted from API requests. However, any non-pointer,
19890	// non-interface field appearing in ForceSendFields will be sent to the
19891	// server regardless of whether the field is empty or not. This may be
19892	// used to include empty fields in Patch requests.
19893	ForceSendFields []string `json:"-"`
19894
19895	// NullFields is a list of field names (e.g. "Id") to include in API
19896	// requests with the JSON null value. By default, fields with empty
19897	// values are omitted from API requests. However, any field with an
19898	// empty value appearing in NullFields will be sent to the server as
19899	// null. It is an error if a field in this list has a non-empty value.
19900	// This may be used to include null fields in Patch requests.
19901	NullFields []string `json:"-"`
19902}
19903
19904func (s *OperationList) MarshalJSON() ([]byte, error) {
19905	type NoMethod OperationList
19906	raw := NoMethod(*s)
19907	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19908}
19909
19910// OperationListWarning: [Output Only] Informational warning message.
19911type OperationListWarning struct {
19912	// Code: [Output Only] A warning code, if applicable. For example,
19913	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19914	// the response.
19915	//
19916	// Possible values:
19917	//   "CLEANUP_FAILED"
19918	//   "DEPRECATED_RESOURCE_USED"
19919	//   "DEPRECATED_TYPE_USED"
19920	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19921	//   "EXPERIMENTAL_TYPE_USED"
19922	//   "EXTERNAL_API_WARNING"
19923	//   "FIELD_VALUE_OVERRIDEN"
19924	//   "INJECTED_KERNELS_DEPRECATED"
19925	//   "MISSING_TYPE_DEPENDENCY"
19926	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19927	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19928	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19929	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19930	//   "NEXT_HOP_NOT_RUNNING"
19931	//   "NOT_CRITICAL_ERROR"
19932	//   "NO_RESULTS_ON_PAGE"
19933	//   "REQUIRED_TOS_AGREEMENT"
19934	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19935	//   "RESOURCE_NOT_DELETED"
19936	//   "SCHEMA_VALIDATION_IGNORED"
19937	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19938	//   "UNDECLARED_PROPERTIES"
19939	//   "UNREACHABLE"
19940	Code string `json:"code,omitempty"`
19941
19942	// Data: [Output Only] Metadata about this warning in key: value format.
19943	// For example:
19944	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19945	Data []*OperationListWarningData `json:"data,omitempty"`
19946
19947	// Message: [Output Only] A human-readable description of the warning
19948	// code.
19949	Message string `json:"message,omitempty"`
19950
19951	// ForceSendFields is a list of field names (e.g. "Code") to
19952	// unconditionally include in API requests. By default, fields with
19953	// empty values are omitted from API requests. However, any non-pointer,
19954	// non-interface field appearing in ForceSendFields will be sent to the
19955	// server regardless of whether the field is empty or not. This may be
19956	// used to include empty fields in Patch requests.
19957	ForceSendFields []string `json:"-"`
19958
19959	// NullFields is a list of field names (e.g. "Code") to include in API
19960	// requests with the JSON null value. By default, fields with empty
19961	// values are omitted from API requests. However, any field with an
19962	// empty value appearing in NullFields will be sent to the server as
19963	// null. It is an error if a field in this list has a non-empty value.
19964	// This may be used to include null fields in Patch requests.
19965	NullFields []string `json:"-"`
19966}
19967
19968func (s *OperationListWarning) MarshalJSON() ([]byte, error) {
19969	type NoMethod OperationListWarning
19970	raw := NoMethod(*s)
19971	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19972}
19973
19974type OperationListWarningData struct {
19975	// Key: [Output Only] A key that provides more detail on the warning
19976	// being returned. For example, for warnings where there are no results
19977	// in a list request for a particular zone, this key might be scope and
19978	// the key value might be the zone name. Other examples might be a key
19979	// indicating a deprecated resource and a suggested replacement, or a
19980	// warning about invalid network settings (for example, if an instance
19981	// attempts to perform IP forwarding but is not enabled for IP
19982	// forwarding).
19983	Key string `json:"key,omitempty"`
19984
19985	// Value: [Output Only] A warning data value corresponding to the key.
19986	Value string `json:"value,omitempty"`
19987
19988	// ForceSendFields is a list of field names (e.g. "Key") to
19989	// unconditionally include in API requests. By default, fields with
19990	// empty values are omitted from API requests. However, any non-pointer,
19991	// non-interface field appearing in ForceSendFields will be sent to the
19992	// server regardless of whether the field is empty or not. This may be
19993	// used to include empty fields in Patch requests.
19994	ForceSendFields []string `json:"-"`
19995
19996	// NullFields is a list of field names (e.g. "Key") to include in API
19997	// requests with the JSON null value. By default, fields with empty
19998	// values are omitted from API requests. However, any field with an
19999	// empty value appearing in NullFields will be sent to the server as
20000	// null. It is an error if a field in this list has a non-empty value.
20001	// This may be used to include null fields in Patch requests.
20002	NullFields []string `json:"-"`
20003}
20004
20005func (s *OperationListWarningData) MarshalJSON() ([]byte, error) {
20006	type NoMethod OperationListWarningData
20007	raw := NoMethod(*s)
20008	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20009}
20010
20011type OperationsScopedList struct {
20012	// Operations: [Output Only] A list of operations contained in this
20013	// scope.
20014	Operations []*Operation `json:"operations,omitempty"`
20015
20016	// Warning: [Output Only] Informational warning which replaces the list
20017	// of operations when the list is empty.
20018	Warning *OperationsScopedListWarning `json:"warning,omitempty"`
20019
20020	// ForceSendFields is a list of field names (e.g. "Operations") to
20021	// unconditionally include in API requests. By default, fields with
20022	// empty values are omitted from API requests. However, any non-pointer,
20023	// non-interface field appearing in ForceSendFields will be sent to the
20024	// server regardless of whether the field is empty or not. This may be
20025	// used to include empty fields in Patch requests.
20026	ForceSendFields []string `json:"-"`
20027
20028	// NullFields is a list of field names (e.g. "Operations") to include in
20029	// API requests with the JSON null value. By default, fields with empty
20030	// values are omitted from API requests. However, any field with an
20031	// empty value appearing in NullFields will be sent to the server as
20032	// null. It is an error if a field in this list has a non-empty value.
20033	// This may be used to include null fields in Patch requests.
20034	NullFields []string `json:"-"`
20035}
20036
20037func (s *OperationsScopedList) MarshalJSON() ([]byte, error) {
20038	type NoMethod OperationsScopedList
20039	raw := NoMethod(*s)
20040	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20041}
20042
20043// OperationsScopedListWarning: [Output Only] Informational warning
20044// which replaces the list of operations when the list is empty.
20045type OperationsScopedListWarning struct {
20046	// Code: [Output Only] A warning code, if applicable. For example,
20047	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20048	// the response.
20049	//
20050	// Possible values:
20051	//   "CLEANUP_FAILED"
20052	//   "DEPRECATED_RESOURCE_USED"
20053	//   "DEPRECATED_TYPE_USED"
20054	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20055	//   "EXPERIMENTAL_TYPE_USED"
20056	//   "EXTERNAL_API_WARNING"
20057	//   "FIELD_VALUE_OVERRIDEN"
20058	//   "INJECTED_KERNELS_DEPRECATED"
20059	//   "MISSING_TYPE_DEPENDENCY"
20060	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20061	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20062	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20063	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20064	//   "NEXT_HOP_NOT_RUNNING"
20065	//   "NOT_CRITICAL_ERROR"
20066	//   "NO_RESULTS_ON_PAGE"
20067	//   "REQUIRED_TOS_AGREEMENT"
20068	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20069	//   "RESOURCE_NOT_DELETED"
20070	//   "SCHEMA_VALIDATION_IGNORED"
20071	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20072	//   "UNDECLARED_PROPERTIES"
20073	//   "UNREACHABLE"
20074	Code string `json:"code,omitempty"`
20075
20076	// Data: [Output Only] Metadata about this warning in key: value format.
20077	// For example:
20078	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20079	Data []*OperationsScopedListWarningData `json:"data,omitempty"`
20080
20081	// Message: [Output Only] A human-readable description of the warning
20082	// code.
20083	Message string `json:"message,omitempty"`
20084
20085	// ForceSendFields is a list of field names (e.g. "Code") to
20086	// unconditionally include in API requests. By default, fields with
20087	// empty values are omitted from API requests. However, any non-pointer,
20088	// non-interface field appearing in ForceSendFields will be sent to the
20089	// server regardless of whether the field is empty or not. This may be
20090	// used to include empty fields in Patch requests.
20091	ForceSendFields []string `json:"-"`
20092
20093	// NullFields is a list of field names (e.g. "Code") to include in API
20094	// requests with the JSON null value. By default, fields with empty
20095	// values are omitted from API requests. However, any field with an
20096	// empty value appearing in NullFields will be sent to the server as
20097	// null. It is an error if a field in this list has a non-empty value.
20098	// This may be used to include null fields in Patch requests.
20099	NullFields []string `json:"-"`
20100}
20101
20102func (s *OperationsScopedListWarning) MarshalJSON() ([]byte, error) {
20103	type NoMethod OperationsScopedListWarning
20104	raw := NoMethod(*s)
20105	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20106}
20107
20108type OperationsScopedListWarningData struct {
20109	// Key: [Output Only] A key that provides more detail on the warning
20110	// being returned. For example, for warnings where there are no results
20111	// in a list request for a particular zone, this key might be scope and
20112	// the key value might be the zone name. Other examples might be a key
20113	// indicating a deprecated resource and a suggested replacement, or a
20114	// warning about invalid network settings (for example, if an instance
20115	// attempts to perform IP forwarding but is not enabled for IP
20116	// forwarding).
20117	Key string `json:"key,omitempty"`
20118
20119	// Value: [Output Only] A warning data value corresponding to the key.
20120	Value string `json:"value,omitempty"`
20121
20122	// ForceSendFields is a list of field names (e.g. "Key") to
20123	// unconditionally include in API requests. By default, fields with
20124	// empty values are omitted from API requests. However, any non-pointer,
20125	// non-interface field appearing in ForceSendFields will be sent to the
20126	// server regardless of whether the field is empty or not. This may be
20127	// used to include empty fields in Patch requests.
20128	ForceSendFields []string `json:"-"`
20129
20130	// NullFields is a list of field names (e.g. "Key") to include in API
20131	// requests with the JSON null value. By default, fields with empty
20132	// values are omitted from API requests. However, any field with an
20133	// empty value appearing in NullFields will be sent to the server as
20134	// null. It is an error if a field in this list has a non-empty value.
20135	// This may be used to include null fields in Patch requests.
20136	NullFields []string `json:"-"`
20137}
20138
20139func (s *OperationsScopedListWarningData) MarshalJSON() ([]byte, error) {
20140	type NoMethod OperationsScopedListWarningData
20141	raw := NoMethod(*s)
20142	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20143}
20144
20145// PathMatcher: A matcher for the path portion of the URL. The
20146// BackendService from the longest-matched rule will serve the URL. If
20147// no rule was matched, the default service will be used.
20148type PathMatcher struct {
20149	// DefaultService: The full or partial URL to the BackendService
20150	// resource. This will be used if none of the pathRules or routeRules
20151	// defined by this PathMatcher are matched. For example, the following
20152	// are all valid URLs to a BackendService resource:
20153	// -
20154	// https://www.googleapis.com/compute/v1/projects/project/global/backendServices/backendService
20155	// - compute/v1/projects/project/global/backendServices/backendService
20156	//
20157	// - global/backendServices/backendService  If defaultRouteAction is
20158	// additionally specified, advanced routing actions like URL Rewrites,
20159	// etc. take effect prior to sending the request to the backend.
20160	// However, if defaultService is specified, defaultRouteAction cannot
20161	// contain any weightedBackendServices. Conversely, if
20162	// defaultRouteAction specifies any weightedBackendServices,
20163	// defaultService must not be specified.
20164	// Only one of defaultService, defaultUrlRedirect  or
20165	// defaultRouteAction.weightedBackendService must be set.
20166	// Authorization requires one or more of the following Google IAM
20167	// permissions on the specified resource default_service:
20168	// - compute.backendBuckets.use
20169	// - compute.backendServices.use
20170	DefaultService string `json:"defaultService,omitempty"`
20171
20172	// Description: An optional description of this resource. Provide this
20173	// property when you create the resource.
20174	Description string `json:"description,omitempty"`
20175
20176	// Name: The name to which this PathMatcher is referred by the HostRule.
20177	Name string `json:"name,omitempty"`
20178
20179	// PathRules: The list of path rules. Use this list instead of
20180	// routeRules when routing based on simple path matching is all that's
20181	// required. The order by which path rules are specified does not
20182	// matter. Matches are always done on the longest-path-first basis.
20183	// For example: a pathRule with a path /a/b/c/* will match before /a/b/*
20184	// irrespective of the order in which those paths appear in this
20185	// list.
20186	// Only one of pathRules or routeRules must be set.
20187	PathRules []*PathRule `json:"pathRules,omitempty"`
20188
20189	// ForceSendFields is a list of field names (e.g. "DefaultService") to
20190	// unconditionally include in API requests. By default, fields with
20191	// empty values are omitted from API requests. However, any non-pointer,
20192	// non-interface field appearing in ForceSendFields will be sent to the
20193	// server regardless of whether the field is empty or not. This may be
20194	// used to include empty fields in Patch requests.
20195	ForceSendFields []string `json:"-"`
20196
20197	// NullFields is a list of field names (e.g. "DefaultService") to
20198	// include in API requests with the JSON null value. By default, fields
20199	// with empty values are omitted from API requests. However, any field
20200	// with an empty value appearing in NullFields will be sent to the
20201	// server as null. It is an error if a field in this list has a
20202	// non-empty value. This may be used to include null fields in Patch
20203	// requests.
20204	NullFields []string `json:"-"`
20205}
20206
20207func (s *PathMatcher) MarshalJSON() ([]byte, error) {
20208	type NoMethod PathMatcher
20209	raw := NoMethod(*s)
20210	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20211}
20212
20213// PathRule: A path-matching rule for a URL. If matched, will use the
20214// specified BackendService to handle the traffic arriving at this URL.
20215type PathRule struct {
20216	// Paths: The list of path patterns to match. Each must start with / and
20217	// the only place a * is allowed is at the end following a /. The string
20218	// fed to the path matcher does not include any text after the first ?
20219	// or #, and those chars are not allowed here.
20220	Paths []string `json:"paths,omitempty"`
20221
20222	// Service: The full or partial URL of the backend service resource to
20223	// which traffic is directed if this rule is matched. If routeAction is
20224	// additionally specified, advanced routing actions like URL Rewrites,
20225	// etc. take effect prior to sending the request to the backend.
20226	// However, if service is specified, routeAction cannot contain any
20227	// weightedBackendService s. Conversely, if routeAction specifies any
20228	// weightedBackendServices, service must not be specified.
20229	// Only one of urlRedirect, service or
20230	// routeAction.weightedBackendService must be set.
20231	Service string `json:"service,omitempty"`
20232
20233	// ForceSendFields is a list of field names (e.g. "Paths") to
20234	// unconditionally include in API requests. By default, fields with
20235	// empty values are omitted from API requests. However, any non-pointer,
20236	// non-interface field appearing in ForceSendFields will be sent to the
20237	// server regardless of whether the field is empty or not. This may be
20238	// used to include empty fields in Patch requests.
20239	ForceSendFields []string `json:"-"`
20240
20241	// NullFields is a list of field names (e.g. "Paths") to include in API
20242	// requests with the JSON null value. By default, fields with empty
20243	// values are omitted from API requests. However, any field with an
20244	// empty value appearing in NullFields will be sent to the server as
20245	// null. It is an error if a field in this list has a non-empty value.
20246	// This may be used to include null fields in Patch requests.
20247	NullFields []string `json:"-"`
20248}
20249
20250func (s *PathRule) MarshalJSON() ([]byte, error) {
20251	type NoMethod PathRule
20252	raw := NoMethod(*s)
20253	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20254}
20255
20256// Policy: Defines an Identity and Access Management (IAM) policy. It is
20257// used to specify access control policies for Cloud Platform
20258// resources.
20259//
20260//
20261//
20262// A `Policy` consists of a list of `bindings`. A `binding` binds a list
20263// of `members` to a `role`, where the members can be user accounts,
20264// Google groups, Google domains, and service accounts. A `role` is a
20265// named list of permissions defined by IAM.
20266//
20267// **JSON Example**
20268//
20269// { "bindings": [ { "role": "roles/owner", "members": [
20270// "user:mike@example.com", "group:admins@example.com",
20271// "domain:google.com",
20272// "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, {
20273// "role": "roles/viewer", "members": ["user:sean@example.com"] } ]
20274// }
20275//
20276// **YAML Example**
20277//
20278// bindings: - members: - user:mike@example.com -
20279// group:admins@example.com - domain:google.com -
20280// serviceAccount:my-other-app@appspot.gserviceaccount.com role:
20281// roles/owner - members: - user:sean@example.com role:
20282// roles/viewer
20283//
20284//
20285//
20286// For a description of IAM and its features, see the [IAM developer's
20287// guide](https://cloud.google.com/iam/docs).
20288type Policy struct {
20289	// AuditConfigs: Specifies cloud audit logging configuration for this
20290	// policy.
20291	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
20292
20293	// Bindings: Associates a list of `members` to a `role`. `bindings` with
20294	// no members will result in an error.
20295	Bindings []*Binding `json:"bindings,omitempty"`
20296
20297	// Etag: `etag` is used for optimistic concurrency control as a way to
20298	// help prevent simultaneous updates of a policy from overwriting each
20299	// other. It is strongly suggested that systems make use of the `etag`
20300	// in the read-modify-write cycle to perform policy updates in order to
20301	// avoid race conditions: An `etag` is returned in the response to
20302	// `getIamPolicy`, and systems are expected to put that etag in the
20303	// request to `setIamPolicy` to ensure that their change will be applied
20304	// to the same version of the policy.
20305	//
20306	// If no `etag` is provided in the call to `setIamPolicy`, then the
20307	// existing policy is overwritten blindly.
20308	Etag string `json:"etag,omitempty"`
20309
20310	IamOwned bool `json:"iamOwned,omitempty"`
20311
20312	// Rules: If more than one rule is specified, the rules are applied in
20313	// the following manner: - All matching LOG rules are always applied. -
20314	// If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging
20315	// will be applied if one or more matching rule requires logging. -
20316	// Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
20317	// granted. Logging will be applied if one or more matching rule
20318	// requires logging. - Otherwise, if no rule applies, permission is
20319	// denied.
20320	Rules []*Rule `json:"rules,omitempty"`
20321
20322	// Version: Deprecated.
20323	Version int64 `json:"version,omitempty"`
20324
20325	// ServerResponse contains the HTTP response code and headers from the
20326	// server.
20327	googleapi.ServerResponse `json:"-"`
20328
20329	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
20330	// unconditionally include in API requests. By default, fields with
20331	// empty values are omitted from API requests. However, any non-pointer,
20332	// non-interface field appearing in ForceSendFields will be sent to the
20333	// server regardless of whether the field is empty or not. This may be
20334	// used to include empty fields in Patch requests.
20335	ForceSendFields []string `json:"-"`
20336
20337	// NullFields is a list of field names (e.g. "AuditConfigs") to include
20338	// in API requests with the JSON null value. By default, fields with
20339	// empty values are omitted from API requests. However, any field with
20340	// an empty value appearing in NullFields will be sent to the server as
20341	// null. It is an error if a field in this list has a non-empty value.
20342	// This may be used to include null fields in Patch requests.
20343	NullFields []string `json:"-"`
20344}
20345
20346func (s *Policy) MarshalJSON() ([]byte, error) {
20347	type NoMethod Policy
20348	raw := NoMethod(*s)
20349	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20350}
20351
20352// Project: A Project resource. For an overview of projects, see  Cloud
20353// Platform Resource Hierarchy. (== resource_for v1.projects ==) (==
20354// resource_for beta.projects ==)
20355type Project struct {
20356	// CommonInstanceMetadata: Metadata key/value pairs available to all
20357	// instances contained in this project. See Custom metadata for more
20358	// information.
20359	CommonInstanceMetadata *Metadata `json:"commonInstanceMetadata,omitempty"`
20360
20361	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20362	// format.
20363	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20364
20365	// DefaultNetworkTier: This signifies the default network tier used for
20366	// configuring resources of the project and can only take the following
20367	// values: PREMIUM, STANDARD. Initially the default network tier is
20368	// PREMIUM.
20369	//
20370	// Possible values:
20371	//   "PREMIUM"
20372	//   "STANDARD"
20373	DefaultNetworkTier string `json:"defaultNetworkTier,omitempty"`
20374
20375	// DefaultServiceAccount: [Output Only] Default service account used by
20376	// VMs running in this project.
20377	DefaultServiceAccount string `json:"defaultServiceAccount,omitempty"`
20378
20379	// Description: An optional textual description of the resource.
20380	Description string `json:"description,omitempty"`
20381
20382	// EnabledFeatures: Restricted features enabled for use on this project.
20383	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
20384
20385	// Id: [Output Only] The unique identifier for the resource. This
20386	// identifier is defined by the server. This is not the project ID, and
20387	// is just a unique ID used by Compute Engine to identify resources.
20388	Id uint64 `json:"id,omitempty,string"`
20389
20390	// Kind: [Output Only] Type of the resource. Always compute#project for
20391	// projects.
20392	Kind string `json:"kind,omitempty"`
20393
20394	// Name: The project ID. For example: my-example-project. Use the
20395	// project ID to make requests to Compute Engine.
20396	Name string `json:"name,omitempty"`
20397
20398	// Quotas: [Output Only] Quotas assigned to this project.
20399	Quotas []*Quota `json:"quotas,omitempty"`
20400
20401	// SelfLink: [Output Only] Server-defined URL for the resource.
20402	SelfLink string `json:"selfLink,omitempty"`
20403
20404	// UsageExportLocation: The naming prefix for daily usage reports and
20405	// the Google Cloud Storage bucket where they are stored.
20406	UsageExportLocation *UsageExportLocation `json:"usageExportLocation,omitempty"`
20407
20408	// XpnProjectStatus: [Output Only] The role this project has in a shared
20409	// VPC configuration. Currently only HOST projects are differentiated.
20410	//
20411	// Possible values:
20412	//   "HOST"
20413	//   "UNSPECIFIED_XPN_PROJECT_STATUS"
20414	XpnProjectStatus string `json:"xpnProjectStatus,omitempty"`
20415
20416	// ServerResponse contains the HTTP response code and headers from the
20417	// server.
20418	googleapi.ServerResponse `json:"-"`
20419
20420	// ForceSendFields is a list of field names (e.g.
20421	// "CommonInstanceMetadata") to unconditionally include in API requests.
20422	// By default, fields with empty values are omitted from API requests.
20423	// However, any non-pointer, non-interface field appearing in
20424	// ForceSendFields will be sent to the server regardless of whether the
20425	// field is empty or not. This may be used to include empty fields in
20426	// Patch requests.
20427	ForceSendFields []string `json:"-"`
20428
20429	// NullFields is a list of field names (e.g. "CommonInstanceMetadata")
20430	// to include in API requests with the JSON null value. By default,
20431	// fields with empty values are omitted from API requests. However, any
20432	// field with an empty value appearing in NullFields will be sent to the
20433	// server as null. It is an error if a field in this list has a
20434	// non-empty value. This may be used to include null fields in Patch
20435	// requests.
20436	NullFields []string `json:"-"`
20437}
20438
20439func (s *Project) MarshalJSON() ([]byte, error) {
20440	type NoMethod Project
20441	raw := NoMethod(*s)
20442	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20443}
20444
20445type ProjectsDisableXpnResourceRequest struct {
20446	// XpnResource: Service resource (a.k.a service project) ID.
20447	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
20448
20449	// ForceSendFields is a list of field names (e.g. "XpnResource") to
20450	// unconditionally include in API requests. By default, fields with
20451	// empty values are omitted from API requests. However, any non-pointer,
20452	// non-interface field appearing in ForceSendFields will be sent to the
20453	// server regardless of whether the field is empty or not. This may be
20454	// used to include empty fields in Patch requests.
20455	ForceSendFields []string `json:"-"`
20456
20457	// NullFields is a list of field names (e.g. "XpnResource") to include
20458	// in API requests with the JSON null value. By default, fields with
20459	// empty values are omitted from API requests. However, any field with
20460	// an empty value appearing in NullFields will be sent to the server as
20461	// null. It is an error if a field in this list has a non-empty value.
20462	// This may be used to include null fields in Patch requests.
20463	NullFields []string `json:"-"`
20464}
20465
20466func (s *ProjectsDisableXpnResourceRequest) MarshalJSON() ([]byte, error) {
20467	type NoMethod ProjectsDisableXpnResourceRequest
20468	raw := NoMethod(*s)
20469	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20470}
20471
20472type ProjectsEnableXpnResourceRequest struct {
20473	// XpnResource: Service resource (a.k.a service project) ID.
20474	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
20475
20476	// ForceSendFields is a list of field names (e.g. "XpnResource") to
20477	// unconditionally include in API requests. By default, fields with
20478	// empty values are omitted from API requests. However, any non-pointer,
20479	// non-interface field appearing in ForceSendFields will be sent to the
20480	// server regardless of whether the field is empty or not. This may be
20481	// used to include empty fields in Patch requests.
20482	ForceSendFields []string `json:"-"`
20483
20484	// NullFields is a list of field names (e.g. "XpnResource") to include
20485	// in API requests with the JSON null value. By default, fields with
20486	// empty values are omitted from API requests. However, any field with
20487	// an empty value appearing in NullFields will be sent to the server as
20488	// null. It is an error if a field in this list has a non-empty value.
20489	// This may be used to include null fields in Patch requests.
20490	NullFields []string `json:"-"`
20491}
20492
20493func (s *ProjectsEnableXpnResourceRequest) MarshalJSON() ([]byte, error) {
20494	type NoMethod ProjectsEnableXpnResourceRequest
20495	raw := NoMethod(*s)
20496	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20497}
20498
20499type ProjectsGetXpnResources struct {
20500	// Kind: [Output Only] Type of resource. Always
20501	// compute#projectsGetXpnResources for lists of service resources (a.k.a
20502	// service projects)
20503	Kind string `json:"kind,omitempty"`
20504
20505	// NextPageToken: [Output Only] This token allows you to get the next
20506	// page of results for list requests. If the number of results is larger
20507	// than maxResults, use the nextPageToken as a value for the query
20508	// parameter pageToken in the next list request. Subsequent list
20509	// requests will have their own nextPageToken to continue paging through
20510	// the results.
20511	NextPageToken string `json:"nextPageToken,omitempty"`
20512
20513	// Resources: Service resources (a.k.a service projects) attached to
20514	// this project as their shared VPC host.
20515	Resources []*XpnResourceId `json:"resources,omitempty"`
20516
20517	// ServerResponse contains the HTTP response code and headers from the
20518	// server.
20519	googleapi.ServerResponse `json:"-"`
20520
20521	// ForceSendFields is a list of field names (e.g. "Kind") to
20522	// unconditionally include in API requests. By default, fields with
20523	// empty values are omitted from API requests. However, any non-pointer,
20524	// non-interface field appearing in ForceSendFields will be sent to the
20525	// server regardless of whether the field is empty or not. This may be
20526	// used to include empty fields in Patch requests.
20527	ForceSendFields []string `json:"-"`
20528
20529	// NullFields is a list of field names (e.g. "Kind") to include in API
20530	// requests with the JSON null value. By default, fields with empty
20531	// values are omitted from API requests. However, any field with an
20532	// empty value appearing in NullFields will be sent to the server as
20533	// null. It is an error if a field in this list has a non-empty value.
20534	// This may be used to include null fields in Patch requests.
20535	NullFields []string `json:"-"`
20536}
20537
20538func (s *ProjectsGetXpnResources) MarshalJSON() ([]byte, error) {
20539	type NoMethod ProjectsGetXpnResources
20540	raw := NoMethod(*s)
20541	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20542}
20543
20544type ProjectsListXpnHostsRequest struct {
20545	// Organization: Optional organization ID managed by Cloud Resource
20546	// Manager, for which to list shared VPC host projects. If not
20547	// specified, the organization will be inferred from the project.
20548	Organization string `json:"organization,omitempty"`
20549
20550	// ForceSendFields is a list of field names (e.g. "Organization") to
20551	// unconditionally include in API requests. By default, fields with
20552	// empty values are omitted from API requests. However, any non-pointer,
20553	// non-interface field appearing in ForceSendFields will be sent to the
20554	// server regardless of whether the field is empty or not. This may be
20555	// used to include empty fields in Patch requests.
20556	ForceSendFields []string `json:"-"`
20557
20558	// NullFields is a list of field names (e.g. "Organization") to include
20559	// in API requests with the JSON null value. By default, fields with
20560	// empty values are omitted from API requests. However, any field with
20561	// an empty value appearing in NullFields will be sent to the server as
20562	// null. It is an error if a field in this list has a non-empty value.
20563	// This may be used to include null fields in Patch requests.
20564	NullFields []string `json:"-"`
20565}
20566
20567func (s *ProjectsListXpnHostsRequest) MarshalJSON() ([]byte, error) {
20568	type NoMethod ProjectsListXpnHostsRequest
20569	raw := NoMethod(*s)
20570	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20571}
20572
20573type ProjectsSetDefaultNetworkTierRequest struct {
20574	// NetworkTier: Default network tier to be set.
20575	//
20576	// Possible values:
20577	//   "PREMIUM"
20578	//   "STANDARD"
20579	NetworkTier string `json:"networkTier,omitempty"`
20580
20581	// ForceSendFields is a list of field names (e.g. "NetworkTier") to
20582	// unconditionally include in API requests. By default, fields with
20583	// empty values are omitted from API requests. However, any non-pointer,
20584	// non-interface field appearing in ForceSendFields will be sent to the
20585	// server regardless of whether the field is empty or not. This may be
20586	// used to include empty fields in Patch requests.
20587	ForceSendFields []string `json:"-"`
20588
20589	// NullFields is a list of field names (e.g. "NetworkTier") to include
20590	// in API requests with the JSON null value. By default, fields with
20591	// empty values are omitted from API requests. However, any field with
20592	// an empty value appearing in NullFields will be sent to the server as
20593	// null. It is an error if a field in this list has a non-empty value.
20594	// This may be used to include null fields in Patch requests.
20595	NullFields []string `json:"-"`
20596}
20597
20598func (s *ProjectsSetDefaultNetworkTierRequest) MarshalJSON() ([]byte, error) {
20599	type NoMethod ProjectsSetDefaultNetworkTierRequest
20600	raw := NoMethod(*s)
20601	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20602}
20603
20604// Quota: A quotas entry.
20605type Quota struct {
20606	// Limit: [Output Only] Quota limit for this metric.
20607	Limit float64 `json:"limit,omitempty"`
20608
20609	// Metric: [Output Only] Name of the quota metric.
20610	//
20611	// Possible values:
20612	//   "AUTOSCALERS"
20613	//   "BACKEND_BUCKETS"
20614	//   "BACKEND_SERVICES"
20615	//   "COMMITMENTS"
20616	//   "CPUS"
20617	//   "CPUS_ALL_REGIONS"
20618	//   "DISKS_TOTAL_GB"
20619	//   "EXTERNAL_VPN_GATEWAYS"
20620	//   "FIREWALLS"
20621	//   "FORWARDING_RULES"
20622	//   "GLOBAL_INTERNAL_ADDRESSES"
20623	//   "GPUS_ALL_REGIONS"
20624	//   "HEALTH_CHECKS"
20625	//   "IMAGES"
20626	//   "INSTANCES"
20627	//   "INSTANCE_GROUPS"
20628	//   "INSTANCE_GROUP_MANAGERS"
20629	//   "INSTANCE_TEMPLATES"
20630	//   "INTERCONNECTS"
20631	//   "INTERCONNECT_ATTACHMENTS_PER_REGION"
20632	//   "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS"
20633	//   "INTERNAL_ADDRESSES"
20634	//   "IN_USE_ADDRESSES"
20635	//   "IN_USE_BACKUP_SCHEDULES"
20636	//   "IN_USE_SNAPSHOT_SCHEDULES"
20637	//   "LOCAL_SSD_TOTAL_GB"
20638	//   "NETWORKS"
20639	//   "NETWORK_ENDPOINT_GROUPS"
20640	//   "NVIDIA_K80_GPUS"
20641	//   "NVIDIA_P100_GPUS"
20642	//   "NVIDIA_P100_VWS_GPUS"
20643	//   "NVIDIA_P4_GPUS"
20644	//   "NVIDIA_P4_VWS_GPUS"
20645	//   "NVIDIA_T4_GPUS"
20646	//   "NVIDIA_T4_VWS_GPUS"
20647	//   "NVIDIA_V100_GPUS"
20648	//   "PREEMPTIBLE_CPUS"
20649	//   "PREEMPTIBLE_LOCAL_SSD_GB"
20650	//   "PREEMPTIBLE_NVIDIA_K80_GPUS"
20651	//   "PREEMPTIBLE_NVIDIA_P100_GPUS"
20652	//   "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS"
20653	//   "PREEMPTIBLE_NVIDIA_P4_GPUS"
20654	//   "PREEMPTIBLE_NVIDIA_P4_VWS_GPUS"
20655	//   "PREEMPTIBLE_NVIDIA_T4_GPUS"
20656	//   "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS"
20657	//   "PREEMPTIBLE_NVIDIA_V100_GPUS"
20658	//   "REGIONAL_AUTOSCALERS"
20659	//   "REGIONAL_INSTANCE_GROUP_MANAGERS"
20660	//   "RESOURCE_POLICIES"
20661	//   "ROUTERS"
20662	//   "ROUTES"
20663	//   "SECURITY_POLICIES"
20664	//   "SECURITY_POLICY_RULES"
20665	//   "SNAPSHOTS"
20666	//   "SSD_TOTAL_GB"
20667	//   "SSL_CERTIFICATES"
20668	//   "STATIC_ADDRESSES"
20669	//   "SUBNETWORKS"
20670	//   "TARGET_HTTPS_PROXIES"
20671	//   "TARGET_HTTP_PROXIES"
20672	//   "TARGET_INSTANCES"
20673	//   "TARGET_POOLS"
20674	//   "TARGET_SSL_PROXIES"
20675	//   "TARGET_TCP_PROXIES"
20676	//   "TARGET_VPN_GATEWAYS"
20677	//   "URL_MAPS"
20678	//   "VPN_GATEWAYS"
20679	//   "VPN_TUNNELS"
20680	Metric string `json:"metric,omitempty"`
20681
20682	// Owner: [Output Only] Owning resource. This is the resource on which
20683	// this quota is applied.
20684	Owner string `json:"owner,omitempty"`
20685
20686	// Usage: [Output Only] Current usage of this metric.
20687	Usage float64 `json:"usage,omitempty"`
20688
20689	// ForceSendFields is a list of field names (e.g. "Limit") to
20690	// unconditionally include in API requests. By default, fields with
20691	// empty values are omitted from API requests. However, any non-pointer,
20692	// non-interface field appearing in ForceSendFields will be sent to the
20693	// server regardless of whether the field is empty or not. This may be
20694	// used to include empty fields in Patch requests.
20695	ForceSendFields []string `json:"-"`
20696
20697	// NullFields is a list of field names (e.g. "Limit") to include in API
20698	// requests with the JSON null value. By default, fields with empty
20699	// values are omitted from API requests. However, any field with an
20700	// empty value appearing in NullFields will be sent to the server as
20701	// null. It is an error if a field in this list has a non-empty value.
20702	// This may be used to include null fields in Patch requests.
20703	NullFields []string `json:"-"`
20704}
20705
20706func (s *Quota) MarshalJSON() ([]byte, error) {
20707	type NoMethod Quota
20708	raw := NoMethod(*s)
20709	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20710}
20711
20712func (s *Quota) UnmarshalJSON(data []byte) error {
20713	type NoMethod Quota
20714	var s1 struct {
20715		Limit gensupport.JSONFloat64 `json:"limit"`
20716		Usage gensupport.JSONFloat64 `json:"usage"`
20717		*NoMethod
20718	}
20719	s1.NoMethod = (*NoMethod)(s)
20720	if err := json.Unmarshal(data, &s1); err != nil {
20721		return err
20722	}
20723	s.Limit = float64(s1.Limit)
20724	s.Usage = float64(s1.Usage)
20725	return nil
20726}
20727
20728// Reference: Represents a reference to a resource.
20729type Reference struct {
20730	// Kind: [Output Only] Type of the resource. Always compute#reference
20731	// for references.
20732	Kind string `json:"kind,omitempty"`
20733
20734	// ReferenceType: A description of the reference type with no implied
20735	// semantics. Possible values include:
20736	// - MEMBER_OF
20737	ReferenceType string `json:"referenceType,omitempty"`
20738
20739	// Referrer: URL of the resource which refers to the target.
20740	Referrer string `json:"referrer,omitempty"`
20741
20742	// Target: URL of the resource to which this reference points.
20743	Target string `json:"target,omitempty"`
20744
20745	// ForceSendFields is a list of field names (e.g. "Kind") to
20746	// unconditionally include in API requests. By default, fields with
20747	// empty values are omitted from API requests. However, any non-pointer,
20748	// non-interface field appearing in ForceSendFields will be sent to the
20749	// server regardless of whether the field is empty or not. This may be
20750	// used to include empty fields in Patch requests.
20751	ForceSendFields []string `json:"-"`
20752
20753	// NullFields is a list of field names (e.g. "Kind") to include in API
20754	// requests with the JSON null value. By default, fields with empty
20755	// values are omitted from API requests. However, any field with an
20756	// empty value appearing in NullFields will be sent to the server as
20757	// null. It is an error if a field in this list has a non-empty value.
20758	// This may be used to include null fields in Patch requests.
20759	NullFields []string `json:"-"`
20760}
20761
20762func (s *Reference) MarshalJSON() ([]byte, error) {
20763	type NoMethod Reference
20764	raw := NoMethod(*s)
20765	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20766}
20767
20768// Region: Region resource. (== resource_for beta.regions ==) (==
20769// resource_for v1.regions ==)
20770type Region struct {
20771	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20772	// format.
20773	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20774
20775	// Deprecated: [Output Only] The deprecation status associated with this
20776	// region.
20777	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
20778
20779	// Description: [Output Only] Textual description of the resource.
20780	Description string `json:"description,omitempty"`
20781
20782	// Id: [Output Only] The unique identifier for the resource. This
20783	// identifier is defined by the server.
20784	Id uint64 `json:"id,omitempty,string"`
20785
20786	// Kind: [Output Only] Type of the resource. Always compute#region for
20787	// regions.
20788	Kind string `json:"kind,omitempty"`
20789
20790	// Name: [Output Only] Name of the resource.
20791	Name string `json:"name,omitempty"`
20792
20793	// Quotas: [Output Only] Quotas assigned to this region.
20794	Quotas []*Quota `json:"quotas,omitempty"`
20795
20796	// SelfLink: [Output Only] Server-defined URL for the resource.
20797	SelfLink string `json:"selfLink,omitempty"`
20798
20799	// Status: [Output Only] Status of the region, either UP or DOWN.
20800	//
20801	// Possible values:
20802	//   "DOWN"
20803	//   "UP"
20804	Status string `json:"status,omitempty"`
20805
20806	// Zones: [Output Only] A list of zones available in this region, in the
20807	// form of resource URLs.
20808	Zones []string `json:"zones,omitempty"`
20809
20810	// ServerResponse contains the HTTP response code and headers from the
20811	// server.
20812	googleapi.ServerResponse `json:"-"`
20813
20814	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
20815	// to unconditionally include in API requests. By default, fields with
20816	// empty values are omitted from API requests. However, any non-pointer,
20817	// non-interface field appearing in ForceSendFields will be sent to the
20818	// server regardless of whether the field is empty or not. This may be
20819	// used to include empty fields in Patch requests.
20820	ForceSendFields []string `json:"-"`
20821
20822	// NullFields is a list of field names (e.g. "CreationTimestamp") to
20823	// include in API requests with the JSON null value. By default, fields
20824	// with empty values are omitted from API requests. However, any field
20825	// with an empty value appearing in NullFields will be sent to the
20826	// server as null. It is an error if a field in this list has a
20827	// non-empty value. This may be used to include null fields in Patch
20828	// requests.
20829	NullFields []string `json:"-"`
20830}
20831
20832func (s *Region) MarshalJSON() ([]byte, error) {
20833	type NoMethod Region
20834	raw := NoMethod(*s)
20835	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20836}
20837
20838// RegionAutoscalerList: Contains a list of autoscalers.
20839type RegionAutoscalerList struct {
20840	// Id: [Output Only] Unique identifier for the resource; defined by the
20841	// server.
20842	Id string `json:"id,omitempty"`
20843
20844	// Items: A list of Autoscaler resources.
20845	Items []*Autoscaler `json:"items,omitempty"`
20846
20847	// Kind: Type of resource.
20848	Kind string `json:"kind,omitempty"`
20849
20850	// NextPageToken: [Output Only] This token allows you to get the next
20851	// page of results for list requests. If the number of results is larger
20852	// than maxResults, use the nextPageToken as a value for the query
20853	// parameter pageToken in the next list request. Subsequent list
20854	// requests will have their own nextPageToken to continue paging through
20855	// the results.
20856	NextPageToken string `json:"nextPageToken,omitempty"`
20857
20858	// SelfLink: [Output Only] Server-defined URL for this resource.
20859	SelfLink string `json:"selfLink,omitempty"`
20860
20861	// Warning: [Output Only] Informational warning message.
20862	Warning *RegionAutoscalerListWarning `json:"warning,omitempty"`
20863
20864	// ServerResponse contains the HTTP response code and headers from the
20865	// server.
20866	googleapi.ServerResponse `json:"-"`
20867
20868	// ForceSendFields is a list of field names (e.g. "Id") to
20869	// unconditionally include in API requests. By default, fields with
20870	// empty values are omitted from API requests. However, any non-pointer,
20871	// non-interface field appearing in ForceSendFields will be sent to the
20872	// server regardless of whether the field is empty or not. This may be
20873	// used to include empty fields in Patch requests.
20874	ForceSendFields []string `json:"-"`
20875
20876	// NullFields is a list of field names (e.g. "Id") to include in API
20877	// requests with the JSON null value. By default, fields with empty
20878	// values are omitted from API requests. However, any field with an
20879	// empty value appearing in NullFields will be sent to the server as
20880	// null. It is an error if a field in this list has a non-empty value.
20881	// This may be used to include null fields in Patch requests.
20882	NullFields []string `json:"-"`
20883}
20884
20885func (s *RegionAutoscalerList) MarshalJSON() ([]byte, error) {
20886	type NoMethod RegionAutoscalerList
20887	raw := NoMethod(*s)
20888	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20889}
20890
20891// RegionAutoscalerListWarning: [Output Only] Informational warning
20892// message.
20893type RegionAutoscalerListWarning struct {
20894	// Code: [Output Only] A warning code, if applicable. For example,
20895	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20896	// the response.
20897	//
20898	// Possible values:
20899	//   "CLEANUP_FAILED"
20900	//   "DEPRECATED_RESOURCE_USED"
20901	//   "DEPRECATED_TYPE_USED"
20902	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20903	//   "EXPERIMENTAL_TYPE_USED"
20904	//   "EXTERNAL_API_WARNING"
20905	//   "FIELD_VALUE_OVERRIDEN"
20906	//   "INJECTED_KERNELS_DEPRECATED"
20907	//   "MISSING_TYPE_DEPENDENCY"
20908	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20909	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20910	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20911	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20912	//   "NEXT_HOP_NOT_RUNNING"
20913	//   "NOT_CRITICAL_ERROR"
20914	//   "NO_RESULTS_ON_PAGE"
20915	//   "REQUIRED_TOS_AGREEMENT"
20916	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20917	//   "RESOURCE_NOT_DELETED"
20918	//   "SCHEMA_VALIDATION_IGNORED"
20919	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20920	//   "UNDECLARED_PROPERTIES"
20921	//   "UNREACHABLE"
20922	Code string `json:"code,omitempty"`
20923
20924	// Data: [Output Only] Metadata about this warning in key: value format.
20925	// For example:
20926	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20927	Data []*RegionAutoscalerListWarningData `json:"data,omitempty"`
20928
20929	// Message: [Output Only] A human-readable description of the warning
20930	// code.
20931	Message string `json:"message,omitempty"`
20932
20933	// ForceSendFields is a list of field names (e.g. "Code") to
20934	// unconditionally include in API requests. By default, fields with
20935	// empty values are omitted from API requests. However, any non-pointer,
20936	// non-interface field appearing in ForceSendFields will be sent to the
20937	// server regardless of whether the field is empty or not. This may be
20938	// used to include empty fields in Patch requests.
20939	ForceSendFields []string `json:"-"`
20940
20941	// NullFields is a list of field names (e.g. "Code") to include in API
20942	// requests with the JSON null value. By default, fields with empty
20943	// values are omitted from API requests. However, any field with an
20944	// empty value appearing in NullFields will be sent to the server as
20945	// null. It is an error if a field in this list has a non-empty value.
20946	// This may be used to include null fields in Patch requests.
20947	NullFields []string `json:"-"`
20948}
20949
20950func (s *RegionAutoscalerListWarning) MarshalJSON() ([]byte, error) {
20951	type NoMethod RegionAutoscalerListWarning
20952	raw := NoMethod(*s)
20953	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20954}
20955
20956type RegionAutoscalerListWarningData struct {
20957	// Key: [Output Only] A key that provides more detail on the warning
20958	// being returned. For example, for warnings where there are no results
20959	// in a list request for a particular zone, this key might be scope and
20960	// the key value might be the zone name. Other examples might be a key
20961	// indicating a deprecated resource and a suggested replacement, or a
20962	// warning about invalid network settings (for example, if an instance
20963	// attempts to perform IP forwarding but is not enabled for IP
20964	// forwarding).
20965	Key string `json:"key,omitempty"`
20966
20967	// Value: [Output Only] A warning data value corresponding to the key.
20968	Value string `json:"value,omitempty"`
20969
20970	// ForceSendFields is a list of field names (e.g. "Key") to
20971	// unconditionally include in API requests. By default, fields with
20972	// empty values are omitted from API requests. However, any non-pointer,
20973	// non-interface field appearing in ForceSendFields will be sent to the
20974	// server regardless of whether the field is empty or not. This may be
20975	// used to include empty fields in Patch requests.
20976	ForceSendFields []string `json:"-"`
20977
20978	// NullFields is a list of field names (e.g. "Key") to include in API
20979	// requests with the JSON null value. By default, fields with empty
20980	// values are omitted from API requests. However, any field with an
20981	// empty value appearing in NullFields will be sent to the server as
20982	// null. It is an error if a field in this list has a non-empty value.
20983	// This may be used to include null fields in Patch requests.
20984	NullFields []string `json:"-"`
20985}
20986
20987func (s *RegionAutoscalerListWarningData) MarshalJSON() ([]byte, error) {
20988	type NoMethod RegionAutoscalerListWarningData
20989	raw := NoMethod(*s)
20990	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20991}
20992
20993type RegionDiskTypeList struct {
20994	// Id: [Output Only] Unique identifier for the resource; defined by the
20995	// server.
20996	Id string `json:"id,omitempty"`
20997
20998	// Items: A list of DiskType resources.
20999	Items []*DiskType `json:"items,omitempty"`
21000
21001	// Kind: [Output Only] Type of resource. Always
21002	// compute#regionDiskTypeList for region disk types.
21003	Kind string `json:"kind,omitempty"`
21004
21005	// NextPageToken: [Output Only] This token allows you to get the next
21006	// page of results for list requests. If the number of results is larger
21007	// than maxResults, use the nextPageToken as a value for the query
21008	// parameter pageToken in the next list request. Subsequent list
21009	// requests will have their own nextPageToken to continue paging through
21010	// the results.
21011	NextPageToken string `json:"nextPageToken,omitempty"`
21012
21013	// SelfLink: [Output Only] Server-defined URL for this resource.
21014	SelfLink string `json:"selfLink,omitempty"`
21015
21016	// Warning: [Output Only] Informational warning message.
21017	Warning *RegionDiskTypeListWarning `json:"warning,omitempty"`
21018
21019	// ServerResponse contains the HTTP response code and headers from the
21020	// server.
21021	googleapi.ServerResponse `json:"-"`
21022
21023	// ForceSendFields is a list of field names (e.g. "Id") to
21024	// unconditionally include in API requests. By default, fields with
21025	// empty values are omitted from API requests. However, any non-pointer,
21026	// non-interface field appearing in ForceSendFields will be sent to the
21027	// server regardless of whether the field is empty or not. This may be
21028	// used to include empty fields in Patch requests.
21029	ForceSendFields []string `json:"-"`
21030
21031	// NullFields is a list of field names (e.g. "Id") to include in API
21032	// requests with the JSON null value. By default, fields with empty
21033	// values are omitted from API requests. However, any field with an
21034	// empty value appearing in NullFields will be sent to the server as
21035	// null. It is an error if a field in this list has a non-empty value.
21036	// This may be used to include null fields in Patch requests.
21037	NullFields []string `json:"-"`
21038}
21039
21040func (s *RegionDiskTypeList) MarshalJSON() ([]byte, error) {
21041	type NoMethod RegionDiskTypeList
21042	raw := NoMethod(*s)
21043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21044}
21045
21046// RegionDiskTypeListWarning: [Output Only] Informational warning
21047// message.
21048type RegionDiskTypeListWarning struct {
21049	// Code: [Output Only] A warning code, if applicable. For example,
21050	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21051	// the response.
21052	//
21053	// Possible values:
21054	//   "CLEANUP_FAILED"
21055	//   "DEPRECATED_RESOURCE_USED"
21056	//   "DEPRECATED_TYPE_USED"
21057	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21058	//   "EXPERIMENTAL_TYPE_USED"
21059	//   "EXTERNAL_API_WARNING"
21060	//   "FIELD_VALUE_OVERRIDEN"
21061	//   "INJECTED_KERNELS_DEPRECATED"
21062	//   "MISSING_TYPE_DEPENDENCY"
21063	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21064	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21065	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21066	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21067	//   "NEXT_HOP_NOT_RUNNING"
21068	//   "NOT_CRITICAL_ERROR"
21069	//   "NO_RESULTS_ON_PAGE"
21070	//   "REQUIRED_TOS_AGREEMENT"
21071	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21072	//   "RESOURCE_NOT_DELETED"
21073	//   "SCHEMA_VALIDATION_IGNORED"
21074	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21075	//   "UNDECLARED_PROPERTIES"
21076	//   "UNREACHABLE"
21077	Code string `json:"code,omitempty"`
21078
21079	// Data: [Output Only] Metadata about this warning in key: value format.
21080	// For example:
21081	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21082	Data []*RegionDiskTypeListWarningData `json:"data,omitempty"`
21083
21084	// Message: [Output Only] A human-readable description of the warning
21085	// code.
21086	Message string `json:"message,omitempty"`
21087
21088	// ForceSendFields is a list of field names (e.g. "Code") to
21089	// unconditionally include in API requests. By default, fields with
21090	// empty values are omitted from API requests. However, any non-pointer,
21091	// non-interface field appearing in ForceSendFields will be sent to the
21092	// server regardless of whether the field is empty or not. This may be
21093	// used to include empty fields in Patch requests.
21094	ForceSendFields []string `json:"-"`
21095
21096	// NullFields is a list of field names (e.g. "Code") to include in API
21097	// requests with the JSON null value. By default, fields with empty
21098	// values are omitted from API requests. However, any field with an
21099	// empty value appearing in NullFields will be sent to the server as
21100	// null. It is an error if a field in this list has a non-empty value.
21101	// This may be used to include null fields in Patch requests.
21102	NullFields []string `json:"-"`
21103}
21104
21105func (s *RegionDiskTypeListWarning) MarshalJSON() ([]byte, error) {
21106	type NoMethod RegionDiskTypeListWarning
21107	raw := NoMethod(*s)
21108	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21109}
21110
21111type RegionDiskTypeListWarningData struct {
21112	// Key: [Output Only] A key that provides more detail on the warning
21113	// being returned. For example, for warnings where there are no results
21114	// in a list request for a particular zone, this key might be scope and
21115	// the key value might be the zone name. Other examples might be a key
21116	// indicating a deprecated resource and a suggested replacement, or a
21117	// warning about invalid network settings (for example, if an instance
21118	// attempts to perform IP forwarding but is not enabled for IP
21119	// forwarding).
21120	Key string `json:"key,omitempty"`
21121
21122	// Value: [Output Only] A warning data value corresponding to the key.
21123	Value string `json:"value,omitempty"`
21124
21125	// ForceSendFields is a list of field names (e.g. "Key") to
21126	// unconditionally include in API requests. By default, fields with
21127	// empty values are omitted from API requests. However, any non-pointer,
21128	// non-interface field appearing in ForceSendFields will be sent to the
21129	// server regardless of whether the field is empty or not. This may be
21130	// used to include empty fields in Patch requests.
21131	ForceSendFields []string `json:"-"`
21132
21133	// NullFields is a list of field names (e.g. "Key") to include in API
21134	// requests with the JSON null value. By default, fields with empty
21135	// values are omitted from API requests. However, any field with an
21136	// empty value appearing in NullFields will be sent to the server as
21137	// null. It is an error if a field in this list has a non-empty value.
21138	// This may be used to include null fields in Patch requests.
21139	NullFields []string `json:"-"`
21140}
21141
21142func (s *RegionDiskTypeListWarningData) MarshalJSON() ([]byte, error) {
21143	type NoMethod RegionDiskTypeListWarningData
21144	raw := NoMethod(*s)
21145	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21146}
21147
21148type RegionDisksResizeRequest struct {
21149	// SizeGb: The new size of the regional persistent disk, which is
21150	// specified in GB.
21151	SizeGb int64 `json:"sizeGb,omitempty,string"`
21152
21153	// ForceSendFields is a list of field names (e.g. "SizeGb") to
21154	// unconditionally include in API requests. By default, fields with
21155	// empty values are omitted from API requests. However, any non-pointer,
21156	// non-interface field appearing in ForceSendFields will be sent to the
21157	// server regardless of whether the field is empty or not. This may be
21158	// used to include empty fields in Patch requests.
21159	ForceSendFields []string `json:"-"`
21160
21161	// NullFields is a list of field names (e.g. "SizeGb") to include in API
21162	// requests with the JSON null value. By default, fields with empty
21163	// values are omitted from API requests. However, any field with an
21164	// empty value appearing in NullFields will be sent to the server as
21165	// null. It is an error if a field in this list has a non-empty value.
21166	// This may be used to include null fields in Patch requests.
21167	NullFields []string `json:"-"`
21168}
21169
21170func (s *RegionDisksResizeRequest) MarshalJSON() ([]byte, error) {
21171	type NoMethod RegionDisksResizeRequest
21172	raw := NoMethod(*s)
21173	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21174}
21175
21176// RegionInstanceGroupList: Contains a list of InstanceGroup resources.
21177type RegionInstanceGroupList struct {
21178	// Id: [Output Only] Unique identifier for the resource; defined by the
21179	// server.
21180	Id string `json:"id,omitempty"`
21181
21182	// Items: A list of InstanceGroup resources.
21183	Items []*InstanceGroup `json:"items,omitempty"`
21184
21185	// Kind: The resource type.
21186	Kind string `json:"kind,omitempty"`
21187
21188	// NextPageToken: [Output Only] This token allows you to get the next
21189	// page of results for list requests. If the number of results is larger
21190	// than maxResults, use the nextPageToken as a value for the query
21191	// parameter pageToken in the next list request. Subsequent list
21192	// requests will have their own nextPageToken to continue paging through
21193	// the results.
21194	NextPageToken string `json:"nextPageToken,omitempty"`
21195
21196	// SelfLink: [Output Only] Server-defined URL for this resource.
21197	SelfLink string `json:"selfLink,omitempty"`
21198
21199	// Warning: [Output Only] Informational warning message.
21200	Warning *RegionInstanceGroupListWarning `json:"warning,omitempty"`
21201
21202	// ServerResponse contains the HTTP response code and headers from the
21203	// server.
21204	googleapi.ServerResponse `json:"-"`
21205
21206	// ForceSendFields is a list of field names (e.g. "Id") to
21207	// unconditionally include in API requests. By default, fields with
21208	// empty values are omitted from API requests. However, any non-pointer,
21209	// non-interface field appearing in ForceSendFields will be sent to the
21210	// server regardless of whether the field is empty or not. This may be
21211	// used to include empty fields in Patch requests.
21212	ForceSendFields []string `json:"-"`
21213
21214	// NullFields is a list of field names (e.g. "Id") to include in API
21215	// requests with the JSON null value. By default, fields with empty
21216	// values are omitted from API requests. However, any field with an
21217	// empty value appearing in NullFields will be sent to the server as
21218	// null. It is an error if a field in this list has a non-empty value.
21219	// This may be used to include null fields in Patch requests.
21220	NullFields []string `json:"-"`
21221}
21222
21223func (s *RegionInstanceGroupList) MarshalJSON() ([]byte, error) {
21224	type NoMethod RegionInstanceGroupList
21225	raw := NoMethod(*s)
21226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21227}
21228
21229// RegionInstanceGroupListWarning: [Output Only] Informational warning
21230// message.
21231type RegionInstanceGroupListWarning struct {
21232	// Code: [Output Only] A warning code, if applicable. For example,
21233	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21234	// the response.
21235	//
21236	// Possible values:
21237	//   "CLEANUP_FAILED"
21238	//   "DEPRECATED_RESOURCE_USED"
21239	//   "DEPRECATED_TYPE_USED"
21240	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21241	//   "EXPERIMENTAL_TYPE_USED"
21242	//   "EXTERNAL_API_WARNING"
21243	//   "FIELD_VALUE_OVERRIDEN"
21244	//   "INJECTED_KERNELS_DEPRECATED"
21245	//   "MISSING_TYPE_DEPENDENCY"
21246	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21247	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21248	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21249	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21250	//   "NEXT_HOP_NOT_RUNNING"
21251	//   "NOT_CRITICAL_ERROR"
21252	//   "NO_RESULTS_ON_PAGE"
21253	//   "REQUIRED_TOS_AGREEMENT"
21254	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21255	//   "RESOURCE_NOT_DELETED"
21256	//   "SCHEMA_VALIDATION_IGNORED"
21257	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21258	//   "UNDECLARED_PROPERTIES"
21259	//   "UNREACHABLE"
21260	Code string `json:"code,omitempty"`
21261
21262	// Data: [Output Only] Metadata about this warning in key: value format.
21263	// For example:
21264	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21265	Data []*RegionInstanceGroupListWarningData `json:"data,omitempty"`
21266
21267	// Message: [Output Only] A human-readable description of the warning
21268	// code.
21269	Message string `json:"message,omitempty"`
21270
21271	// ForceSendFields is a list of field names (e.g. "Code") to
21272	// unconditionally include in API requests. By default, fields with
21273	// empty values are omitted from API requests. However, any non-pointer,
21274	// non-interface field appearing in ForceSendFields will be sent to the
21275	// server regardless of whether the field is empty or not. This may be
21276	// used to include empty fields in Patch requests.
21277	ForceSendFields []string `json:"-"`
21278
21279	// NullFields is a list of field names (e.g. "Code") to include in API
21280	// requests with the JSON null value. By default, fields with empty
21281	// values are omitted from API requests. However, any field with an
21282	// empty value appearing in NullFields will be sent to the server as
21283	// null. It is an error if a field in this list has a non-empty value.
21284	// This may be used to include null fields in Patch requests.
21285	NullFields []string `json:"-"`
21286}
21287
21288func (s *RegionInstanceGroupListWarning) MarshalJSON() ([]byte, error) {
21289	type NoMethod RegionInstanceGroupListWarning
21290	raw := NoMethod(*s)
21291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21292}
21293
21294type RegionInstanceGroupListWarningData struct {
21295	// Key: [Output Only] A key that provides more detail on the warning
21296	// being returned. For example, for warnings where there are no results
21297	// in a list request for a particular zone, this key might be scope and
21298	// the key value might be the zone name. Other examples might be a key
21299	// indicating a deprecated resource and a suggested replacement, or a
21300	// warning about invalid network settings (for example, if an instance
21301	// attempts to perform IP forwarding but is not enabled for IP
21302	// forwarding).
21303	Key string `json:"key,omitempty"`
21304
21305	// Value: [Output Only] A warning data value corresponding to the key.
21306	Value string `json:"value,omitempty"`
21307
21308	// ForceSendFields is a list of field names (e.g. "Key") to
21309	// unconditionally include in API requests. By default, fields with
21310	// empty values are omitted from API requests. However, any non-pointer,
21311	// non-interface field appearing in ForceSendFields will be sent to the
21312	// server regardless of whether the field is empty or not. This may be
21313	// used to include empty fields in Patch requests.
21314	ForceSendFields []string `json:"-"`
21315
21316	// NullFields is a list of field names (e.g. "Key") to include in API
21317	// requests with the JSON null value. By default, fields with empty
21318	// values are omitted from API requests. However, any field with an
21319	// empty value appearing in NullFields will be sent to the server as
21320	// null. It is an error if a field in this list has a non-empty value.
21321	// This may be used to include null fields in Patch requests.
21322	NullFields []string `json:"-"`
21323}
21324
21325func (s *RegionInstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
21326	type NoMethod RegionInstanceGroupListWarningData
21327	raw := NoMethod(*s)
21328	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21329}
21330
21331// RegionInstanceGroupManagerList: Contains a list of managed instance
21332// groups.
21333type RegionInstanceGroupManagerList struct {
21334	// Id: [Output Only] Unique identifier for the resource; defined by the
21335	// server.
21336	Id string `json:"id,omitempty"`
21337
21338	// Items: A list of InstanceGroupManager resources.
21339	Items []*InstanceGroupManager `json:"items,omitempty"`
21340
21341	// Kind: [Output Only] The resource type, which is always
21342	// compute#instanceGroupManagerList for a list of managed instance
21343	// groups that exist in th regional scope.
21344	Kind string `json:"kind,omitempty"`
21345
21346	// NextPageToken: [Output Only] This token allows you to get the next
21347	// page of results for list requests. If the number of results is larger
21348	// than maxResults, use the nextPageToken as a value for the query
21349	// parameter pageToken in the next list request. Subsequent list
21350	// requests will have their own nextPageToken to continue paging through
21351	// the results.
21352	NextPageToken string `json:"nextPageToken,omitempty"`
21353
21354	// SelfLink: [Output Only] Server-defined URL for this resource.
21355	SelfLink string `json:"selfLink,omitempty"`
21356
21357	// Warning: [Output Only] Informational warning message.
21358	Warning *RegionInstanceGroupManagerListWarning `json:"warning,omitempty"`
21359
21360	// ServerResponse contains the HTTP response code and headers from the
21361	// server.
21362	googleapi.ServerResponse `json:"-"`
21363
21364	// ForceSendFields is a list of field names (e.g. "Id") to
21365	// unconditionally include in API requests. By default, fields with
21366	// empty values are omitted from API requests. However, any non-pointer,
21367	// non-interface field appearing in ForceSendFields will be sent to the
21368	// server regardless of whether the field is empty or not. This may be
21369	// used to include empty fields in Patch requests.
21370	ForceSendFields []string `json:"-"`
21371
21372	// NullFields is a list of field names (e.g. "Id") to include in API
21373	// requests with the JSON null value. By default, fields with empty
21374	// values are omitted from API requests. However, any field with an
21375	// empty value appearing in NullFields will be sent to the server as
21376	// null. It is an error if a field in this list has a non-empty value.
21377	// This may be used to include null fields in Patch requests.
21378	NullFields []string `json:"-"`
21379}
21380
21381func (s *RegionInstanceGroupManagerList) MarshalJSON() ([]byte, error) {
21382	type NoMethod RegionInstanceGroupManagerList
21383	raw := NoMethod(*s)
21384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21385}
21386
21387// RegionInstanceGroupManagerListWarning: [Output Only] Informational
21388// warning message.
21389type RegionInstanceGroupManagerListWarning struct {
21390	// Code: [Output Only] A warning code, if applicable. For example,
21391	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21392	// the response.
21393	//
21394	// Possible values:
21395	//   "CLEANUP_FAILED"
21396	//   "DEPRECATED_RESOURCE_USED"
21397	//   "DEPRECATED_TYPE_USED"
21398	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21399	//   "EXPERIMENTAL_TYPE_USED"
21400	//   "EXTERNAL_API_WARNING"
21401	//   "FIELD_VALUE_OVERRIDEN"
21402	//   "INJECTED_KERNELS_DEPRECATED"
21403	//   "MISSING_TYPE_DEPENDENCY"
21404	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21405	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21406	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21407	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21408	//   "NEXT_HOP_NOT_RUNNING"
21409	//   "NOT_CRITICAL_ERROR"
21410	//   "NO_RESULTS_ON_PAGE"
21411	//   "REQUIRED_TOS_AGREEMENT"
21412	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21413	//   "RESOURCE_NOT_DELETED"
21414	//   "SCHEMA_VALIDATION_IGNORED"
21415	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21416	//   "UNDECLARED_PROPERTIES"
21417	//   "UNREACHABLE"
21418	Code string `json:"code,omitempty"`
21419
21420	// Data: [Output Only] Metadata about this warning in key: value format.
21421	// For example:
21422	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21423	Data []*RegionInstanceGroupManagerListWarningData `json:"data,omitempty"`
21424
21425	// Message: [Output Only] A human-readable description of the warning
21426	// code.
21427	Message string `json:"message,omitempty"`
21428
21429	// ForceSendFields is a list of field names (e.g. "Code") to
21430	// unconditionally include in API requests. By default, fields with
21431	// empty values are omitted from API requests. However, any non-pointer,
21432	// non-interface field appearing in ForceSendFields will be sent to the
21433	// server regardless of whether the field is empty or not. This may be
21434	// used to include empty fields in Patch requests.
21435	ForceSendFields []string `json:"-"`
21436
21437	// NullFields is a list of field names (e.g. "Code") to include in API
21438	// requests with the JSON null value. By default, fields with empty
21439	// values are omitted from API requests. However, any field with an
21440	// empty value appearing in NullFields will be sent to the server as
21441	// null. It is an error if a field in this list has a non-empty value.
21442	// This may be used to include null fields in Patch requests.
21443	NullFields []string `json:"-"`
21444}
21445
21446func (s *RegionInstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
21447	type NoMethod RegionInstanceGroupManagerListWarning
21448	raw := NoMethod(*s)
21449	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21450}
21451
21452type RegionInstanceGroupManagerListWarningData struct {
21453	// Key: [Output Only] A key that provides more detail on the warning
21454	// being returned. For example, for warnings where there are no results
21455	// in a list request for a particular zone, this key might be scope and
21456	// the key value might be the zone name. Other examples might be a key
21457	// indicating a deprecated resource and a suggested replacement, or a
21458	// warning about invalid network settings (for example, if an instance
21459	// attempts to perform IP forwarding but is not enabled for IP
21460	// forwarding).
21461	Key string `json:"key,omitempty"`
21462
21463	// Value: [Output Only] A warning data value corresponding to the key.
21464	Value string `json:"value,omitempty"`
21465
21466	// ForceSendFields is a list of field names (e.g. "Key") to
21467	// unconditionally include in API requests. By default, fields with
21468	// empty values are omitted from API requests. However, any non-pointer,
21469	// non-interface field appearing in ForceSendFields will be sent to the
21470	// server regardless of whether the field is empty or not. This may be
21471	// used to include empty fields in Patch requests.
21472	ForceSendFields []string `json:"-"`
21473
21474	// NullFields is a list of field names (e.g. "Key") to include in API
21475	// requests with the JSON null value. By default, fields with empty
21476	// values are omitted from API requests. However, any field with an
21477	// empty value appearing in NullFields will be sent to the server as
21478	// null. It is an error if a field in this list has a non-empty value.
21479	// This may be used to include null fields in Patch requests.
21480	NullFields []string `json:"-"`
21481}
21482
21483func (s *RegionInstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
21484	type NoMethod RegionInstanceGroupManagerListWarningData
21485	raw := NoMethod(*s)
21486	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21487}
21488
21489type RegionInstanceGroupManagersAbandonInstancesRequest struct {
21490	// Instances: The URLs of one or more instances to abandon. This can be
21491	// a full URL or a partial URL, such as
21492	// zones/[ZONE]/instances/[INSTANCE_NAME].
21493	Instances []string `json:"instances,omitempty"`
21494
21495	// ForceSendFields is a list of field names (e.g. "Instances") to
21496	// unconditionally include in API requests. By default, fields with
21497	// empty values are omitted from API requests. However, any non-pointer,
21498	// non-interface field appearing in ForceSendFields will be sent to the
21499	// server regardless of whether the field is empty or not. This may be
21500	// used to include empty fields in Patch requests.
21501	ForceSendFields []string `json:"-"`
21502
21503	// NullFields is a list of field names (e.g. "Instances") to include in
21504	// API requests with the JSON null value. By default, fields with empty
21505	// values are omitted from API requests. However, any field with an
21506	// empty value appearing in NullFields will be sent to the server as
21507	// null. It is an error if a field in this list has a non-empty value.
21508	// This may be used to include null fields in Patch requests.
21509	NullFields []string `json:"-"`
21510}
21511
21512func (s *RegionInstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
21513	type NoMethod RegionInstanceGroupManagersAbandonInstancesRequest
21514	raw := NoMethod(*s)
21515	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21516}
21517
21518type RegionInstanceGroupManagersDeleteInstancesRequest struct {
21519	// Instances: The URLs of one or more instances to delete. This can be a
21520	// full URL or a partial URL, such as
21521	// zones/[ZONE]/instances/[INSTANCE_NAME].
21522	Instances []string `json:"instances,omitempty"`
21523
21524	// ForceSendFields is a list of field names (e.g. "Instances") to
21525	// unconditionally include in API requests. By default, fields with
21526	// empty values are omitted from API requests. However, any non-pointer,
21527	// non-interface field appearing in ForceSendFields will be sent to the
21528	// server regardless of whether the field is empty or not. This may be
21529	// used to include empty fields in Patch requests.
21530	ForceSendFields []string `json:"-"`
21531
21532	// NullFields is a list of field names (e.g. "Instances") to include in
21533	// API requests with the JSON null value. By default, fields with empty
21534	// values are omitted from API requests. However, any field with an
21535	// empty value appearing in NullFields will be sent to the server as
21536	// null. It is an error if a field in this list has a non-empty value.
21537	// This may be used to include null fields in Patch requests.
21538	NullFields []string `json:"-"`
21539}
21540
21541func (s *RegionInstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
21542	type NoMethod RegionInstanceGroupManagersDeleteInstancesRequest
21543	raw := NoMethod(*s)
21544	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21545}
21546
21547type RegionInstanceGroupManagersListInstancesResponse struct {
21548	// ManagedInstances: A list of managed instances.
21549	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
21550
21551	// ServerResponse contains the HTTP response code and headers from the
21552	// server.
21553	googleapi.ServerResponse `json:"-"`
21554
21555	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
21556	// unconditionally include in API requests. By default, fields with
21557	// empty values are omitted from API requests. However, any non-pointer,
21558	// non-interface field appearing in ForceSendFields will be sent to the
21559	// server regardless of whether the field is empty or not. This may be
21560	// used to include empty fields in Patch requests.
21561	ForceSendFields []string `json:"-"`
21562
21563	// NullFields is a list of field names (e.g. "ManagedInstances") to
21564	// include in API requests with the JSON null value. By default, fields
21565	// with empty values are omitted from API requests. However, any field
21566	// with an empty value appearing in NullFields will be sent to the
21567	// server as null. It is an error if a field in this list has a
21568	// non-empty value. This may be used to include null fields in Patch
21569	// requests.
21570	NullFields []string `json:"-"`
21571}
21572
21573func (s *RegionInstanceGroupManagersListInstancesResponse) MarshalJSON() ([]byte, error) {
21574	type NoMethod RegionInstanceGroupManagersListInstancesResponse
21575	raw := NoMethod(*s)
21576	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21577}
21578
21579type RegionInstanceGroupManagersRecreateRequest struct {
21580	// Instances: The URLs of one or more instances to recreate. This can be
21581	// a full URL or a partial URL, such as
21582	// zones/[ZONE]/instances/[INSTANCE_NAME].
21583	Instances []string `json:"instances,omitempty"`
21584
21585	// ForceSendFields is a list of field names (e.g. "Instances") to
21586	// unconditionally include in API requests. By default, fields with
21587	// empty values are omitted from API requests. However, any non-pointer,
21588	// non-interface field appearing in ForceSendFields will be sent to the
21589	// server regardless of whether the field is empty or not. This may be
21590	// used to include empty fields in Patch requests.
21591	ForceSendFields []string `json:"-"`
21592
21593	// NullFields is a list of field names (e.g. "Instances") to include in
21594	// API requests with the JSON null value. By default, fields with empty
21595	// values are omitted from API requests. However, any field with an
21596	// empty value appearing in NullFields will be sent to the server as
21597	// null. It is an error if a field in this list has a non-empty value.
21598	// This may be used to include null fields in Patch requests.
21599	NullFields []string `json:"-"`
21600}
21601
21602func (s *RegionInstanceGroupManagersRecreateRequest) MarshalJSON() ([]byte, error) {
21603	type NoMethod RegionInstanceGroupManagersRecreateRequest
21604	raw := NoMethod(*s)
21605	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21606}
21607
21608type RegionInstanceGroupManagersSetTargetPoolsRequest struct {
21609	// Fingerprint: Fingerprint of the target pools information, which is a
21610	// hash of the contents. This field is used for optimistic locking when
21611	// you update the target pool entries. This field is optional.
21612	Fingerprint string `json:"fingerprint,omitempty"`
21613
21614	// TargetPools: The URL of all TargetPool resources to which instances
21615	// in the instanceGroup field are added. The target pools automatically
21616	// apply to all of the instances in the managed instance group.
21617	TargetPools []string `json:"targetPools,omitempty"`
21618
21619	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
21620	// unconditionally include in API requests. By default, fields with
21621	// empty values are omitted from API requests. However, any non-pointer,
21622	// non-interface field appearing in ForceSendFields will be sent to the
21623	// server regardless of whether the field is empty or not. This may be
21624	// used to include empty fields in Patch requests.
21625	ForceSendFields []string `json:"-"`
21626
21627	// NullFields is a list of field names (e.g. "Fingerprint") to include
21628	// in API requests with the JSON null value. By default, fields with
21629	// empty values are omitted from API requests. However, any field with
21630	// an empty value appearing in NullFields will be sent to the server as
21631	// null. It is an error if a field in this list has a non-empty value.
21632	// This may be used to include null fields in Patch requests.
21633	NullFields []string `json:"-"`
21634}
21635
21636func (s *RegionInstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
21637	type NoMethod RegionInstanceGroupManagersSetTargetPoolsRequest
21638	raw := NoMethod(*s)
21639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21640}
21641
21642type RegionInstanceGroupManagersSetTemplateRequest struct {
21643	// InstanceTemplate: URL of the InstanceTemplate resource from which all
21644	// new instances will be created.
21645	InstanceTemplate string `json:"instanceTemplate,omitempty"`
21646
21647	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
21648	// unconditionally include in API requests. By default, fields with
21649	// empty values are omitted from API requests. However, any non-pointer,
21650	// non-interface field appearing in ForceSendFields will be sent to the
21651	// server regardless of whether the field is empty or not. This may be
21652	// used to include empty fields in Patch requests.
21653	ForceSendFields []string `json:"-"`
21654
21655	// NullFields is a list of field names (e.g. "InstanceTemplate") to
21656	// include in API requests with the JSON null value. By default, fields
21657	// with empty values are omitted from API requests. However, any field
21658	// with an empty value appearing in NullFields will be sent to the
21659	// server as null. It is an error if a field in this list has a
21660	// non-empty value. This may be used to include null fields in Patch
21661	// requests.
21662	NullFields []string `json:"-"`
21663}
21664
21665func (s *RegionInstanceGroupManagersSetTemplateRequest) MarshalJSON() ([]byte, error) {
21666	type NoMethod RegionInstanceGroupManagersSetTemplateRequest
21667	raw := NoMethod(*s)
21668	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21669}
21670
21671type RegionInstanceGroupsListInstances struct {
21672	// Id: [Output Only] Unique identifier for the resource; defined by the
21673	// server.
21674	Id string `json:"id,omitempty"`
21675
21676	// Items: A list of InstanceWithNamedPorts resources.
21677	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
21678
21679	// Kind: The resource type.
21680	Kind string `json:"kind,omitempty"`
21681
21682	// NextPageToken: [Output Only] This token allows you to get the next
21683	// page of results for list requests. If the number of results is larger
21684	// than maxResults, use the nextPageToken as a value for the query
21685	// parameter pageToken in the next list request. Subsequent list
21686	// requests will have their own nextPageToken to continue paging through
21687	// the results.
21688	NextPageToken string `json:"nextPageToken,omitempty"`
21689
21690	// SelfLink: [Output Only] Server-defined URL for this resource.
21691	SelfLink string `json:"selfLink,omitempty"`
21692
21693	// Warning: [Output Only] Informational warning message.
21694	Warning *RegionInstanceGroupsListInstancesWarning `json:"warning,omitempty"`
21695
21696	// ServerResponse contains the HTTP response code and headers from the
21697	// server.
21698	googleapi.ServerResponse `json:"-"`
21699
21700	// ForceSendFields is a list of field names (e.g. "Id") to
21701	// unconditionally include in API requests. By default, fields with
21702	// empty values are omitted from API requests. However, any non-pointer,
21703	// non-interface field appearing in ForceSendFields will be sent to the
21704	// server regardless of whether the field is empty or not. This may be
21705	// used to include empty fields in Patch requests.
21706	ForceSendFields []string `json:"-"`
21707
21708	// NullFields is a list of field names (e.g. "Id") to include in API
21709	// requests with the JSON null value. By default, fields with empty
21710	// values are omitted from API requests. However, any field with an
21711	// empty value appearing in NullFields will be sent to the server as
21712	// null. It is an error if a field in this list has a non-empty value.
21713	// This may be used to include null fields in Patch requests.
21714	NullFields []string `json:"-"`
21715}
21716
21717func (s *RegionInstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
21718	type NoMethod RegionInstanceGroupsListInstances
21719	raw := NoMethod(*s)
21720	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21721}
21722
21723// RegionInstanceGroupsListInstancesWarning: [Output Only] Informational
21724// warning message.
21725type RegionInstanceGroupsListInstancesWarning struct {
21726	// Code: [Output Only] A warning code, if applicable. For example,
21727	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21728	// the response.
21729	//
21730	// Possible values:
21731	//   "CLEANUP_FAILED"
21732	//   "DEPRECATED_RESOURCE_USED"
21733	//   "DEPRECATED_TYPE_USED"
21734	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21735	//   "EXPERIMENTAL_TYPE_USED"
21736	//   "EXTERNAL_API_WARNING"
21737	//   "FIELD_VALUE_OVERRIDEN"
21738	//   "INJECTED_KERNELS_DEPRECATED"
21739	//   "MISSING_TYPE_DEPENDENCY"
21740	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21741	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21742	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21743	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21744	//   "NEXT_HOP_NOT_RUNNING"
21745	//   "NOT_CRITICAL_ERROR"
21746	//   "NO_RESULTS_ON_PAGE"
21747	//   "REQUIRED_TOS_AGREEMENT"
21748	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21749	//   "RESOURCE_NOT_DELETED"
21750	//   "SCHEMA_VALIDATION_IGNORED"
21751	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21752	//   "UNDECLARED_PROPERTIES"
21753	//   "UNREACHABLE"
21754	Code string `json:"code,omitempty"`
21755
21756	// Data: [Output Only] Metadata about this warning in key: value format.
21757	// For example:
21758	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21759	Data []*RegionInstanceGroupsListInstancesWarningData `json:"data,omitempty"`
21760
21761	// Message: [Output Only] A human-readable description of the warning
21762	// code.
21763	Message string `json:"message,omitempty"`
21764
21765	// ForceSendFields is a list of field names (e.g. "Code") to
21766	// unconditionally include in API requests. By default, fields with
21767	// empty values are omitted from API requests. However, any non-pointer,
21768	// non-interface field appearing in ForceSendFields will be sent to the
21769	// server regardless of whether the field is empty or not. This may be
21770	// used to include empty fields in Patch requests.
21771	ForceSendFields []string `json:"-"`
21772
21773	// NullFields is a list of field names (e.g. "Code") to include in API
21774	// requests with the JSON null value. By default, fields with empty
21775	// values are omitted from API requests. However, any field with an
21776	// empty value appearing in NullFields will be sent to the server as
21777	// null. It is an error if a field in this list has a non-empty value.
21778	// This may be used to include null fields in Patch requests.
21779	NullFields []string `json:"-"`
21780}
21781
21782func (s *RegionInstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
21783	type NoMethod RegionInstanceGroupsListInstancesWarning
21784	raw := NoMethod(*s)
21785	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21786}
21787
21788type RegionInstanceGroupsListInstancesWarningData struct {
21789	// Key: [Output Only] A key that provides more detail on the warning
21790	// being returned. For example, for warnings where there are no results
21791	// in a list request for a particular zone, this key might be scope and
21792	// the key value might be the zone name. Other examples might be a key
21793	// indicating a deprecated resource and a suggested replacement, or a
21794	// warning about invalid network settings (for example, if an instance
21795	// attempts to perform IP forwarding but is not enabled for IP
21796	// forwarding).
21797	Key string `json:"key,omitempty"`
21798
21799	// Value: [Output Only] A warning data value corresponding to the key.
21800	Value string `json:"value,omitempty"`
21801
21802	// ForceSendFields is a list of field names (e.g. "Key") to
21803	// unconditionally include in API requests. By default, fields with
21804	// empty values are omitted from API requests. However, any non-pointer,
21805	// non-interface field appearing in ForceSendFields will be sent to the
21806	// server regardless of whether the field is empty or not. This may be
21807	// used to include empty fields in Patch requests.
21808	ForceSendFields []string `json:"-"`
21809
21810	// NullFields is a list of field names (e.g. "Key") to include in API
21811	// requests with the JSON null value. By default, fields with empty
21812	// values are omitted from API requests. However, any field with an
21813	// empty value appearing in NullFields will be sent to the server as
21814	// null. It is an error if a field in this list has a non-empty value.
21815	// This may be used to include null fields in Patch requests.
21816	NullFields []string `json:"-"`
21817}
21818
21819func (s *RegionInstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
21820	type NoMethod RegionInstanceGroupsListInstancesWarningData
21821	raw := NoMethod(*s)
21822	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21823}
21824
21825type RegionInstanceGroupsListInstancesRequest struct {
21826	// InstanceState: Instances in which state should be returned. Valid
21827	// options are: 'ALL', 'RUNNING'. By default, it lists all instances.
21828	//
21829	// Possible values:
21830	//   "ALL"
21831	//   "RUNNING"
21832	InstanceState string `json:"instanceState,omitempty"`
21833
21834	// PortName: Name of port user is interested in. It is optional. If it
21835	// is set, only information about this ports will be returned. If it is
21836	// not set, all the named ports will be returned. Always lists all
21837	// instances.
21838	PortName string `json:"portName,omitempty"`
21839
21840	// ForceSendFields is a list of field names (e.g. "InstanceState") to
21841	// unconditionally include in API requests. By default, fields with
21842	// empty values are omitted from API requests. However, any non-pointer,
21843	// non-interface field appearing in ForceSendFields will be sent to the
21844	// server regardless of whether the field is empty or not. This may be
21845	// used to include empty fields in Patch requests.
21846	ForceSendFields []string `json:"-"`
21847
21848	// NullFields is a list of field names (e.g. "InstanceState") to include
21849	// in API requests with the JSON null value. By default, fields with
21850	// empty values are omitted from API requests. However, any field with
21851	// an empty value appearing in NullFields will be sent to the server as
21852	// null. It is an error if a field in this list has a non-empty value.
21853	// This may be used to include null fields in Patch requests.
21854	NullFields []string `json:"-"`
21855}
21856
21857func (s *RegionInstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
21858	type NoMethod RegionInstanceGroupsListInstancesRequest
21859	raw := NoMethod(*s)
21860	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21861}
21862
21863type RegionInstanceGroupsSetNamedPortsRequest struct {
21864	// Fingerprint: The fingerprint of the named ports information for this
21865	// instance group. Use this optional property to prevent conflicts when
21866	// multiple users change the named ports settings concurrently. Obtain
21867	// the fingerprint with the instanceGroups.get method. Then, include the
21868	// fingerprint in your request to ensure that you do not overwrite
21869	// changes that were applied from another concurrent request.
21870	Fingerprint string `json:"fingerprint,omitempty"`
21871
21872	// NamedPorts: The list of named ports to set for this instance group.
21873	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
21874
21875	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
21876	// unconditionally include in API requests. By default, fields with
21877	// empty values are omitted from API requests. However, any non-pointer,
21878	// non-interface field appearing in ForceSendFields will be sent to the
21879	// server regardless of whether the field is empty or not. This may be
21880	// used to include empty fields in Patch requests.
21881	ForceSendFields []string `json:"-"`
21882
21883	// NullFields is a list of field names (e.g. "Fingerprint") to include
21884	// in API requests with the JSON null value. By default, fields with
21885	// empty values are omitted from API requests. However, any field with
21886	// an empty value appearing in NullFields will be sent to the server as
21887	// null. It is an error if a field in this list has a non-empty value.
21888	// This may be used to include null fields in Patch requests.
21889	NullFields []string `json:"-"`
21890}
21891
21892func (s *RegionInstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
21893	type NoMethod RegionInstanceGroupsSetNamedPortsRequest
21894	raw := NoMethod(*s)
21895	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21896}
21897
21898// RegionList: Contains a list of region resources.
21899type RegionList struct {
21900	// Id: [Output Only] Unique identifier for the resource; defined by the
21901	// server.
21902	Id string `json:"id,omitempty"`
21903
21904	// Items: A list of Region resources.
21905	Items []*Region `json:"items,omitempty"`
21906
21907	// Kind: [Output Only] Type of resource. Always compute#regionList for
21908	// lists of regions.
21909	Kind string `json:"kind,omitempty"`
21910
21911	// NextPageToken: [Output Only] This token allows you to get the next
21912	// page of results for list requests. If the number of results is larger
21913	// than maxResults, use the nextPageToken as a value for the query
21914	// parameter pageToken in the next list request. Subsequent list
21915	// requests will have their own nextPageToken to continue paging through
21916	// the results.
21917	NextPageToken string `json:"nextPageToken,omitempty"`
21918
21919	// SelfLink: [Output Only] Server-defined URL for this resource.
21920	SelfLink string `json:"selfLink,omitempty"`
21921
21922	// Warning: [Output Only] Informational warning message.
21923	Warning *RegionListWarning `json:"warning,omitempty"`
21924
21925	// ServerResponse contains the HTTP response code and headers from the
21926	// server.
21927	googleapi.ServerResponse `json:"-"`
21928
21929	// ForceSendFields is a list of field names (e.g. "Id") to
21930	// unconditionally include in API requests. By default, fields with
21931	// empty values are omitted from API requests. However, any non-pointer,
21932	// non-interface field appearing in ForceSendFields will be sent to the
21933	// server regardless of whether the field is empty or not. This may be
21934	// used to include empty fields in Patch requests.
21935	ForceSendFields []string `json:"-"`
21936
21937	// NullFields is a list of field names (e.g. "Id") to include in API
21938	// requests with the JSON null value. By default, fields with empty
21939	// values are omitted from API requests. However, any field with an
21940	// empty value appearing in NullFields will be sent to the server as
21941	// null. It is an error if a field in this list has a non-empty value.
21942	// This may be used to include null fields in Patch requests.
21943	NullFields []string `json:"-"`
21944}
21945
21946func (s *RegionList) MarshalJSON() ([]byte, error) {
21947	type NoMethod RegionList
21948	raw := NoMethod(*s)
21949	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21950}
21951
21952// RegionListWarning: [Output Only] Informational warning message.
21953type RegionListWarning struct {
21954	// Code: [Output Only] A warning code, if applicable. For example,
21955	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21956	// the response.
21957	//
21958	// Possible values:
21959	//   "CLEANUP_FAILED"
21960	//   "DEPRECATED_RESOURCE_USED"
21961	//   "DEPRECATED_TYPE_USED"
21962	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21963	//   "EXPERIMENTAL_TYPE_USED"
21964	//   "EXTERNAL_API_WARNING"
21965	//   "FIELD_VALUE_OVERRIDEN"
21966	//   "INJECTED_KERNELS_DEPRECATED"
21967	//   "MISSING_TYPE_DEPENDENCY"
21968	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21969	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21970	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21971	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21972	//   "NEXT_HOP_NOT_RUNNING"
21973	//   "NOT_CRITICAL_ERROR"
21974	//   "NO_RESULTS_ON_PAGE"
21975	//   "REQUIRED_TOS_AGREEMENT"
21976	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21977	//   "RESOURCE_NOT_DELETED"
21978	//   "SCHEMA_VALIDATION_IGNORED"
21979	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21980	//   "UNDECLARED_PROPERTIES"
21981	//   "UNREACHABLE"
21982	Code string `json:"code,omitempty"`
21983
21984	// Data: [Output Only] Metadata about this warning in key: value format.
21985	// For example:
21986	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21987	Data []*RegionListWarningData `json:"data,omitempty"`
21988
21989	// Message: [Output Only] A human-readable description of the warning
21990	// code.
21991	Message string `json:"message,omitempty"`
21992
21993	// ForceSendFields is a list of field names (e.g. "Code") to
21994	// unconditionally include in API requests. By default, fields with
21995	// empty values are omitted from API requests. However, any non-pointer,
21996	// non-interface field appearing in ForceSendFields will be sent to the
21997	// server regardless of whether the field is empty or not. This may be
21998	// used to include empty fields in Patch requests.
21999	ForceSendFields []string `json:"-"`
22000
22001	// NullFields is a list of field names (e.g. "Code") to include in API
22002	// requests with the JSON null value. By default, fields with empty
22003	// values are omitted from API requests. However, any field with an
22004	// empty value appearing in NullFields will be sent to the server as
22005	// null. It is an error if a field in this list has a non-empty value.
22006	// This may be used to include null fields in Patch requests.
22007	NullFields []string `json:"-"`
22008}
22009
22010func (s *RegionListWarning) MarshalJSON() ([]byte, error) {
22011	type NoMethod RegionListWarning
22012	raw := NoMethod(*s)
22013	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22014}
22015
22016type RegionListWarningData struct {
22017	// Key: [Output Only] A key that provides more detail on the warning
22018	// being returned. For example, for warnings where there are no results
22019	// in a list request for a particular zone, this key might be scope and
22020	// the key value might be the zone name. Other examples might be a key
22021	// indicating a deprecated resource and a suggested replacement, or a
22022	// warning about invalid network settings (for example, if an instance
22023	// attempts to perform IP forwarding but is not enabled for IP
22024	// forwarding).
22025	Key string `json:"key,omitempty"`
22026
22027	// Value: [Output Only] A warning data value corresponding to the key.
22028	Value string `json:"value,omitempty"`
22029
22030	// ForceSendFields is a list of field names (e.g. "Key") to
22031	// unconditionally include in API requests. By default, fields with
22032	// empty values are omitted from API requests. However, any non-pointer,
22033	// non-interface field appearing in ForceSendFields will be sent to the
22034	// server regardless of whether the field is empty or not. This may be
22035	// used to include empty fields in Patch requests.
22036	ForceSendFields []string `json:"-"`
22037
22038	// NullFields is a list of field names (e.g. "Key") to include in API
22039	// requests with the JSON null value. By default, fields with empty
22040	// values are omitted from API requests. However, any field with an
22041	// empty value appearing in NullFields will be sent to the server as
22042	// null. It is an error if a field in this list has a non-empty value.
22043	// This may be used to include null fields in Patch requests.
22044	NullFields []string `json:"-"`
22045}
22046
22047func (s *RegionListWarningData) MarshalJSON() ([]byte, error) {
22048	type NoMethod RegionListWarningData
22049	raw := NoMethod(*s)
22050	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22051}
22052
22053type RegionSetLabelsRequest struct {
22054	// LabelFingerprint: The fingerprint of the previous set of labels for
22055	// this resource, used to detect conflicts. The fingerprint is initially
22056	// generated by Compute Engine and changes after every request to modify
22057	// or update labels. You must always provide an up-to-date fingerprint
22058	// hash in order to update or change labels. Make a get() request to the
22059	// resource to get the latest fingerprint.
22060	LabelFingerprint string `json:"labelFingerprint,omitempty"`
22061
22062	// Labels: The labels to set for this resource.
22063	Labels map[string]string `json:"labels,omitempty"`
22064
22065	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
22066	// unconditionally include in API requests. By default, fields with
22067	// empty values are omitted from API requests. However, any non-pointer,
22068	// non-interface field appearing in ForceSendFields will be sent to the
22069	// server regardless of whether the field is empty or not. This may be
22070	// used to include empty fields in Patch requests.
22071	ForceSendFields []string `json:"-"`
22072
22073	// NullFields is a list of field names (e.g. "LabelFingerprint") to
22074	// include in API requests with the JSON null value. By default, fields
22075	// with empty values are omitted from API requests. However, any field
22076	// with an empty value appearing in NullFields will be sent to the
22077	// server as null. It is an error if a field in this list has a
22078	// non-empty value. This may be used to include null fields in Patch
22079	// requests.
22080	NullFields []string `json:"-"`
22081}
22082
22083func (s *RegionSetLabelsRequest) MarshalJSON() ([]byte, error) {
22084	type NoMethod RegionSetLabelsRequest
22085	raw := NoMethod(*s)
22086	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22087}
22088
22089type RegionSetPolicyRequest struct {
22090	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
22091	// Deprecated. Use 'policy' to specify bindings.
22092	Bindings []*Binding `json:"bindings,omitempty"`
22093
22094	// Etag: Flatten Policy to create a backward compatible wire-format.
22095	// Deprecated. Use 'policy' to specify the etag.
22096	Etag string `json:"etag,omitempty"`
22097
22098	// Policy: REQUIRED: The complete policy to be applied to the
22099	// 'resource'. The size of the policy is limited to a few 10s of KB. An
22100	// empty policy is in general a valid policy but certain services (like
22101	// Projects) might reject them.
22102	Policy *Policy `json:"policy,omitempty"`
22103
22104	// ForceSendFields is a list of field names (e.g. "Bindings") to
22105	// unconditionally include in API requests. By default, fields with
22106	// empty values are omitted from API requests. However, any non-pointer,
22107	// non-interface field appearing in ForceSendFields will be sent to the
22108	// server regardless of whether the field is empty or not. This may be
22109	// used to include empty fields in Patch requests.
22110	ForceSendFields []string `json:"-"`
22111
22112	// NullFields is a list of field names (e.g. "Bindings") to include in
22113	// API requests with the JSON null value. By default, fields with empty
22114	// values are omitted from API requests. However, any field with an
22115	// empty value appearing in NullFields will be sent to the server as
22116	// null. It is an error if a field in this list has a non-empty value.
22117	// This may be used to include null fields in Patch requests.
22118	NullFields []string `json:"-"`
22119}
22120
22121func (s *RegionSetPolicyRequest) MarshalJSON() ([]byte, error) {
22122	type NoMethod RegionSetPolicyRequest
22123	raw := NoMethod(*s)
22124	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22125}
22126
22127// ResourceCommitment: Commitment for a particular resource (a
22128// Commitment is composed of one or more of these).
22129type ResourceCommitment struct {
22130	// Amount: The amount of the resource purchased (in a type-dependent
22131	// unit, such as bytes). For vCPUs, this can just be an integer. For
22132	// memory, this must be provided in MB. Memory must be a multiple of 256
22133	// MB, with up to 6.5GB of memory per every vCPU.
22134	Amount int64 `json:"amount,omitempty,string"`
22135
22136	// Type: Type of resource for which this commitment applies. Possible
22137	// values are VCPU and MEMORY
22138	//
22139	// Possible values:
22140	//   "MEMORY"
22141	//   "UNSPECIFIED"
22142	//   "VCPU"
22143	Type string `json:"type,omitempty"`
22144
22145	// ForceSendFields is a list of field names (e.g. "Amount") to
22146	// unconditionally include in API requests. By default, fields with
22147	// empty values are omitted from API requests. However, any non-pointer,
22148	// non-interface field appearing in ForceSendFields will be sent to the
22149	// server regardless of whether the field is empty or not. This may be
22150	// used to include empty fields in Patch requests.
22151	ForceSendFields []string `json:"-"`
22152
22153	// NullFields is a list of field names (e.g. "Amount") to include in API
22154	// requests with the JSON null value. By default, fields with empty
22155	// values are omitted from API requests. However, any field with an
22156	// empty value appearing in NullFields will be sent to the server as
22157	// null. It is an error if a field in this list has a non-empty value.
22158	// This may be used to include null fields in Patch requests.
22159	NullFields []string `json:"-"`
22160}
22161
22162func (s *ResourceCommitment) MarshalJSON() ([]byte, error) {
22163	type NoMethod ResourceCommitment
22164	raw := NoMethod(*s)
22165	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22166}
22167
22168type ResourceGroupReference struct {
22169	// Group: A URI referencing one of the instance groups or network
22170	// endpoint groups listed in the backend service.
22171	Group string `json:"group,omitempty"`
22172
22173	// ForceSendFields is a list of field names (e.g. "Group") to
22174	// unconditionally include in API requests. By default, fields with
22175	// empty values are omitted from API requests. However, any non-pointer,
22176	// non-interface field appearing in ForceSendFields will be sent to the
22177	// server regardless of whether the field is empty or not. This may be
22178	// used to include empty fields in Patch requests.
22179	ForceSendFields []string `json:"-"`
22180
22181	// NullFields is a list of field names (e.g. "Group") to include in API
22182	// requests with the JSON null value. By default, fields with empty
22183	// values are omitted from API requests. However, any field with an
22184	// empty value appearing in NullFields will be sent to the server as
22185	// null. It is an error if a field in this list has a non-empty value.
22186	// This may be used to include null fields in Patch requests.
22187	NullFields []string `json:"-"`
22188}
22189
22190func (s *ResourceGroupReference) MarshalJSON() ([]byte, error) {
22191	type NoMethod ResourceGroupReference
22192	raw := NoMethod(*s)
22193	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22194}
22195
22196// Route: Represents a Route resource. A route specifies how certain
22197// packets should be handled by the network. Routes are associated with
22198// instances by tags and the set of routes for a particular instance is
22199// called its routing table.
22200//
22201// For each packet leaving an instance, the system searches that
22202// instance's routing table for a single best matching route. Routes
22203// match packets by destination IP address, preferring smaller or more
22204// specific ranges over larger ones. If there is a tie, the system
22205// selects the route with the smallest priority value. If there is still
22206// a tie, it uses the layer three and four packet headers to select just
22207// one of the remaining matching routes. The packet is then forwarded as
22208// specified by the nextHop field of the winning route - either to
22209// another instance destination, an instance gateway, or a Google
22210// Compute Engine-operated gateway.
22211//
22212// Packets that do not match any route in the sending instance's routing
22213// table are dropped. (== resource_for beta.routes ==) (== resource_for
22214// v1.routes ==)
22215type Route struct {
22216	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22217	// format.
22218	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22219
22220	// Description: An optional description of this resource. Provide this
22221	// property when you create the resource.
22222	Description string `json:"description,omitempty"`
22223
22224	// DestRange: The destination range of outgoing packets that this route
22225	// applies to. Only IPv4 is supported.
22226	DestRange string `json:"destRange,omitempty"`
22227
22228	// Id: [Output Only] The unique identifier for the resource. This
22229	// identifier is defined by the server.
22230	Id uint64 `json:"id,omitempty,string"`
22231
22232	// Kind: [Output Only] Type of this resource. Always compute#routes for
22233	// Route resources.
22234	Kind string `json:"kind,omitempty"`
22235
22236	// Name: Name of the resource. Provided by the client when the resource
22237	// is created. The name must be 1-63 characters long, and comply with
22238	// RFC1035. Specifically, the name must be 1-63 characters long and
22239	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
22240	// the first character must be a lowercase letter, and all following
22241	// characters must be a dash, lowercase letter, or digit, except the
22242	// last character, which cannot be a dash.
22243	Name string `json:"name,omitempty"`
22244
22245	// Network: Fully-qualified URL of the network that this route applies
22246	// to.
22247	Network string `json:"network,omitempty"`
22248
22249	// NextHopGateway: The URL to a gateway that should handle matching
22250	// packets. You can only specify the internet gateway using a full or
22251	// partial valid URL:
22252	// projects/<project-id>/global/gateways/default-internet-gateway
22253	NextHopGateway string `json:"nextHopGateway,omitempty"`
22254
22255	// NextHopInstance: The URL to an instance that should handle matching
22256	// packets. You can specify this as a full or partial URL. For
22257	// example:
22258	// https://www.googleapis.com/compute/v1/projects/project/zones/
22259	// zone/instances/
22260	NextHopInstance string `json:"nextHopInstance,omitempty"`
22261
22262	// NextHopIp: The network IP address of an instance that should handle
22263	// matching packets. Only IPv4 is supported.
22264	NextHopIp string `json:"nextHopIp,omitempty"`
22265
22266	// NextHopNetwork: The URL of the local network if it should handle
22267	// matching packets.
22268	NextHopNetwork string `json:"nextHopNetwork,omitempty"`
22269
22270	// NextHopPeering: [Output Only] The network peering name that should
22271	// handle matching packets, which should conform to RFC1035.
22272	NextHopPeering string `json:"nextHopPeering,omitempty"`
22273
22274	// NextHopVpnTunnel: The URL to a VpnTunnel that should handle matching
22275	// packets.
22276	NextHopVpnTunnel string `json:"nextHopVpnTunnel,omitempty"`
22277
22278	// Priority: The priority of this route. Priority is used to break ties
22279	// in cases where there is more than one matching route of equal prefix
22280	// length. In the case of two routes with equal prefix length, the one
22281	// with the lowest-numbered priority value wins. Default value is 1000.
22282	// Valid range is 0 through 65535.
22283	Priority int64 `json:"priority,omitempty"`
22284
22285	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
22286	// resource.
22287	SelfLink string `json:"selfLink,omitempty"`
22288
22289	// Tags: A list of instance tags to which this route applies.
22290	Tags []string `json:"tags,omitempty"`
22291
22292	// Warnings: [Output Only] If potential misconfigurations are detected
22293	// for this route, this field will be populated with warning messages.
22294	Warnings []*RouteWarnings `json:"warnings,omitempty"`
22295
22296	// ServerResponse contains the HTTP response code and headers from the
22297	// server.
22298	googleapi.ServerResponse `json:"-"`
22299
22300	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
22301	// to unconditionally include in API requests. By default, fields with
22302	// empty values are omitted from API requests. However, any non-pointer,
22303	// non-interface field appearing in ForceSendFields will be sent to the
22304	// server regardless of whether the field is empty or not. This may be
22305	// used to include empty fields in Patch requests.
22306	ForceSendFields []string `json:"-"`
22307
22308	// NullFields is a list of field names (e.g. "CreationTimestamp") to
22309	// include in API requests with the JSON null value. By default, fields
22310	// with empty values are omitted from API requests. However, any field
22311	// with an empty value appearing in NullFields will be sent to the
22312	// server as null. It is an error if a field in this list has a
22313	// non-empty value. This may be used to include null fields in Patch
22314	// requests.
22315	NullFields []string `json:"-"`
22316}
22317
22318func (s *Route) MarshalJSON() ([]byte, error) {
22319	type NoMethod Route
22320	raw := NoMethod(*s)
22321	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22322}
22323
22324type RouteWarnings struct {
22325	// Code: [Output Only] A warning code, if applicable. For example,
22326	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22327	// the response.
22328	//
22329	// Possible values:
22330	//   "CLEANUP_FAILED"
22331	//   "DEPRECATED_RESOURCE_USED"
22332	//   "DEPRECATED_TYPE_USED"
22333	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22334	//   "EXPERIMENTAL_TYPE_USED"
22335	//   "EXTERNAL_API_WARNING"
22336	//   "FIELD_VALUE_OVERRIDEN"
22337	//   "INJECTED_KERNELS_DEPRECATED"
22338	//   "MISSING_TYPE_DEPENDENCY"
22339	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22340	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22341	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22342	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22343	//   "NEXT_HOP_NOT_RUNNING"
22344	//   "NOT_CRITICAL_ERROR"
22345	//   "NO_RESULTS_ON_PAGE"
22346	//   "REQUIRED_TOS_AGREEMENT"
22347	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22348	//   "RESOURCE_NOT_DELETED"
22349	//   "SCHEMA_VALIDATION_IGNORED"
22350	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22351	//   "UNDECLARED_PROPERTIES"
22352	//   "UNREACHABLE"
22353	Code string `json:"code,omitempty"`
22354
22355	// Data: [Output Only] Metadata about this warning in key: value format.
22356	// For example:
22357	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22358	Data []*RouteWarningsData `json:"data,omitempty"`
22359
22360	// Message: [Output Only] A human-readable description of the warning
22361	// code.
22362	Message string `json:"message,omitempty"`
22363
22364	// ForceSendFields is a list of field names (e.g. "Code") 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. "Code") 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 *RouteWarnings) MarshalJSON() ([]byte, error) {
22382	type NoMethod RouteWarnings
22383	raw := NoMethod(*s)
22384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22385}
22386
22387type RouteWarningsData struct {
22388	// Key: [Output Only] A key that provides more detail on the warning
22389	// being returned. For example, for warnings where there are no results
22390	// in a list request for a particular zone, this key might be scope and
22391	// the key value might be the zone name. Other examples might be a key
22392	// indicating a deprecated resource and a suggested replacement, or a
22393	// warning about invalid network settings (for example, if an instance
22394	// attempts to perform IP forwarding but is not enabled for IP
22395	// forwarding).
22396	Key string `json:"key,omitempty"`
22397
22398	// Value: [Output Only] A warning data value corresponding to the key.
22399	Value string `json:"value,omitempty"`
22400
22401	// ForceSendFields is a list of field names (e.g. "Key") to
22402	// unconditionally include in API requests. By default, fields with
22403	// empty values are omitted from API requests. However, any non-pointer,
22404	// non-interface field appearing in ForceSendFields will be sent to the
22405	// server regardless of whether the field is empty or not. This may be
22406	// used to include empty fields in Patch requests.
22407	ForceSendFields []string `json:"-"`
22408
22409	// NullFields is a list of field names (e.g. "Key") to include in API
22410	// requests with the JSON null value. By default, fields with empty
22411	// values are omitted from API requests. However, any field with an
22412	// empty value appearing in NullFields will be sent to the server as
22413	// null. It is an error if a field in this list has a non-empty value.
22414	// This may be used to include null fields in Patch requests.
22415	NullFields []string `json:"-"`
22416}
22417
22418func (s *RouteWarningsData) MarshalJSON() ([]byte, error) {
22419	type NoMethod RouteWarningsData
22420	raw := NoMethod(*s)
22421	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22422}
22423
22424// RouteList: Contains a list of Route resources.
22425type RouteList struct {
22426	// Id: [Output Only] Unique identifier for the resource; defined by the
22427	// server.
22428	Id string `json:"id,omitempty"`
22429
22430	// Items: A list of Route resources.
22431	Items []*Route `json:"items,omitempty"`
22432
22433	// Kind: Type of resource.
22434	Kind string `json:"kind,omitempty"`
22435
22436	// NextPageToken: [Output Only] This token allows you to get the next
22437	// page of results for list requests. If the number of results is larger
22438	// than maxResults, use the nextPageToken as a value for the query
22439	// parameter pageToken in the next list request. Subsequent list
22440	// requests will have their own nextPageToken to continue paging through
22441	// the results.
22442	NextPageToken string `json:"nextPageToken,omitempty"`
22443
22444	// SelfLink: [Output Only] Server-defined URL for this resource.
22445	SelfLink string `json:"selfLink,omitempty"`
22446
22447	// Warning: [Output Only] Informational warning message.
22448	Warning *RouteListWarning `json:"warning,omitempty"`
22449
22450	// ServerResponse contains the HTTP response code and headers from the
22451	// server.
22452	googleapi.ServerResponse `json:"-"`
22453
22454	// ForceSendFields is a list of field names (e.g. "Id") to
22455	// unconditionally include in API requests. By default, fields with
22456	// empty values are omitted from API requests. However, any non-pointer,
22457	// non-interface field appearing in ForceSendFields will be sent to the
22458	// server regardless of whether the field is empty or not. This may be
22459	// used to include empty fields in Patch requests.
22460	ForceSendFields []string `json:"-"`
22461
22462	// NullFields is a list of field names (e.g. "Id") to include in API
22463	// requests with the JSON null value. By default, fields with empty
22464	// values are omitted from API requests. However, any field with an
22465	// empty value appearing in NullFields will be sent to the server as
22466	// null. It is an error if a field in this list has a non-empty value.
22467	// This may be used to include null fields in Patch requests.
22468	NullFields []string `json:"-"`
22469}
22470
22471func (s *RouteList) MarshalJSON() ([]byte, error) {
22472	type NoMethod RouteList
22473	raw := NoMethod(*s)
22474	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22475}
22476
22477// RouteListWarning: [Output Only] Informational warning message.
22478type RouteListWarning struct {
22479	// Code: [Output Only] A warning code, if applicable. For example,
22480	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22481	// the response.
22482	//
22483	// Possible values:
22484	//   "CLEANUP_FAILED"
22485	//   "DEPRECATED_RESOURCE_USED"
22486	//   "DEPRECATED_TYPE_USED"
22487	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22488	//   "EXPERIMENTAL_TYPE_USED"
22489	//   "EXTERNAL_API_WARNING"
22490	//   "FIELD_VALUE_OVERRIDEN"
22491	//   "INJECTED_KERNELS_DEPRECATED"
22492	//   "MISSING_TYPE_DEPENDENCY"
22493	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22494	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22495	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22496	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22497	//   "NEXT_HOP_NOT_RUNNING"
22498	//   "NOT_CRITICAL_ERROR"
22499	//   "NO_RESULTS_ON_PAGE"
22500	//   "REQUIRED_TOS_AGREEMENT"
22501	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22502	//   "RESOURCE_NOT_DELETED"
22503	//   "SCHEMA_VALIDATION_IGNORED"
22504	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22505	//   "UNDECLARED_PROPERTIES"
22506	//   "UNREACHABLE"
22507	Code string `json:"code,omitempty"`
22508
22509	// Data: [Output Only] Metadata about this warning in key: value format.
22510	// For example:
22511	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22512	Data []*RouteListWarningData `json:"data,omitempty"`
22513
22514	// Message: [Output Only] A human-readable description of the warning
22515	// code.
22516	Message string `json:"message,omitempty"`
22517
22518	// ForceSendFields is a list of field names (e.g. "Code") to
22519	// unconditionally include in API requests. By default, fields with
22520	// empty values are omitted from API requests. However, any non-pointer,
22521	// non-interface field appearing in ForceSendFields will be sent to the
22522	// server regardless of whether the field is empty or not. This may be
22523	// used to include empty fields in Patch requests.
22524	ForceSendFields []string `json:"-"`
22525
22526	// NullFields is a list of field names (e.g. "Code") to include in API
22527	// requests with the JSON null value. By default, fields with empty
22528	// values are omitted from API requests. However, any field with an
22529	// empty value appearing in NullFields will be sent to the server as
22530	// null. It is an error if a field in this list has a non-empty value.
22531	// This may be used to include null fields in Patch requests.
22532	NullFields []string `json:"-"`
22533}
22534
22535func (s *RouteListWarning) MarshalJSON() ([]byte, error) {
22536	type NoMethod RouteListWarning
22537	raw := NoMethod(*s)
22538	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22539}
22540
22541type RouteListWarningData struct {
22542	// Key: [Output Only] A key that provides more detail on the warning
22543	// being returned. For example, for warnings where there are no results
22544	// in a list request for a particular zone, this key might be scope and
22545	// the key value might be the zone name. Other examples might be a key
22546	// indicating a deprecated resource and a suggested replacement, or a
22547	// warning about invalid network settings (for example, if an instance
22548	// attempts to perform IP forwarding but is not enabled for IP
22549	// forwarding).
22550	Key string `json:"key,omitempty"`
22551
22552	// Value: [Output Only] A warning data value corresponding to the key.
22553	Value string `json:"value,omitempty"`
22554
22555	// ForceSendFields is a list of field names (e.g. "Key") to
22556	// unconditionally include in API requests. By default, fields with
22557	// empty values are omitted from API requests. However, any non-pointer,
22558	// non-interface field appearing in ForceSendFields will be sent to the
22559	// server regardless of whether the field is empty or not. This may be
22560	// used to include empty fields in Patch requests.
22561	ForceSendFields []string `json:"-"`
22562
22563	// NullFields is a list of field names (e.g. "Key") to include in API
22564	// requests with the JSON null value. By default, fields with empty
22565	// values are omitted from API requests. However, any field with an
22566	// empty value appearing in NullFields will be sent to the server as
22567	// null. It is an error if a field in this list has a non-empty value.
22568	// This may be used to include null fields in Patch requests.
22569	NullFields []string `json:"-"`
22570}
22571
22572func (s *RouteListWarningData) MarshalJSON() ([]byte, error) {
22573	type NoMethod RouteListWarningData
22574	raw := NoMethod(*s)
22575	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22576}
22577
22578// Router: Router resource.
22579type Router struct {
22580	// Bgp: BGP information specific to this router.
22581	Bgp *RouterBgp `json:"bgp,omitempty"`
22582
22583	// BgpPeers: BGP information that needs to be configured into the
22584	// routing stack to establish the BGP peering. It must specify peer ASN
22585	// and either interface name, IP, or peer IP. Please refer to RFC4273.
22586	BgpPeers []*RouterBgpPeer `json:"bgpPeers,omitempty"`
22587
22588	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22589	// format.
22590	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22591
22592	// Description: An optional description of this resource. Provide this
22593	// property when you create the resource.
22594	Description string `json:"description,omitempty"`
22595
22596	// Id: [Output Only] The unique identifier for the resource. This
22597	// identifier is defined by the server.
22598	Id uint64 `json:"id,omitempty,string"`
22599
22600	// Interfaces: Router interfaces. Each interface requires either one
22601	// linked resource (e.g. linkedVpnTunnel), or IP address and IP address
22602	// range (e.g. ipRange), or both.
22603	Interfaces []*RouterInterface `json:"interfaces,omitempty"`
22604
22605	// Kind: [Output Only] Type of resource. Always compute#router for
22606	// routers.
22607	Kind string `json:"kind,omitempty"`
22608
22609	// Name: Name of the resource. Provided by the client when the resource
22610	// is created. The name must be 1-63 characters long, and comply with
22611	// RFC1035. Specifically, the name must be 1-63 characters long and
22612	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
22613	// the first character must be a lowercase letter, and all following
22614	// characters must be a dash, lowercase letter, or digit, except the
22615	// last character, which cannot be a dash.
22616	Name string `json:"name,omitempty"`
22617
22618	// Nats: A list of Nat services created in this router.
22619	Nats []*RouterNat `json:"nats,omitempty"`
22620
22621	// Network: URI of the network to which this router belongs.
22622	Network string `json:"network,omitempty"`
22623
22624	// Region: [Output Only] URI of the region where the router resides. You
22625	// must specify this field as part of the HTTP request URL. It is not
22626	// settable as a field in the request body.
22627	Region string `json:"region,omitempty"`
22628
22629	// SelfLink: [Output Only] Server-defined URL for the resource.
22630	SelfLink string `json:"selfLink,omitempty"`
22631
22632	// ServerResponse contains the HTTP response code and headers from the
22633	// server.
22634	googleapi.ServerResponse `json:"-"`
22635
22636	// ForceSendFields is a list of field names (e.g. "Bgp") to
22637	// unconditionally include in API requests. By default, fields with
22638	// empty values are omitted from API requests. However, any non-pointer,
22639	// non-interface field appearing in ForceSendFields will be sent to the
22640	// server regardless of whether the field is empty or not. This may be
22641	// used to include empty fields in Patch requests.
22642	ForceSendFields []string `json:"-"`
22643
22644	// NullFields is a list of field names (e.g. "Bgp") to include in API
22645	// requests with the JSON null value. By default, fields with empty
22646	// values are omitted from API requests. However, any field with an
22647	// empty value appearing in NullFields will be sent to the server as
22648	// null. It is an error if a field in this list has a non-empty value.
22649	// This may be used to include null fields in Patch requests.
22650	NullFields []string `json:"-"`
22651}
22652
22653func (s *Router) MarshalJSON() ([]byte, error) {
22654	type NoMethod Router
22655	raw := NoMethod(*s)
22656	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22657}
22658
22659// RouterAdvertisedIpRange: Description-tagged IP ranges for the router
22660// to advertise.
22661type RouterAdvertisedIpRange struct {
22662	// Description: User-specified description for the IP range.
22663	Description string `json:"description,omitempty"`
22664
22665	// Range: The IP range to advertise. The value must be a CIDR-formatted
22666	// string.
22667	Range string `json:"range,omitempty"`
22668
22669	// ForceSendFields is a list of field names (e.g. "Description") to
22670	// unconditionally include in API requests. By default, fields with
22671	// empty values are omitted from API requests. However, any non-pointer,
22672	// non-interface field appearing in ForceSendFields will be sent to the
22673	// server regardless of whether the field is empty or not. This may be
22674	// used to include empty fields in Patch requests.
22675	ForceSendFields []string `json:"-"`
22676
22677	// NullFields is a list of field names (e.g. "Description") to include
22678	// in API requests with the JSON null value. By default, fields with
22679	// empty values are omitted from API requests. However, any field with
22680	// an empty value appearing in NullFields will be sent to the server as
22681	// null. It is an error if a field in this list has a non-empty value.
22682	// This may be used to include null fields in Patch requests.
22683	NullFields []string `json:"-"`
22684}
22685
22686func (s *RouterAdvertisedIpRange) MarshalJSON() ([]byte, error) {
22687	type NoMethod RouterAdvertisedIpRange
22688	raw := NoMethod(*s)
22689	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22690}
22691
22692// RouterAggregatedList: Contains a list of routers.
22693type RouterAggregatedList struct {
22694	// Id: [Output Only] Unique identifier for the resource; defined by the
22695	// server.
22696	Id string `json:"id,omitempty"`
22697
22698	// Items: A list of Router resources.
22699	Items map[string]RoutersScopedList `json:"items,omitempty"`
22700
22701	// Kind: Type of resource.
22702	Kind string `json:"kind,omitempty"`
22703
22704	// NextPageToken: [Output Only] This token allows you to get the next
22705	// page of results for list requests. If the number of results is larger
22706	// than maxResults, use the nextPageToken as a value for the query
22707	// parameter pageToken in the next list request. Subsequent list
22708	// requests will have their own nextPageToken to continue paging through
22709	// the results.
22710	NextPageToken string `json:"nextPageToken,omitempty"`
22711
22712	// SelfLink: [Output Only] Server-defined URL for this resource.
22713	SelfLink string `json:"selfLink,omitempty"`
22714
22715	// Warning: [Output Only] Informational warning message.
22716	Warning *RouterAggregatedListWarning `json:"warning,omitempty"`
22717
22718	// ServerResponse contains the HTTP response code and headers from the
22719	// server.
22720	googleapi.ServerResponse `json:"-"`
22721
22722	// ForceSendFields is a list of field names (e.g. "Id") to
22723	// unconditionally include in API requests. By default, fields with
22724	// empty values are omitted from API requests. However, any non-pointer,
22725	// non-interface field appearing in ForceSendFields will be sent to the
22726	// server regardless of whether the field is empty or not. This may be
22727	// used to include empty fields in Patch requests.
22728	ForceSendFields []string `json:"-"`
22729
22730	// NullFields is a list of field names (e.g. "Id") to include in API
22731	// requests with the JSON null value. By default, fields with empty
22732	// values are omitted from API requests. However, any field with an
22733	// empty value appearing in NullFields will be sent to the server as
22734	// null. It is an error if a field in this list has a non-empty value.
22735	// This may be used to include null fields in Patch requests.
22736	NullFields []string `json:"-"`
22737}
22738
22739func (s *RouterAggregatedList) MarshalJSON() ([]byte, error) {
22740	type NoMethod RouterAggregatedList
22741	raw := NoMethod(*s)
22742	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22743}
22744
22745// RouterAggregatedListWarning: [Output Only] Informational warning
22746// message.
22747type RouterAggregatedListWarning struct {
22748	// Code: [Output Only] A warning code, if applicable. For example,
22749	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22750	// the response.
22751	//
22752	// Possible values:
22753	//   "CLEANUP_FAILED"
22754	//   "DEPRECATED_RESOURCE_USED"
22755	//   "DEPRECATED_TYPE_USED"
22756	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22757	//   "EXPERIMENTAL_TYPE_USED"
22758	//   "EXTERNAL_API_WARNING"
22759	//   "FIELD_VALUE_OVERRIDEN"
22760	//   "INJECTED_KERNELS_DEPRECATED"
22761	//   "MISSING_TYPE_DEPENDENCY"
22762	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22763	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22764	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22765	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22766	//   "NEXT_HOP_NOT_RUNNING"
22767	//   "NOT_CRITICAL_ERROR"
22768	//   "NO_RESULTS_ON_PAGE"
22769	//   "REQUIRED_TOS_AGREEMENT"
22770	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22771	//   "RESOURCE_NOT_DELETED"
22772	//   "SCHEMA_VALIDATION_IGNORED"
22773	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22774	//   "UNDECLARED_PROPERTIES"
22775	//   "UNREACHABLE"
22776	Code string `json:"code,omitempty"`
22777
22778	// Data: [Output Only] Metadata about this warning in key: value format.
22779	// For example:
22780	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22781	Data []*RouterAggregatedListWarningData `json:"data,omitempty"`
22782
22783	// Message: [Output Only] A human-readable description of the warning
22784	// code.
22785	Message string `json:"message,omitempty"`
22786
22787	// ForceSendFields is a list of field names (e.g. "Code") to
22788	// unconditionally include in API requests. By default, fields with
22789	// empty values are omitted from API requests. However, any non-pointer,
22790	// non-interface field appearing in ForceSendFields will be sent to the
22791	// server regardless of whether the field is empty or not. This may be
22792	// used to include empty fields in Patch requests.
22793	ForceSendFields []string `json:"-"`
22794
22795	// NullFields is a list of field names (e.g. "Code") to include in API
22796	// requests with the JSON null value. By default, fields with empty
22797	// values are omitted from API requests. However, any field with an
22798	// empty value appearing in NullFields will be sent to the server as
22799	// null. It is an error if a field in this list has a non-empty value.
22800	// This may be used to include null fields in Patch requests.
22801	NullFields []string `json:"-"`
22802}
22803
22804func (s *RouterAggregatedListWarning) MarshalJSON() ([]byte, error) {
22805	type NoMethod RouterAggregatedListWarning
22806	raw := NoMethod(*s)
22807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22808}
22809
22810type RouterAggregatedListWarningData struct {
22811	// Key: [Output Only] A key that provides more detail on the warning
22812	// being returned. For example, for warnings where there are no results
22813	// in a list request for a particular zone, this key might be scope and
22814	// the key value might be the zone name. Other examples might be a key
22815	// indicating a deprecated resource and a suggested replacement, or a
22816	// warning about invalid network settings (for example, if an instance
22817	// attempts to perform IP forwarding but is not enabled for IP
22818	// forwarding).
22819	Key string `json:"key,omitempty"`
22820
22821	// Value: [Output Only] A warning data value corresponding to the key.
22822	Value string `json:"value,omitempty"`
22823
22824	// ForceSendFields is a list of field names (e.g. "Key") to
22825	// unconditionally include in API requests. By default, fields with
22826	// empty values are omitted from API requests. However, any non-pointer,
22827	// non-interface field appearing in ForceSendFields will be sent to the
22828	// server regardless of whether the field is empty or not. This may be
22829	// used to include empty fields in Patch requests.
22830	ForceSendFields []string `json:"-"`
22831
22832	// NullFields is a list of field names (e.g. "Key") to include in API
22833	// requests with the JSON null value. By default, fields with empty
22834	// values are omitted from API requests. However, any field with an
22835	// empty value appearing in NullFields will be sent to the server as
22836	// null. It is an error if a field in this list has a non-empty value.
22837	// This may be used to include null fields in Patch requests.
22838	NullFields []string `json:"-"`
22839}
22840
22841func (s *RouterAggregatedListWarningData) MarshalJSON() ([]byte, error) {
22842	type NoMethod RouterAggregatedListWarningData
22843	raw := NoMethod(*s)
22844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22845}
22846
22847type RouterBgp struct {
22848	// AdvertiseMode: User-specified flag to indicate which mode to use for
22849	// advertisement.
22850	//
22851	// Possible values:
22852	//   "CUSTOM"
22853	//   "DEFAULT"
22854	AdvertiseMode string `json:"advertiseMode,omitempty"`
22855
22856	// AdvertisedGroups: User-specified list of prefix groups to advertise
22857	// in custom mode. This field can only be populated if advertise_mode is
22858	// CUSTOM and is advertised to all peers of the router. These groups
22859	// will be advertised in addition to any specified prefixes. Leave this
22860	// field blank to advertise no custom groups.
22861	//
22862	// Possible values:
22863	//   "ALL_SUBNETS"
22864	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
22865
22866	// AdvertisedIpRanges: User-specified list of individual IP ranges to
22867	// advertise in custom mode. This field can only be populated if
22868	// advertise_mode is CUSTOM and is advertised to all peers of the
22869	// router. These IP ranges will be advertised in addition to any
22870	// specified groups. Leave this field blank to advertise no custom IP
22871	// ranges.
22872	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
22873
22874	// Asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996
22875	// private ASN, either 16-bit or 32-bit. The value will be fixed for
22876	// this router resource. All VPN tunnels that link to this router will
22877	// have the same local ASN.
22878	Asn int64 `json:"asn,omitempty"`
22879
22880	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
22881	// unconditionally include in API requests. By default, fields with
22882	// empty values are omitted from API requests. However, any non-pointer,
22883	// non-interface field appearing in ForceSendFields will be sent to the
22884	// server regardless of whether the field is empty or not. This may be
22885	// used to include empty fields in Patch requests.
22886	ForceSendFields []string `json:"-"`
22887
22888	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
22889	// in API requests with the JSON null value. By default, fields with
22890	// empty values are omitted from API requests. However, any field with
22891	// an empty value appearing in NullFields will be sent to the server as
22892	// null. It is an error if a field in this list has a non-empty value.
22893	// This may be used to include null fields in Patch requests.
22894	NullFields []string `json:"-"`
22895}
22896
22897func (s *RouterBgp) MarshalJSON() ([]byte, error) {
22898	type NoMethod RouterBgp
22899	raw := NoMethod(*s)
22900	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22901}
22902
22903type RouterBgpPeer struct {
22904	// AdvertiseMode: User-specified flag to indicate which mode to use for
22905	// advertisement.
22906	//
22907	// Possible values:
22908	//   "CUSTOM"
22909	//   "DEFAULT"
22910	AdvertiseMode string `json:"advertiseMode,omitempty"`
22911
22912	// AdvertisedGroups: User-specified list of prefix groups to advertise
22913	// in custom mode. This field can only be populated if advertise_mode is
22914	// CUSTOM and overrides the list defined for the router (in Bgp
22915	// message). These groups will be advertised in addition to any
22916	// specified prefixes. Leave this field blank to advertise no custom
22917	// groups.
22918	//
22919	// Possible values:
22920	//   "ALL_SUBNETS"
22921	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
22922
22923	// AdvertisedIpRanges: User-specified list of individual IP ranges to
22924	// advertise in custom mode. This field can only be populated if
22925	// advertise_mode is CUSTOM and overrides the list defined for the
22926	// router (in Bgp message). These IP ranges will be advertised in
22927	// addition to any specified groups. Leave this field blank to advertise
22928	// no custom IP ranges.
22929	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
22930
22931	// AdvertisedRoutePriority: The priority of routes advertised to this
22932	// BGP peer. In the case where there is more than one matching route of
22933	// maximum length, the routes with lowest priority value win.
22934	AdvertisedRoutePriority int64 `json:"advertisedRoutePriority,omitempty"`
22935
22936	// InterfaceName: Name of the interface the BGP peer is associated with.
22937	InterfaceName string `json:"interfaceName,omitempty"`
22938
22939	// IpAddress: IP address of the interface inside Google Cloud Platform.
22940	// Only IPv4 is supported.
22941	IpAddress string `json:"ipAddress,omitempty"`
22942
22943	// ManagementType: [Output Only] The resource that configures and
22944	// manages this BGP peer. MANAGED_BY_USER is the default value and can
22945	// be managed by you or other users; MANAGED_BY_ATTACHMENT is a BGP peer
22946	// that is configured and managed by Cloud Interconnect, specifically by
22947	// an InterconnectAttachment of type PARTNER. Google will automatically
22948	// create, update, and delete this type of BGP peer when the PARTNER
22949	// InterconnectAttachment is created, updated, or deleted.
22950	//
22951	// Possible values:
22952	//   "MANAGED_BY_ATTACHMENT"
22953	//   "MANAGED_BY_USER"
22954	ManagementType string `json:"managementType,omitempty"`
22955
22956	// Name: Name of this BGP peer. The name must be 1-63 characters long
22957	// and comply with RFC1035.
22958	Name string `json:"name,omitempty"`
22959
22960	// PeerAsn: Peer BGP Autonomous System Number (ASN). For VPN use case,
22961	// this value can be different for every tunnel.
22962	PeerAsn int64 `json:"peerAsn,omitempty"`
22963
22964	// PeerIpAddress: IP address of the BGP interface outside Google cloud.
22965	// Only IPv4 is supported.
22966	PeerIpAddress string `json:"peerIpAddress,omitempty"`
22967
22968	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
22969	// unconditionally include in API requests. By default, fields with
22970	// empty values are omitted from API requests. However, any non-pointer,
22971	// non-interface field appearing in ForceSendFields will be sent to the
22972	// server regardless of whether the field is empty or not. This may be
22973	// used to include empty fields in Patch requests.
22974	ForceSendFields []string `json:"-"`
22975
22976	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
22977	// in API requests with the JSON null value. By default, fields with
22978	// empty values are omitted from API requests. However, any field with
22979	// an empty value appearing in NullFields will be sent to the server as
22980	// null. It is an error if a field in this list has a non-empty value.
22981	// This may be used to include null fields in Patch requests.
22982	NullFields []string `json:"-"`
22983}
22984
22985func (s *RouterBgpPeer) MarshalJSON() ([]byte, error) {
22986	type NoMethod RouterBgpPeer
22987	raw := NoMethod(*s)
22988	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22989}
22990
22991type RouterInterface struct {
22992	// IpRange: IP address and range of the interface. The IP range must be
22993	// in the RFC3927 link-local IP space. The value must be a
22994	// CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not
22995	// truncate the address as it represents the IP address of the
22996	// interface.
22997	IpRange string `json:"ipRange,omitempty"`
22998
22999	// LinkedInterconnectAttachment: URI of the linked interconnect
23000	// attachment. It must be in the same region as the router. Each
23001	// interface can have at most one linked resource and it could either be
23002	// a VPN Tunnel or an interconnect attachment.
23003	LinkedInterconnectAttachment string `json:"linkedInterconnectAttachment,omitempty"`
23004
23005	// LinkedVpnTunnel: URI of the linked VPN tunnel. It must be in the same
23006	// region as the router. Each interface can have at most one linked
23007	// resource and it could either be a VPN Tunnel or an interconnect
23008	// attachment.
23009	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
23010
23011	// ManagementType: [Output Only] The resource that configures and
23012	// manages this interface. MANAGED_BY_USER is the default value and can
23013	// be managed by you or other users; MANAGED_BY_ATTACHMENT is an
23014	// interface that is configured and managed by Cloud Interconnect,
23015	// specifically by an InterconnectAttachment of type PARTNER. Google
23016	// will automatically create, update, and delete this type of interface
23017	// when the PARTNER InterconnectAttachment is created, updated, or
23018	// deleted.
23019	//
23020	// Possible values:
23021	//   "MANAGED_BY_ATTACHMENT"
23022	//   "MANAGED_BY_USER"
23023	ManagementType string `json:"managementType,omitempty"`
23024
23025	// Name: Name of this interface entry. The name must be 1-63 characters
23026	// long and comply with RFC1035.
23027	Name string `json:"name,omitempty"`
23028
23029	// ForceSendFields is a list of field names (e.g. "IpRange") to
23030	// unconditionally include in API requests. By default, fields with
23031	// empty values are omitted from API requests. However, any non-pointer,
23032	// non-interface field appearing in ForceSendFields will be sent to the
23033	// server regardless of whether the field is empty or not. This may be
23034	// used to include empty fields in Patch requests.
23035	ForceSendFields []string `json:"-"`
23036
23037	// NullFields is a list of field names (e.g. "IpRange") to include in
23038	// API requests with the JSON null value. By default, fields with empty
23039	// values are omitted from API requests. However, any field with an
23040	// empty value appearing in NullFields will be sent to the server as
23041	// null. It is an error if a field in this list has a non-empty value.
23042	// This may be used to include null fields in Patch requests.
23043	NullFields []string `json:"-"`
23044}
23045
23046func (s *RouterInterface) MarshalJSON() ([]byte, error) {
23047	type NoMethod RouterInterface
23048	raw := NoMethod(*s)
23049	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23050}
23051
23052// RouterList: Contains a list of Router resources.
23053type RouterList struct {
23054	// Id: [Output Only] Unique identifier for the resource; defined by the
23055	// server.
23056	Id string `json:"id,omitempty"`
23057
23058	// Items: A list of Router resources.
23059	Items []*Router `json:"items,omitempty"`
23060
23061	// Kind: [Output Only] Type of resource. Always compute#router for
23062	// routers.
23063	Kind string `json:"kind,omitempty"`
23064
23065	// NextPageToken: [Output Only] This token allows you to get the next
23066	// page of results for list requests. If the number of results is larger
23067	// than maxResults, use the nextPageToken as a value for the query
23068	// parameter pageToken in the next list request. Subsequent list
23069	// requests will have their own nextPageToken to continue paging through
23070	// the results.
23071	NextPageToken string `json:"nextPageToken,omitempty"`
23072
23073	// SelfLink: [Output Only] Server-defined URL for this resource.
23074	SelfLink string `json:"selfLink,omitempty"`
23075
23076	// Warning: [Output Only] Informational warning message.
23077	Warning *RouterListWarning `json:"warning,omitempty"`
23078
23079	// ServerResponse contains the HTTP response code and headers from the
23080	// server.
23081	googleapi.ServerResponse `json:"-"`
23082
23083	// ForceSendFields is a list of field names (e.g. "Id") to
23084	// unconditionally include in API requests. By default, fields with
23085	// empty values are omitted from API requests. However, any non-pointer,
23086	// non-interface field appearing in ForceSendFields will be sent to the
23087	// server regardless of whether the field is empty or not. This may be
23088	// used to include empty fields in Patch requests.
23089	ForceSendFields []string `json:"-"`
23090
23091	// NullFields is a list of field names (e.g. "Id") to include in API
23092	// requests with the JSON null value. By default, fields with empty
23093	// values are omitted from API requests. However, any field with an
23094	// empty value appearing in NullFields will be sent to the server as
23095	// null. It is an error if a field in this list has a non-empty value.
23096	// This may be used to include null fields in Patch requests.
23097	NullFields []string `json:"-"`
23098}
23099
23100func (s *RouterList) MarshalJSON() ([]byte, error) {
23101	type NoMethod RouterList
23102	raw := NoMethod(*s)
23103	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23104}
23105
23106// RouterListWarning: [Output Only] Informational warning message.
23107type RouterListWarning struct {
23108	// Code: [Output Only] A warning code, if applicable. For example,
23109	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23110	// the response.
23111	//
23112	// Possible values:
23113	//   "CLEANUP_FAILED"
23114	//   "DEPRECATED_RESOURCE_USED"
23115	//   "DEPRECATED_TYPE_USED"
23116	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23117	//   "EXPERIMENTAL_TYPE_USED"
23118	//   "EXTERNAL_API_WARNING"
23119	//   "FIELD_VALUE_OVERRIDEN"
23120	//   "INJECTED_KERNELS_DEPRECATED"
23121	//   "MISSING_TYPE_DEPENDENCY"
23122	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23123	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23124	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23125	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23126	//   "NEXT_HOP_NOT_RUNNING"
23127	//   "NOT_CRITICAL_ERROR"
23128	//   "NO_RESULTS_ON_PAGE"
23129	//   "REQUIRED_TOS_AGREEMENT"
23130	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23131	//   "RESOURCE_NOT_DELETED"
23132	//   "SCHEMA_VALIDATION_IGNORED"
23133	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23134	//   "UNDECLARED_PROPERTIES"
23135	//   "UNREACHABLE"
23136	Code string `json:"code,omitempty"`
23137
23138	// Data: [Output Only] Metadata about this warning in key: value format.
23139	// For example:
23140	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23141	Data []*RouterListWarningData `json:"data,omitempty"`
23142
23143	// Message: [Output Only] A human-readable description of the warning
23144	// code.
23145	Message string `json:"message,omitempty"`
23146
23147	// ForceSendFields is a list of field names (e.g. "Code") to
23148	// unconditionally include in API requests. By default, fields with
23149	// empty values are omitted from API requests. However, any non-pointer,
23150	// non-interface field appearing in ForceSendFields will be sent to the
23151	// server regardless of whether the field is empty or not. This may be
23152	// used to include empty fields in Patch requests.
23153	ForceSendFields []string `json:"-"`
23154
23155	// NullFields is a list of field names (e.g. "Code") to include in API
23156	// requests with the JSON null value. By default, fields with empty
23157	// values are omitted from API requests. However, any field with an
23158	// empty value appearing in NullFields will be sent to the server as
23159	// null. It is an error if a field in this list has a non-empty value.
23160	// This may be used to include null fields in Patch requests.
23161	NullFields []string `json:"-"`
23162}
23163
23164func (s *RouterListWarning) MarshalJSON() ([]byte, error) {
23165	type NoMethod RouterListWarning
23166	raw := NoMethod(*s)
23167	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23168}
23169
23170type RouterListWarningData struct {
23171	// Key: [Output Only] A key that provides more detail on the warning
23172	// being returned. For example, for warnings where there are no results
23173	// in a list request for a particular zone, this key might be scope and
23174	// the key value might be the zone name. Other examples might be a key
23175	// indicating a deprecated resource and a suggested replacement, or a
23176	// warning about invalid network settings (for example, if an instance
23177	// attempts to perform IP forwarding but is not enabled for IP
23178	// forwarding).
23179	Key string `json:"key,omitempty"`
23180
23181	// Value: [Output Only] A warning data value corresponding to the key.
23182	Value string `json:"value,omitempty"`
23183
23184	// ForceSendFields is a list of field names (e.g. "Key") to
23185	// unconditionally include in API requests. By default, fields with
23186	// empty values are omitted from API requests. However, any non-pointer,
23187	// non-interface field appearing in ForceSendFields will be sent to the
23188	// server regardless of whether the field is empty or not. This may be
23189	// used to include empty fields in Patch requests.
23190	ForceSendFields []string `json:"-"`
23191
23192	// NullFields is a list of field names (e.g. "Key") to include in API
23193	// requests with the JSON null value. By default, fields with empty
23194	// values are omitted from API requests. However, any field with an
23195	// empty value appearing in NullFields will be sent to the server as
23196	// null. It is an error if a field in this list has a non-empty value.
23197	// This may be used to include null fields in Patch requests.
23198	NullFields []string `json:"-"`
23199}
23200
23201func (s *RouterListWarningData) MarshalJSON() ([]byte, error) {
23202	type NoMethod RouterListWarningData
23203	raw := NoMethod(*s)
23204	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23205}
23206
23207// RouterNat: Represents a Nat resource. It enables the VMs within the
23208// specified subnetworks to access Internet without external IP
23209// addresses. It specifies a list of subnetworks (and the ranges within)
23210// that want to use NAT. Customers can also provide the external IPs
23211// that would be used for NAT. GCP would auto-allocate ephemeral IPs if
23212// no external IPs are provided.
23213type RouterNat struct {
23214	// IcmpIdleTimeoutSec: Timeout (in seconds) for ICMP connections.
23215	// Defaults to 30s if not set.
23216	IcmpIdleTimeoutSec int64 `json:"icmpIdleTimeoutSec,omitempty"`
23217
23218	// MinPortsPerVm: Minimum number of ports allocated to a VM from this
23219	// NAT config. If not set, a default number of ports is allocated to a
23220	// VM. This gets rounded up to the nearest power of 2. Eg. if the value
23221	// of this field is 50, at least 64 ports will be allocated to a VM.
23222	MinPortsPerVm int64 `json:"minPortsPerVm,omitempty"`
23223
23224	// Name: Unique name of this Nat service. The name must be 1-63
23225	// characters long and comply with RFC1035.
23226	Name string `json:"name,omitempty"`
23227
23228	// NatIpAllocateOption: Specify the NatIpAllocateOption. If it is
23229	// AUTO_ONLY, then nat_ip should be empty.
23230	//
23231	// Possible values:
23232	//   "AUTO_ONLY"
23233	//   "MANUAL_ONLY"
23234	NatIpAllocateOption string `json:"natIpAllocateOption,omitempty"`
23235
23236	// NatIps: A list of URLs of the IP resources used for this Nat service.
23237	// These IPs must be valid static external IP addresses assigned to the
23238	// project. max_length is subject to change post alpha.
23239	NatIps []string `json:"natIps,omitempty"`
23240
23241	// SourceSubnetworkIpRangesToNat: Specify the Nat option. If this field
23242	// contains ALL_SUBNETWORKS_ALL_IP_RANGES or
23243	// ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any
23244	// other Router.Nat section in any Router for this network in this
23245	// region.
23246	//
23247	// Possible values:
23248	//   "ALL_SUBNETWORKS_ALL_IP_RANGES"
23249	//   "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES"
23250	//   "LIST_OF_SUBNETWORKS"
23251	SourceSubnetworkIpRangesToNat string `json:"sourceSubnetworkIpRangesToNat,omitempty"`
23252
23253	// Subnetworks: A list of Subnetwork resources whose traffic should be
23254	// translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS
23255	// is selected for the SubnetworkIpRangeToNatOption above.
23256	Subnetworks []*RouterNatSubnetworkToNat `json:"subnetworks,omitempty"`
23257
23258	// TcpEstablishedIdleTimeoutSec: Timeout (in seconds) for TCP
23259	// established connections. Defaults to 1200s if not set.
23260	TcpEstablishedIdleTimeoutSec int64 `json:"tcpEstablishedIdleTimeoutSec,omitempty"`
23261
23262	// TcpTransitoryIdleTimeoutSec: Timeout (in seconds) for TCP transitory
23263	// connections. Defaults to 30s if not set.
23264	TcpTransitoryIdleTimeoutSec int64 `json:"tcpTransitoryIdleTimeoutSec,omitempty"`
23265
23266	// UdpIdleTimeoutSec: Timeout (in seconds) for UDP connections. Defaults
23267	// to 30s if not set.
23268	UdpIdleTimeoutSec int64 `json:"udpIdleTimeoutSec,omitempty"`
23269
23270	// ForceSendFields is a list of field names (e.g. "IcmpIdleTimeoutSec")
23271	// to unconditionally include in API requests. By default, fields with
23272	// empty values are omitted from API requests. However, any non-pointer,
23273	// non-interface field appearing in ForceSendFields will be sent to the
23274	// server regardless of whether the field is empty or not. This may be
23275	// used to include empty fields in Patch requests.
23276	ForceSendFields []string `json:"-"`
23277
23278	// NullFields is a list of field names (e.g. "IcmpIdleTimeoutSec") to
23279	// include in API requests with the JSON null value. By default, fields
23280	// with empty values are omitted from API requests. However, any field
23281	// with an empty value appearing in NullFields will be sent to the
23282	// server as null. It is an error if a field in this list has a
23283	// non-empty value. This may be used to include null fields in Patch
23284	// requests.
23285	NullFields []string `json:"-"`
23286}
23287
23288func (s *RouterNat) MarshalJSON() ([]byte, error) {
23289	type NoMethod RouterNat
23290	raw := NoMethod(*s)
23291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23292}
23293
23294// RouterNatSubnetworkToNat: Defines the IP ranges that want to use NAT
23295// for a subnetwork.
23296type RouterNatSubnetworkToNat struct {
23297	// Name: URL for the subnetwork resource to use NAT.
23298	Name string `json:"name,omitempty"`
23299
23300	// SecondaryIpRangeNames: A list of the secondary ranges of the
23301	// Subnetwork that are allowed to use NAT. This can be populated only if
23302	// "LIST_OF_SECONDARY_IP_RANGES" is one of the values in
23303	// source_ip_ranges_to_nat.
23304	SecondaryIpRangeNames []string `json:"secondaryIpRangeNames,omitempty"`
23305
23306	// SourceIpRangesToNat: Specify the options for NAT ranges in the
23307	// Subnetwork. All usages of single value are valid except
23308	// NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple
23309	// values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"]
23310	// Default: [ALL_IP_RANGES]
23311	//
23312	// Possible values:
23313	//   "ALL_IP_RANGES"
23314	//   "LIST_OF_SECONDARY_IP_RANGES"
23315	//   "PRIMARY_IP_RANGE"
23316	SourceIpRangesToNat []string `json:"sourceIpRangesToNat,omitempty"`
23317
23318	// ForceSendFields is a list of field names (e.g. "Name") to
23319	// unconditionally include in API requests. By default, fields with
23320	// empty values are omitted from API requests. However, any non-pointer,
23321	// non-interface field appearing in ForceSendFields will be sent to the
23322	// server regardless of whether the field is empty or not. This may be
23323	// used to include empty fields in Patch requests.
23324	ForceSendFields []string `json:"-"`
23325
23326	// NullFields is a list of field names (e.g. "Name") to include in API
23327	// requests with the JSON null value. By default, fields with empty
23328	// values are omitted from API requests. However, any field with an
23329	// empty value appearing in NullFields will be sent to the server as
23330	// null. It is an error if a field in this list has a non-empty value.
23331	// This may be used to include null fields in Patch requests.
23332	NullFields []string `json:"-"`
23333}
23334
23335func (s *RouterNatSubnetworkToNat) MarshalJSON() ([]byte, error) {
23336	type NoMethod RouterNatSubnetworkToNat
23337	raw := NoMethod(*s)
23338	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23339}
23340
23341type RouterStatus struct {
23342	// BestRoutes: Best routes for this router's network.
23343	BestRoutes []*Route `json:"bestRoutes,omitempty"`
23344
23345	// BestRoutesForRouter: Best routes learned by this router.
23346	BestRoutesForRouter []*Route `json:"bestRoutesForRouter,omitempty"`
23347
23348	BgpPeerStatus []*RouterStatusBgpPeerStatus `json:"bgpPeerStatus,omitempty"`
23349
23350	NatStatus []*RouterStatusNatStatus `json:"natStatus,omitempty"`
23351
23352	// Network: URI of the network to which this router belongs.
23353	Network string `json:"network,omitempty"`
23354
23355	// ForceSendFields is a list of field names (e.g. "BestRoutes") to
23356	// unconditionally include in API requests. By default, fields with
23357	// empty values are omitted from API requests. However, any non-pointer,
23358	// non-interface field appearing in ForceSendFields will be sent to the
23359	// server regardless of whether the field is empty or not. This may be
23360	// used to include empty fields in Patch requests.
23361	ForceSendFields []string `json:"-"`
23362
23363	// NullFields is a list of field names (e.g. "BestRoutes") to include in
23364	// API requests with the JSON null value. By default, fields with empty
23365	// values are omitted from API requests. However, any field with an
23366	// empty value appearing in NullFields will be sent to the server as
23367	// null. It is an error if a field in this list has a non-empty value.
23368	// This may be used to include null fields in Patch requests.
23369	NullFields []string `json:"-"`
23370}
23371
23372func (s *RouterStatus) MarshalJSON() ([]byte, error) {
23373	type NoMethod RouterStatus
23374	raw := NoMethod(*s)
23375	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23376}
23377
23378type RouterStatusBgpPeerStatus struct {
23379	// AdvertisedRoutes: Routes that were advertised to the remote BGP peer
23380	AdvertisedRoutes []*Route `json:"advertisedRoutes,omitempty"`
23381
23382	// IpAddress: IP address of the local BGP interface.
23383	IpAddress string `json:"ipAddress,omitempty"`
23384
23385	// LinkedVpnTunnel: URL of the VPN tunnel that this BGP peer controls.
23386	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
23387
23388	// Name: Name of this BGP peer. Unique within the Routers resource.
23389	Name string `json:"name,omitempty"`
23390
23391	// NumLearnedRoutes: Number of routes learned from the remote BGP Peer.
23392	NumLearnedRoutes int64 `json:"numLearnedRoutes,omitempty"`
23393
23394	// PeerIpAddress: IP address of the remote BGP interface.
23395	PeerIpAddress string `json:"peerIpAddress,omitempty"`
23396
23397	// State: BGP state as specified in RFC1771.
23398	State string `json:"state,omitempty"`
23399
23400	// Status: Status of the BGP peer: {UP, DOWN}
23401	//
23402	// Possible values:
23403	//   "DOWN"
23404	//   "UNKNOWN"
23405	//   "UP"
23406	Status string `json:"status,omitempty"`
23407
23408	// Uptime: Time this session has been up. Format: 14 years, 51 weeks, 6
23409	// days, 23 hours, 59 minutes, 59 seconds
23410	Uptime string `json:"uptime,omitempty"`
23411
23412	// UptimeSeconds: Time this session has been up, in seconds. Format: 145
23413	UptimeSeconds string `json:"uptimeSeconds,omitempty"`
23414
23415	// ForceSendFields is a list of field names (e.g. "AdvertisedRoutes") to
23416	// unconditionally include in API requests. By default, fields with
23417	// empty values are omitted from API requests. However, any non-pointer,
23418	// non-interface field appearing in ForceSendFields will be sent to the
23419	// server regardless of whether the field is empty or not. This may be
23420	// used to include empty fields in Patch requests.
23421	ForceSendFields []string `json:"-"`
23422
23423	// NullFields is a list of field names (e.g. "AdvertisedRoutes") to
23424	// include in API requests with the JSON null value. By default, fields
23425	// with empty values are omitted from API requests. However, any field
23426	// with an empty value appearing in NullFields will be sent to the
23427	// server as null. It is an error if a field in this list has a
23428	// non-empty value. This may be used to include null fields in Patch
23429	// requests.
23430	NullFields []string `json:"-"`
23431}
23432
23433func (s *RouterStatusBgpPeerStatus) MarshalJSON() ([]byte, error) {
23434	type NoMethod RouterStatusBgpPeerStatus
23435	raw := NoMethod(*s)
23436	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23437}
23438
23439// RouterStatusNatStatus: Status of a NAT contained in this router. Next
23440// tag: 9
23441type RouterStatusNatStatus struct {
23442	// AutoAllocatedNatIps: A list of IPs auto-allocated for NAT. Example:
23443	// ["1.1.1.1", "129.2.16.89"]
23444	AutoAllocatedNatIps []string `json:"autoAllocatedNatIps,omitempty"`
23445
23446	// MinExtraNatIpsNeeded: The number of extra IPs to allocate. This will
23447	// be greater than 0 only if user-specified IPs are NOT enough to allow
23448	// all configured VMs to use NAT. This value is meaningful only when
23449	// auto-allocation of NAT IPs is *not* used.
23450	MinExtraNatIpsNeeded int64 `json:"minExtraNatIpsNeeded,omitempty"`
23451
23452	// Name: Unique name of this NAT.
23453	Name string `json:"name,omitempty"`
23454
23455	// NumVmEndpointsWithNatMappings: Number of VM endpoints (i.e., Nics)
23456	// that can use NAT.
23457	NumVmEndpointsWithNatMappings int64 `json:"numVmEndpointsWithNatMappings,omitempty"`
23458
23459	// UserAllocatedNatIpResources: A list of fully qualified URLs of
23460	// reserved IP address resources.
23461	UserAllocatedNatIpResources []string `json:"userAllocatedNatIpResources,omitempty"`
23462
23463	// UserAllocatedNatIps: A list of IPs user-allocated for NAT. They will
23464	// be raw IP strings like "179.12.26.133".
23465	UserAllocatedNatIps []string `json:"userAllocatedNatIps,omitempty"`
23466
23467	// ForceSendFields is a list of field names (e.g. "AutoAllocatedNatIps")
23468	// to unconditionally include in API requests. By default, fields with
23469	// empty values are omitted from API requests. However, any non-pointer,
23470	// non-interface field appearing in ForceSendFields will be sent to the
23471	// server regardless of whether the field is empty or not. This may be
23472	// used to include empty fields in Patch requests.
23473	ForceSendFields []string `json:"-"`
23474
23475	// NullFields is a list of field names (e.g. "AutoAllocatedNatIps") to
23476	// include in API requests with the JSON null value. By default, fields
23477	// with empty values are omitted from API requests. However, any field
23478	// with an empty value appearing in NullFields will be sent to the
23479	// server as null. It is an error if a field in this list has a
23480	// non-empty value. This may be used to include null fields in Patch
23481	// requests.
23482	NullFields []string `json:"-"`
23483}
23484
23485func (s *RouterStatusNatStatus) MarshalJSON() ([]byte, error) {
23486	type NoMethod RouterStatusNatStatus
23487	raw := NoMethod(*s)
23488	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23489}
23490
23491type RouterStatusResponse struct {
23492	// Kind: Type of resource.
23493	Kind string `json:"kind,omitempty"`
23494
23495	Result *RouterStatus `json:"result,omitempty"`
23496
23497	// ServerResponse contains the HTTP response code and headers from the
23498	// server.
23499	googleapi.ServerResponse `json:"-"`
23500
23501	// ForceSendFields is a list of field names (e.g. "Kind") to
23502	// unconditionally include in API requests. By default, fields with
23503	// empty values are omitted from API requests. However, any non-pointer,
23504	// non-interface field appearing in ForceSendFields will be sent to the
23505	// server regardless of whether the field is empty or not. This may be
23506	// used to include empty fields in Patch requests.
23507	ForceSendFields []string `json:"-"`
23508
23509	// NullFields is a list of field names (e.g. "Kind") to include in API
23510	// requests with the JSON null value. By default, fields with empty
23511	// values are omitted from API requests. However, any field with an
23512	// empty value appearing in NullFields will be sent to the server as
23513	// null. It is an error if a field in this list has a non-empty value.
23514	// This may be used to include null fields in Patch requests.
23515	NullFields []string `json:"-"`
23516}
23517
23518func (s *RouterStatusResponse) MarshalJSON() ([]byte, error) {
23519	type NoMethod RouterStatusResponse
23520	raw := NoMethod(*s)
23521	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23522}
23523
23524type RoutersPreviewResponse struct {
23525	// Resource: Preview of given router.
23526	Resource *Router `json:"resource,omitempty"`
23527
23528	// ServerResponse contains the HTTP response code and headers from the
23529	// server.
23530	googleapi.ServerResponse `json:"-"`
23531
23532	// ForceSendFields is a list of field names (e.g. "Resource") to
23533	// unconditionally include in API requests. By default, fields with
23534	// empty values are omitted from API requests. However, any non-pointer,
23535	// non-interface field appearing in ForceSendFields will be sent to the
23536	// server regardless of whether the field is empty or not. This may be
23537	// used to include empty fields in Patch requests.
23538	ForceSendFields []string `json:"-"`
23539
23540	// NullFields is a list of field names (e.g. "Resource") to include in
23541	// API requests with the JSON null value. By default, fields with empty
23542	// values are omitted from API requests. However, any field with an
23543	// empty value appearing in NullFields will be sent to the server as
23544	// null. It is an error if a field in this list has a non-empty value.
23545	// This may be used to include null fields in Patch requests.
23546	NullFields []string `json:"-"`
23547}
23548
23549func (s *RoutersPreviewResponse) MarshalJSON() ([]byte, error) {
23550	type NoMethod RoutersPreviewResponse
23551	raw := NoMethod(*s)
23552	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23553}
23554
23555type RoutersScopedList struct {
23556	// Routers: A list of routers contained in this scope.
23557	Routers []*Router `json:"routers,omitempty"`
23558
23559	// Warning: Informational warning which replaces the list of routers
23560	// when the list is empty.
23561	Warning *RoutersScopedListWarning `json:"warning,omitempty"`
23562
23563	// ForceSendFields is a list of field names (e.g. "Routers") to
23564	// unconditionally include in API requests. By default, fields with
23565	// empty values are omitted from API requests. However, any non-pointer,
23566	// non-interface field appearing in ForceSendFields will be sent to the
23567	// server regardless of whether the field is empty or not. This may be
23568	// used to include empty fields in Patch requests.
23569	ForceSendFields []string `json:"-"`
23570
23571	// NullFields is a list of field names (e.g. "Routers") to include in
23572	// API requests with the JSON null value. By default, fields with empty
23573	// values are omitted from API requests. However, any field with an
23574	// empty value appearing in NullFields will be sent to the server as
23575	// null. It is an error if a field in this list has a non-empty value.
23576	// This may be used to include null fields in Patch requests.
23577	NullFields []string `json:"-"`
23578}
23579
23580func (s *RoutersScopedList) MarshalJSON() ([]byte, error) {
23581	type NoMethod RoutersScopedList
23582	raw := NoMethod(*s)
23583	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23584}
23585
23586// RoutersScopedListWarning: Informational warning which replaces the
23587// list of routers when the list is empty.
23588type RoutersScopedListWarning struct {
23589	// Code: [Output Only] A warning code, if applicable. For example,
23590	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23591	// the response.
23592	//
23593	// Possible values:
23594	//   "CLEANUP_FAILED"
23595	//   "DEPRECATED_RESOURCE_USED"
23596	//   "DEPRECATED_TYPE_USED"
23597	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23598	//   "EXPERIMENTAL_TYPE_USED"
23599	//   "EXTERNAL_API_WARNING"
23600	//   "FIELD_VALUE_OVERRIDEN"
23601	//   "INJECTED_KERNELS_DEPRECATED"
23602	//   "MISSING_TYPE_DEPENDENCY"
23603	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23604	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23605	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23606	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23607	//   "NEXT_HOP_NOT_RUNNING"
23608	//   "NOT_CRITICAL_ERROR"
23609	//   "NO_RESULTS_ON_PAGE"
23610	//   "REQUIRED_TOS_AGREEMENT"
23611	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23612	//   "RESOURCE_NOT_DELETED"
23613	//   "SCHEMA_VALIDATION_IGNORED"
23614	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23615	//   "UNDECLARED_PROPERTIES"
23616	//   "UNREACHABLE"
23617	Code string `json:"code,omitempty"`
23618
23619	// Data: [Output Only] Metadata about this warning in key: value format.
23620	// For example:
23621	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23622	Data []*RoutersScopedListWarningData `json:"data,omitempty"`
23623
23624	// Message: [Output Only] A human-readable description of the warning
23625	// code.
23626	Message string `json:"message,omitempty"`
23627
23628	// ForceSendFields is a list of field names (e.g. "Code") to
23629	// unconditionally include in API requests. By default, fields with
23630	// empty values are omitted from API requests. However, any non-pointer,
23631	// non-interface field appearing in ForceSendFields will be sent to the
23632	// server regardless of whether the field is empty or not. This may be
23633	// used to include empty fields in Patch requests.
23634	ForceSendFields []string `json:"-"`
23635
23636	// NullFields is a list of field names (e.g. "Code") to include in API
23637	// requests with the JSON null value. By default, fields with empty
23638	// values are omitted from API requests. However, any field with an
23639	// empty value appearing in NullFields will be sent to the server as
23640	// null. It is an error if a field in this list has a non-empty value.
23641	// This may be used to include null fields in Patch requests.
23642	NullFields []string `json:"-"`
23643}
23644
23645func (s *RoutersScopedListWarning) MarshalJSON() ([]byte, error) {
23646	type NoMethod RoutersScopedListWarning
23647	raw := NoMethod(*s)
23648	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23649}
23650
23651type RoutersScopedListWarningData struct {
23652	// Key: [Output Only] A key that provides more detail on the warning
23653	// being returned. For example, for warnings where there are no results
23654	// in a list request for a particular zone, this key might be scope and
23655	// the key value might be the zone name. Other examples might be a key
23656	// indicating a deprecated resource and a suggested replacement, or a
23657	// warning about invalid network settings (for example, if an instance
23658	// attempts to perform IP forwarding but is not enabled for IP
23659	// forwarding).
23660	Key string `json:"key,omitempty"`
23661
23662	// Value: [Output Only] A warning data value corresponding to the key.
23663	Value string `json:"value,omitempty"`
23664
23665	// ForceSendFields is a list of field names (e.g. "Key") to
23666	// unconditionally include in API requests. By default, fields with
23667	// empty values are omitted from API requests. However, any non-pointer,
23668	// non-interface field appearing in ForceSendFields will be sent to the
23669	// server regardless of whether the field is empty or not. This may be
23670	// used to include empty fields in Patch requests.
23671	ForceSendFields []string `json:"-"`
23672
23673	// NullFields is a list of field names (e.g. "Key") to include in API
23674	// requests with the JSON null value. By default, fields with empty
23675	// values are omitted from API requests. However, any field with an
23676	// empty value appearing in NullFields will be sent to the server as
23677	// null. It is an error if a field in this list has a non-empty value.
23678	// This may be used to include null fields in Patch requests.
23679	NullFields []string `json:"-"`
23680}
23681
23682func (s *RoutersScopedListWarningData) MarshalJSON() ([]byte, error) {
23683	type NoMethod RoutersScopedListWarningData
23684	raw := NoMethod(*s)
23685	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23686}
23687
23688// Rule: A rule to be applied in a Policy.
23689type Rule struct {
23690	// Action: Required
23691	//
23692	// Possible values:
23693	//   "ALLOW"
23694	//   "ALLOW_WITH_LOG"
23695	//   "DENY"
23696	//   "DENY_WITH_LOG"
23697	//   "LOG"
23698	//   "NO_ACTION"
23699	Action string `json:"action,omitempty"`
23700
23701	// Conditions: Additional restrictions that must be met. All conditions
23702	// must pass for the rule to match.
23703	Conditions []*Condition `json:"conditions,omitempty"`
23704
23705	// Description: Human-readable description of the rule.
23706	Description string `json:"description,omitempty"`
23707
23708	// Ins: If one or more 'in' clauses are specified, the rule matches if
23709	// the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
23710	Ins []string `json:"ins,omitempty"`
23711
23712	// LogConfigs: The config returned to callers of
23713	// tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
23714	LogConfigs []*LogConfig `json:"logConfigs,omitempty"`
23715
23716	// NotIns: If one or more 'not_in' clauses are specified, the rule
23717	// matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the
23718	// entries.
23719	NotIns []string `json:"notIns,omitempty"`
23720
23721	// Permissions: A permission is a string of form '..' (e.g.,
23722	// 'storage.buckets.list'). A value of '*' matches all permissions, and
23723	// a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
23724	Permissions []string `json:"permissions,omitempty"`
23725
23726	// ForceSendFields is a list of field names (e.g. "Action") to
23727	// unconditionally include in API requests. By default, fields with
23728	// empty values are omitted from API requests. However, any non-pointer,
23729	// non-interface field appearing in ForceSendFields will be sent to the
23730	// server regardless of whether the field is empty or not. This may be
23731	// used to include empty fields in Patch requests.
23732	ForceSendFields []string `json:"-"`
23733
23734	// NullFields is a list of field names (e.g. "Action") to include in API
23735	// requests with the JSON null value. By default, fields with empty
23736	// values are omitted from API requests. However, any field with an
23737	// empty value appearing in NullFields will be sent to the server as
23738	// null. It is an error if a field in this list has a non-empty value.
23739	// This may be used to include null fields in Patch requests.
23740	NullFields []string `json:"-"`
23741}
23742
23743func (s *Rule) MarshalJSON() ([]byte, error) {
23744	type NoMethod Rule
23745	raw := NoMethod(*s)
23746	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23747}
23748
23749type SSLHealthCheck struct {
23750	// Port: The TCP port number for the health check request. The default
23751	// value is 443. Valid values are 1 through 65535.
23752	Port int64 `json:"port,omitempty"`
23753
23754	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
23755	// both port and port_name are defined, port takes precedence.
23756	PortName string `json:"portName,omitempty"`
23757
23758	// PortSpecification: Specifies how port is selected for health
23759	// checking, can be one of following values:
23760	// USE_FIXED_PORT: The port number in
23761	// port
23762	// is used for health checking.
23763	// USE_NAMED_PORT: The
23764	// portName
23765	// is used for health checking.
23766	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
23767	// each network endpoint is used for health checking. For other
23768	// backends, the port or named port specified in the Backend Service is
23769	// used for health checking.
23770	//
23771	//
23772	// If not specified, SSL health check follows behavior specified
23773	// in
23774	// port
23775	// and
23776	// portName
23777	// fields.
23778	//
23779	// Possible values:
23780	//   "USE_FIXED_PORT"
23781	//   "USE_NAMED_PORT"
23782	//   "USE_SERVING_PORT"
23783	PortSpecification string `json:"portSpecification,omitempty"`
23784
23785	// ProxyHeader: Specifies the type of proxy header to append before
23786	// sending data to the backend, either NONE or PROXY_V1. The default is
23787	// NONE.
23788	//
23789	// Possible values:
23790	//   "NONE"
23791	//   "PROXY_V1"
23792	ProxyHeader string `json:"proxyHeader,omitempty"`
23793
23794	// Request: The application data to send once the SSL connection has
23795	// been established (default value is empty). If both request and
23796	// response are empty, the connection establishment alone will indicate
23797	// health. The request data can only be ASCII.
23798	Request string `json:"request,omitempty"`
23799
23800	// Response: The bytes to match against the beginning of the response
23801	// data. If left empty (the default value), any response will indicate
23802	// health. The response data can only be ASCII.
23803	Response string `json:"response,omitempty"`
23804
23805	// ForceSendFields is a list of field names (e.g. "Port") to
23806	// unconditionally include in API requests. By default, fields with
23807	// empty values are omitted from API requests. However, any non-pointer,
23808	// non-interface field appearing in ForceSendFields will be sent to the
23809	// server regardless of whether the field is empty or not. This may be
23810	// used to include empty fields in Patch requests.
23811	ForceSendFields []string `json:"-"`
23812
23813	// NullFields is a list of field names (e.g. "Port") to include in API
23814	// requests with the JSON null value. By default, fields with empty
23815	// values are omitted from API requests. However, any field with an
23816	// empty value appearing in NullFields will be sent to the server as
23817	// null. It is an error if a field in this list has a non-empty value.
23818	// This may be used to include null fields in Patch requests.
23819	NullFields []string `json:"-"`
23820}
23821
23822func (s *SSLHealthCheck) MarshalJSON() ([]byte, error) {
23823	type NoMethod SSLHealthCheck
23824	raw := NoMethod(*s)
23825	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23826}
23827
23828// Scheduling: Sets the scheduling options for an Instance.
23829type Scheduling struct {
23830	// AutomaticRestart: Specifies whether the instance should be
23831	// automatically restarted if it is terminated by Compute Engine (not
23832	// terminated by a user). You can only set the automatic restart option
23833	// for standard instances. Preemptible instances cannot be automatically
23834	// restarted.
23835	//
23836	// By default, this is set to true so an instance is automatically
23837	// restarted if it is terminated by Compute Engine.
23838	AutomaticRestart *bool `json:"automaticRestart,omitempty"`
23839
23840	// NodeAffinities: A set of node affinity and anti-affinity.
23841	NodeAffinities []*SchedulingNodeAffinity `json:"nodeAffinities,omitempty"`
23842
23843	// OnHostMaintenance: Defines the maintenance behavior for this
23844	// instance. For standard instances, the default behavior is MIGRATE.
23845	// For preemptible instances, the default and only possible behavior is
23846	// TERMINATE. For more information, see Setting Instance Scheduling
23847	// Options.
23848	//
23849	// Possible values:
23850	//   "MIGRATE"
23851	//   "TERMINATE"
23852	OnHostMaintenance string `json:"onHostMaintenance,omitempty"`
23853
23854	// Preemptible: Defines whether the instance is preemptible. This can
23855	// only be set during instance creation, it cannot be set or changed
23856	// after the instance has been created.
23857	Preemptible bool `json:"preemptible,omitempty"`
23858
23859	// ForceSendFields is a list of field names (e.g. "AutomaticRestart") to
23860	// unconditionally include in API requests. By default, fields with
23861	// empty values are omitted from API requests. However, any non-pointer,
23862	// non-interface field appearing in ForceSendFields will be sent to the
23863	// server regardless of whether the field is empty or not. This may be
23864	// used to include empty fields in Patch requests.
23865	ForceSendFields []string `json:"-"`
23866
23867	// NullFields is a list of field names (e.g. "AutomaticRestart") to
23868	// include in API requests with the JSON null value. By default, fields
23869	// with empty values are omitted from API requests. However, any field
23870	// with an empty value appearing in NullFields will be sent to the
23871	// server as null. It is an error if a field in this list has a
23872	// non-empty value. This may be used to include null fields in Patch
23873	// requests.
23874	NullFields []string `json:"-"`
23875}
23876
23877func (s *Scheduling) MarshalJSON() ([]byte, error) {
23878	type NoMethod Scheduling
23879	raw := NoMethod(*s)
23880	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23881}
23882
23883// SchedulingNodeAffinity: Node Affinity: the configuration of desired
23884// nodes onto which this Instance could be scheduled.
23885type SchedulingNodeAffinity struct {
23886	// Key: Corresponds to the label key of Node resource.
23887	Key string `json:"key,omitempty"`
23888
23889	// Operator: Defines the operation of node selection.
23890	//
23891	// Possible values:
23892	//   "IN"
23893	//   "NOT_IN"
23894	//   "OPERATOR_UNSPECIFIED"
23895	Operator string `json:"operator,omitempty"`
23896
23897	// Values: Corresponds to the label values of Node resource.
23898	Values []string `json:"values,omitempty"`
23899
23900	// ForceSendFields is a list of field names (e.g. "Key") to
23901	// unconditionally include in API requests. By default, fields with
23902	// empty values are omitted from API requests. However, any non-pointer,
23903	// non-interface field appearing in ForceSendFields will be sent to the
23904	// server regardless of whether the field is empty or not. This may be
23905	// used to include empty fields in Patch requests.
23906	ForceSendFields []string `json:"-"`
23907
23908	// NullFields is a list of field names (e.g. "Key") to include in API
23909	// requests with the JSON null value. By default, fields with empty
23910	// values are omitted from API requests. However, any field with an
23911	// empty value appearing in NullFields will be sent to the server as
23912	// null. It is an error if a field in this list has a non-empty value.
23913	// This may be used to include null fields in Patch requests.
23914	NullFields []string `json:"-"`
23915}
23916
23917func (s *SchedulingNodeAffinity) MarshalJSON() ([]byte, error) {
23918	type NoMethod SchedulingNodeAffinity
23919	raw := NoMethod(*s)
23920	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23921}
23922
23923// SecurityPolicy: A security policy is comprised of one or more rules.
23924// It can also be associated with one or more 'targets'. (==
23925// resource_for v1.securityPolicies ==) (== resource_for
23926// beta.securityPolicies ==)
23927type SecurityPolicy struct {
23928	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
23929	// format.
23930	CreationTimestamp string `json:"creationTimestamp,omitempty"`
23931
23932	// Description: An optional description of this resource. Provide this
23933	// property when you create the resource.
23934	Description string `json:"description,omitempty"`
23935
23936	// Fingerprint: Specifies a fingerprint for this resource, which is
23937	// essentially a hash of the metadata's contents and used for optimistic
23938	// locking. The fingerprint is initially generated by Compute Engine and
23939	// changes after every request to modify or update metadata. You must
23940	// always provide an up-to-date fingerprint hash in order to update or
23941	// change metadata, otherwise the request will fail with error 412
23942	// conditionNotMet.
23943	//
23944	// To see the latest fingerprint, make get() request to the security
23945	// policy.
23946	Fingerprint string `json:"fingerprint,omitempty"`
23947
23948	// Id: [Output Only] The unique identifier for the resource. This
23949	// identifier is defined by the server.
23950	Id uint64 `json:"id,omitempty,string"`
23951
23952	// Kind: [Output only] Type of the resource. Always
23953	// compute#securityPolicyfor security policies
23954	Kind string `json:"kind,omitempty"`
23955
23956	// Name: Name of the resource. Provided by the client when the resource
23957	// is created. The name must be 1-63 characters long, and comply with
23958	// RFC1035. Specifically, the name must be 1-63 characters long and
23959	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
23960	// the first character must be a lowercase letter, and all following
23961	// characters must be a dash, lowercase letter, or digit, except the
23962	// last character, which cannot be a dash.
23963	Name string `json:"name,omitempty"`
23964
23965	// Rules: A list of rules that belong to this policy. There must always
23966	// be a default rule (rule with priority 2147483647 and match "*"). If
23967	// no rules are provided when creating a security policy, a default rule
23968	// with action "allow" will be added.
23969	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
23970
23971	// SelfLink: [Output Only] Server-defined URL for the resource.
23972	SelfLink string `json:"selfLink,omitempty"`
23973
23974	// ServerResponse contains the HTTP response code and headers from the
23975	// server.
23976	googleapi.ServerResponse `json:"-"`
23977
23978	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
23979	// to unconditionally include in API requests. By default, fields with
23980	// empty values are omitted from API requests. However, any non-pointer,
23981	// non-interface field appearing in ForceSendFields will be sent to the
23982	// server regardless of whether the field is empty or not. This may be
23983	// used to include empty fields in Patch requests.
23984	ForceSendFields []string `json:"-"`
23985
23986	// NullFields is a list of field names (e.g. "CreationTimestamp") to
23987	// include in API requests with the JSON null value. By default, fields
23988	// with empty values are omitted from API requests. However, any field
23989	// with an empty value appearing in NullFields will be sent to the
23990	// server as null. It is an error if a field in this list has a
23991	// non-empty value. This may be used to include null fields in Patch
23992	// requests.
23993	NullFields []string `json:"-"`
23994}
23995
23996func (s *SecurityPolicy) MarshalJSON() ([]byte, error) {
23997	type NoMethod SecurityPolicy
23998	raw := NoMethod(*s)
23999	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24000}
24001
24002type SecurityPolicyList struct {
24003	// Id: [Output Only] Unique identifier for the resource; defined by the
24004	// server.
24005	Id string `json:"id,omitempty"`
24006
24007	// Items: A list of SecurityPolicy resources.
24008	Items []*SecurityPolicy `json:"items,omitempty"`
24009
24010	// Kind: [Output Only] Type of resource. Always
24011	// compute#securityPolicyList for listsof securityPolicies
24012	Kind string `json:"kind,omitempty"`
24013
24014	// NextPageToken: [Output Only] This token allows you to get the next
24015	// page of results for list requests. If the number of results is larger
24016	// than maxResults, use the nextPageToken as a value for the query
24017	// parameter pageToken in the next list request. Subsequent list
24018	// requests will have their own nextPageToken to continue paging through
24019	// the results.
24020	NextPageToken string `json:"nextPageToken,omitempty"`
24021
24022	// Warning: [Output Only] Informational warning message.
24023	Warning *SecurityPolicyListWarning `json:"warning,omitempty"`
24024
24025	// ServerResponse contains the HTTP response code and headers from the
24026	// server.
24027	googleapi.ServerResponse `json:"-"`
24028
24029	// ForceSendFields is a list of field names (e.g. "Id") to
24030	// unconditionally include in API requests. By default, fields with
24031	// empty values are omitted from API requests. However, any non-pointer,
24032	// non-interface field appearing in ForceSendFields will be sent to the
24033	// server regardless of whether the field is empty or not. This may be
24034	// used to include empty fields in Patch requests.
24035	ForceSendFields []string `json:"-"`
24036
24037	// NullFields is a list of field names (e.g. "Id") to include in API
24038	// requests with the JSON null value. By default, fields with empty
24039	// values are omitted from API requests. However, any field with an
24040	// empty value appearing in NullFields will be sent to the server as
24041	// null. It is an error if a field in this list has a non-empty value.
24042	// This may be used to include null fields in Patch requests.
24043	NullFields []string `json:"-"`
24044}
24045
24046func (s *SecurityPolicyList) MarshalJSON() ([]byte, error) {
24047	type NoMethod SecurityPolicyList
24048	raw := NoMethod(*s)
24049	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24050}
24051
24052// SecurityPolicyListWarning: [Output Only] Informational warning
24053// message.
24054type SecurityPolicyListWarning struct {
24055	// Code: [Output Only] A warning code, if applicable. For example,
24056	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24057	// the response.
24058	//
24059	// Possible values:
24060	//   "CLEANUP_FAILED"
24061	//   "DEPRECATED_RESOURCE_USED"
24062	//   "DEPRECATED_TYPE_USED"
24063	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24064	//   "EXPERIMENTAL_TYPE_USED"
24065	//   "EXTERNAL_API_WARNING"
24066	//   "FIELD_VALUE_OVERRIDEN"
24067	//   "INJECTED_KERNELS_DEPRECATED"
24068	//   "MISSING_TYPE_DEPENDENCY"
24069	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24070	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24071	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24072	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24073	//   "NEXT_HOP_NOT_RUNNING"
24074	//   "NOT_CRITICAL_ERROR"
24075	//   "NO_RESULTS_ON_PAGE"
24076	//   "REQUIRED_TOS_AGREEMENT"
24077	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24078	//   "RESOURCE_NOT_DELETED"
24079	//   "SCHEMA_VALIDATION_IGNORED"
24080	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24081	//   "UNDECLARED_PROPERTIES"
24082	//   "UNREACHABLE"
24083	Code string `json:"code,omitempty"`
24084
24085	// Data: [Output Only] Metadata about this warning in key: value format.
24086	// For example:
24087	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24088	Data []*SecurityPolicyListWarningData `json:"data,omitempty"`
24089
24090	// Message: [Output Only] A human-readable description of the warning
24091	// code.
24092	Message string `json:"message,omitempty"`
24093
24094	// ForceSendFields is a list of field names (e.g. "Code") to
24095	// unconditionally include in API requests. By default, fields with
24096	// empty values are omitted from API requests. However, any non-pointer,
24097	// non-interface field appearing in ForceSendFields will be sent to the
24098	// server regardless of whether the field is empty or not. This may be
24099	// used to include empty fields in Patch requests.
24100	ForceSendFields []string `json:"-"`
24101
24102	// NullFields is a list of field names (e.g. "Code") to include in API
24103	// requests with the JSON null value. By default, fields with empty
24104	// values are omitted from API requests. However, any field with an
24105	// empty value appearing in NullFields will be sent to the server as
24106	// null. It is an error if a field in this list has a non-empty value.
24107	// This may be used to include null fields in Patch requests.
24108	NullFields []string `json:"-"`
24109}
24110
24111func (s *SecurityPolicyListWarning) MarshalJSON() ([]byte, error) {
24112	type NoMethod SecurityPolicyListWarning
24113	raw := NoMethod(*s)
24114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24115}
24116
24117type SecurityPolicyListWarningData struct {
24118	// Key: [Output Only] A key that provides more detail on the warning
24119	// being returned. For example, for warnings where there are no results
24120	// in a list request for a particular zone, this key might be scope and
24121	// the key value might be the zone name. Other examples might be a key
24122	// indicating a deprecated resource and a suggested replacement, or a
24123	// warning about invalid network settings (for example, if an instance
24124	// attempts to perform IP forwarding but is not enabled for IP
24125	// forwarding).
24126	Key string `json:"key,omitempty"`
24127
24128	// Value: [Output Only] A warning data value corresponding to the key.
24129	Value string `json:"value,omitempty"`
24130
24131	// ForceSendFields is a list of field names (e.g. "Key") to
24132	// unconditionally include in API requests. By default, fields with
24133	// empty values are omitted from API requests. However, any non-pointer,
24134	// non-interface field appearing in ForceSendFields will be sent to the
24135	// server regardless of whether the field is empty or not. This may be
24136	// used to include empty fields in Patch requests.
24137	ForceSendFields []string `json:"-"`
24138
24139	// NullFields is a list of field names (e.g. "Key") to include in API
24140	// requests with the JSON null value. By default, fields with empty
24141	// values are omitted from API requests. However, any field with an
24142	// empty value appearing in NullFields will be sent to the server as
24143	// null. It is an error if a field in this list has a non-empty value.
24144	// This may be used to include null fields in Patch requests.
24145	NullFields []string `json:"-"`
24146}
24147
24148func (s *SecurityPolicyListWarningData) MarshalJSON() ([]byte, error) {
24149	type NoMethod SecurityPolicyListWarningData
24150	raw := NoMethod(*s)
24151	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24152}
24153
24154type SecurityPolicyReference struct {
24155	SecurityPolicy string `json:"securityPolicy,omitempty"`
24156
24157	// ForceSendFields is a list of field names (e.g. "SecurityPolicy") to
24158	// unconditionally include in API requests. By default, fields with
24159	// empty values are omitted from API requests. However, any non-pointer,
24160	// non-interface field appearing in ForceSendFields will be sent to the
24161	// server regardless of whether the field is empty or not. This may be
24162	// used to include empty fields in Patch requests.
24163	ForceSendFields []string `json:"-"`
24164
24165	// NullFields is a list of field names (e.g. "SecurityPolicy") to
24166	// include in API requests with the JSON null value. By default, fields
24167	// with empty values are omitted from API requests. However, any field
24168	// with an empty value appearing in NullFields will be sent to the
24169	// server as null. It is an error if a field in this list has a
24170	// non-empty value. This may be used to include null fields in Patch
24171	// requests.
24172	NullFields []string `json:"-"`
24173}
24174
24175func (s *SecurityPolicyReference) MarshalJSON() ([]byte, error) {
24176	type NoMethod SecurityPolicyReference
24177	raw := NoMethod(*s)
24178	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24179}
24180
24181// SecurityPolicyRule: Represents a rule that describes one or more
24182// match conditions along with the action to be taken when traffic
24183// matches this condition (allow or deny).
24184type SecurityPolicyRule struct {
24185	// Action: The Action to preform when the client connection triggers the
24186	// rule. Can currently be either "allow" or "deny()" where valid values
24187	// for status are 403, 404, and 502.
24188	Action string `json:"action,omitempty"`
24189
24190	// Description: An optional description of this resource. Provide this
24191	// property when you create the resource.
24192	Description string `json:"description,omitempty"`
24193
24194	// Kind: [Output only] Type of the resource. Always
24195	// compute#securityPolicyRule for security policy rules
24196	Kind string `json:"kind,omitempty"`
24197
24198	// Match: A match condition that incoming traffic is evaluated against.
24199	// If it evaluates to true, the corresponding ?action? is enforced.
24200	Match *SecurityPolicyRuleMatcher `json:"match,omitempty"`
24201
24202	// Preview: If set to true, the specified action is not enforced.
24203	Preview bool `json:"preview,omitempty"`
24204
24205	// Priority: An integer indicating the priority of a rule in the list.
24206	// The priority must be a positive value between 0 and 2147483647. Rules
24207	// are evaluated from highest to lowest priority where 0 is the highest
24208	// priority and 2147483647 is the lowest prority.
24209	Priority int64 `json:"priority,omitempty"`
24210
24211	// ServerResponse contains the HTTP response code and headers from the
24212	// server.
24213	googleapi.ServerResponse `json:"-"`
24214
24215	// ForceSendFields is a list of field names (e.g. "Action") to
24216	// unconditionally include in API requests. By default, fields with
24217	// empty values are omitted from API requests. However, any non-pointer,
24218	// non-interface field appearing in ForceSendFields will be sent to the
24219	// server regardless of whether the field is empty or not. This may be
24220	// used to include empty fields in Patch requests.
24221	ForceSendFields []string `json:"-"`
24222
24223	// NullFields is a list of field names (e.g. "Action") to include in API
24224	// requests with the JSON null value. By default, fields with empty
24225	// values are omitted from API requests. However, any field with an
24226	// empty value appearing in NullFields will be sent to the server as
24227	// null. It is an error if a field in this list has a non-empty value.
24228	// This may be used to include null fields in Patch requests.
24229	NullFields []string `json:"-"`
24230}
24231
24232func (s *SecurityPolicyRule) MarshalJSON() ([]byte, error) {
24233	type NoMethod SecurityPolicyRule
24234	raw := NoMethod(*s)
24235	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24236}
24237
24238// SecurityPolicyRuleMatcher: Represents a match condition that incoming
24239// traffic is evaluated against. Exactly one field must be specified.
24240type SecurityPolicyRuleMatcher struct {
24241	// Config: The configuration options available when specifying
24242	// versioned_expr. This field must be specified if versioned_expr is
24243	// specified and cannot be specified if versioned_expr is not specified.
24244	Config *SecurityPolicyRuleMatcherConfig `json:"config,omitempty"`
24245
24246	// VersionedExpr: Preconfigured versioned expression. If this field is
24247	// specified, config must also be specified. Available preconfigured
24248	// expressions along with their requirements are: SRC_IPS_V1 - must
24249	// specify the corresponding src_ip_range field in config.
24250	//
24251	// Possible values:
24252	//   "SRC_IPS_V1"
24253	VersionedExpr string `json:"versionedExpr,omitempty"`
24254
24255	// ForceSendFields is a list of field names (e.g. "Config") to
24256	// unconditionally include in API requests. By default, fields with
24257	// empty values are omitted from API requests. However, any non-pointer,
24258	// non-interface field appearing in ForceSendFields will be sent to the
24259	// server regardless of whether the field is empty or not. This may be
24260	// used to include empty fields in Patch requests.
24261	ForceSendFields []string `json:"-"`
24262
24263	// NullFields is a list of field names (e.g. "Config") to include in API
24264	// requests with the JSON null value. By default, fields with empty
24265	// values are omitted from API requests. However, any field with an
24266	// empty value appearing in NullFields will be sent to the server as
24267	// null. It is an error if a field in this list has a non-empty value.
24268	// This may be used to include null fields in Patch requests.
24269	NullFields []string `json:"-"`
24270}
24271
24272func (s *SecurityPolicyRuleMatcher) MarshalJSON() ([]byte, error) {
24273	type NoMethod SecurityPolicyRuleMatcher
24274	raw := NoMethod(*s)
24275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24276}
24277
24278type SecurityPolicyRuleMatcherConfig struct {
24279	// SrcIpRanges: CIDR IP address range.
24280	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
24281
24282	// ForceSendFields is a list of field names (e.g. "SrcIpRanges") to
24283	// unconditionally include in API requests. By default, fields with
24284	// empty values are omitted from API requests. However, any non-pointer,
24285	// non-interface field appearing in ForceSendFields will be sent to the
24286	// server regardless of whether the field is empty or not. This may be
24287	// used to include empty fields in Patch requests.
24288	ForceSendFields []string `json:"-"`
24289
24290	// NullFields is a list of field names (e.g. "SrcIpRanges") to include
24291	// in API requests with the JSON null value. By default, fields with
24292	// empty values are omitted from API requests. However, any field with
24293	// an empty value appearing in NullFields will be sent to the server as
24294	// null. It is an error if a field in this list has a non-empty value.
24295	// This may be used to include null fields in Patch requests.
24296	NullFields []string `json:"-"`
24297}
24298
24299func (s *SecurityPolicyRuleMatcherConfig) MarshalJSON() ([]byte, error) {
24300	type NoMethod SecurityPolicyRuleMatcherConfig
24301	raw := NoMethod(*s)
24302	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24303}
24304
24305// SerialPortOutput: An instance's serial console output.
24306type SerialPortOutput struct {
24307	// Contents: [Output Only] The contents of the console output.
24308	Contents string `json:"contents,omitempty"`
24309
24310	// Kind: [Output Only] Type of the resource. Always
24311	// compute#serialPortOutput for serial port output.
24312	Kind string `json:"kind,omitempty"`
24313
24314	// Next: [Output Only] The position of the next byte of content from the
24315	// serial console output. Use this value in the next request as the
24316	// start parameter.
24317	Next int64 `json:"next,omitempty,string"`
24318
24319	// SelfLink: [Output Only] Server-defined URL for this resource.
24320	SelfLink string `json:"selfLink,omitempty"`
24321
24322	// Start: The starting byte position of the output that was returned.
24323	// This should match the start parameter sent with the request. If the
24324	// serial console output exceeds the size of the buffer, older output
24325	// will be overwritten by newer content and the start values will be
24326	// mismatched.
24327	Start int64 `json:"start,omitempty,string"`
24328
24329	// ServerResponse contains the HTTP response code and headers from the
24330	// server.
24331	googleapi.ServerResponse `json:"-"`
24332
24333	// ForceSendFields is a list of field names (e.g. "Contents") to
24334	// unconditionally include in API requests. By default, fields with
24335	// empty values are omitted from API requests. However, any non-pointer,
24336	// non-interface field appearing in ForceSendFields will be sent to the
24337	// server regardless of whether the field is empty or not. This may be
24338	// used to include empty fields in Patch requests.
24339	ForceSendFields []string `json:"-"`
24340
24341	// NullFields is a list of field names (e.g. "Contents") to include in
24342	// API requests with the JSON null value. By default, fields with empty
24343	// values are omitted from API requests. However, any field with an
24344	// empty value appearing in NullFields will be sent to the server as
24345	// null. It is an error if a field in this list has a non-empty value.
24346	// This may be used to include null fields in Patch requests.
24347	NullFields []string `json:"-"`
24348}
24349
24350func (s *SerialPortOutput) MarshalJSON() ([]byte, error) {
24351	type NoMethod SerialPortOutput
24352	raw := NoMethod(*s)
24353	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24354}
24355
24356// ServiceAccount: A service account.
24357type ServiceAccount struct {
24358	// Email: Email address of the service account.
24359	Email string `json:"email,omitempty"`
24360
24361	// Scopes: The list of scopes to be made available for this service
24362	// account.
24363	Scopes []string `json:"scopes,omitempty"`
24364
24365	// ForceSendFields is a list of field names (e.g. "Email") to
24366	// unconditionally include in API requests. By default, fields with
24367	// empty values are omitted from API requests. However, any non-pointer,
24368	// non-interface field appearing in ForceSendFields will be sent to the
24369	// server regardless of whether the field is empty or not. This may be
24370	// used to include empty fields in Patch requests.
24371	ForceSendFields []string `json:"-"`
24372
24373	// NullFields is a list of field names (e.g. "Email") to include in API
24374	// requests with the JSON null value. By default, fields with empty
24375	// values are omitted from API requests. However, any field with an
24376	// empty value appearing in NullFields will be sent to the server as
24377	// null. It is an error if a field in this list has a non-empty value.
24378	// This may be used to include null fields in Patch requests.
24379	NullFields []string `json:"-"`
24380}
24381
24382func (s *ServiceAccount) MarshalJSON() ([]byte, error) {
24383	type NoMethod ServiceAccount
24384	raw := NoMethod(*s)
24385	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24386}
24387
24388// ShieldedInstanceConfig: A set of Shielded Instance options.
24389type ShieldedInstanceConfig struct {
24390	// EnableIntegrityMonitoring: Defines whether the instance has integrity
24391	// monitoring enabled.
24392	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
24393
24394	// EnableSecureBoot: Defines whether the instance has Secure Boot
24395	// enabled.
24396	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
24397
24398	// EnableVtpm: Defines whether the instance has the vTPM enabled.
24399	EnableVtpm bool `json:"enableVtpm,omitempty"`
24400
24401	// ForceSendFields is a list of field names (e.g.
24402	// "EnableIntegrityMonitoring") to unconditionally include in API
24403	// requests. By default, fields with empty values are omitted from API
24404	// requests. However, any non-pointer, non-interface field appearing in
24405	// ForceSendFields will be sent to the server regardless of whether the
24406	// field is empty or not. This may be used to include empty fields in
24407	// Patch requests.
24408	ForceSendFields []string `json:"-"`
24409
24410	// NullFields is a list of field names (e.g.
24411	// "EnableIntegrityMonitoring") to include in API requests with the JSON
24412	// null value. By default, fields with empty values are omitted from API
24413	// requests. However, any field with an empty value appearing in
24414	// NullFields will be sent to the server as null. It is an error if a
24415	// field in this list has a non-empty value. This may be used to include
24416	// null fields in Patch requests.
24417	NullFields []string `json:"-"`
24418}
24419
24420func (s *ShieldedInstanceConfig) MarshalJSON() ([]byte, error) {
24421	type NoMethod ShieldedInstanceConfig
24422	raw := NoMethod(*s)
24423	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24424}
24425
24426// ShieldedInstanceIdentity: A shielded Instance identity entry.
24427type ShieldedInstanceIdentity struct {
24428	// EncryptionKey: An Endorsement Key (EK) issued to the Shielded
24429	// Instance's vTPM.
24430	EncryptionKey *ShieldedInstanceIdentityEntry `json:"encryptionKey,omitempty"`
24431
24432	// Kind: [Output Only] Type of the resource. Always
24433	// compute#shieldedInstanceIdentity for shielded Instance identity
24434	// entry.
24435	Kind string `json:"kind,omitempty"`
24436
24437	// SigningKey: An Attestation Key (AK) issued to the Shielded Instance's
24438	// vTPM.
24439	SigningKey *ShieldedInstanceIdentityEntry `json:"signingKey,omitempty"`
24440
24441	// ServerResponse contains the HTTP response code and headers from the
24442	// server.
24443	googleapi.ServerResponse `json:"-"`
24444
24445	// ForceSendFields is a list of field names (e.g. "EncryptionKey") to
24446	// unconditionally include in API requests. By default, fields with
24447	// empty values are omitted from API requests. However, any non-pointer,
24448	// non-interface field appearing in ForceSendFields will be sent to the
24449	// server regardless of whether the field is empty or not. This may be
24450	// used to include empty fields in Patch requests.
24451	ForceSendFields []string `json:"-"`
24452
24453	// NullFields is a list of field names (e.g. "EncryptionKey") to include
24454	// in API requests with the JSON null value. By default, fields with
24455	// empty values are omitted from API requests. However, any field with
24456	// an empty value appearing in NullFields will be sent to the server as
24457	// null. It is an error if a field in this list has a non-empty value.
24458	// This may be used to include null fields in Patch requests.
24459	NullFields []string `json:"-"`
24460}
24461
24462func (s *ShieldedInstanceIdentity) MarshalJSON() ([]byte, error) {
24463	type NoMethod ShieldedInstanceIdentity
24464	raw := NoMethod(*s)
24465	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24466}
24467
24468// ShieldedInstanceIdentityEntry: A Shielded Instance Identity Entry.
24469type ShieldedInstanceIdentityEntry struct {
24470	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
24471	EkCert string `json:"ekCert,omitempty"`
24472
24473	// EkPub: A PEM-encoded public key.
24474	EkPub string `json:"ekPub,omitempty"`
24475
24476	// ForceSendFields is a list of field names (e.g. "EkCert") to
24477	// unconditionally include in API requests. By default, fields with
24478	// empty values are omitted from API requests. However, any non-pointer,
24479	// non-interface field appearing in ForceSendFields will be sent to the
24480	// server regardless of whether the field is empty or not. This may be
24481	// used to include empty fields in Patch requests.
24482	ForceSendFields []string `json:"-"`
24483
24484	// NullFields is a list of field names (e.g. "EkCert") to include in API
24485	// requests with the JSON null value. By default, fields with empty
24486	// values are omitted from API requests. However, any field with an
24487	// empty value appearing in NullFields will be sent to the server as
24488	// null. It is an error if a field in this list has a non-empty value.
24489	// This may be used to include null fields in Patch requests.
24490	NullFields []string `json:"-"`
24491}
24492
24493func (s *ShieldedInstanceIdentityEntry) MarshalJSON() ([]byte, error) {
24494	type NoMethod ShieldedInstanceIdentityEntry
24495	raw := NoMethod(*s)
24496	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24497}
24498
24499// ShieldedInstanceIntegrityPolicy: The policy describes the baseline
24500// against which Instance boot integrity is measured.
24501type ShieldedInstanceIntegrityPolicy struct {
24502	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using
24503	// the measurements from the VM instance's most recent boot.
24504	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
24505
24506	// ForceSendFields is a list of field names (e.g.
24507	// "UpdateAutoLearnPolicy") to unconditionally include in API requests.
24508	// By default, fields with empty values are omitted from API requests.
24509	// However, any non-pointer, non-interface field appearing in
24510	// ForceSendFields will be sent to the server regardless of whether the
24511	// field is empty or not. This may be used to include empty fields in
24512	// Patch requests.
24513	ForceSendFields []string `json:"-"`
24514
24515	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
24516	// include in API requests with the JSON null value. By default, fields
24517	// with empty values are omitted from API requests. However, any field
24518	// with an empty value appearing in NullFields will be sent to the
24519	// server as null. It is an error if a field in this list has a
24520	// non-empty value. This may be used to include null fields in Patch
24521	// requests.
24522	NullFields []string `json:"-"`
24523}
24524
24525func (s *ShieldedInstanceIntegrityPolicy) MarshalJSON() ([]byte, error) {
24526	type NoMethod ShieldedInstanceIntegrityPolicy
24527	raw := NoMethod(*s)
24528	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24529}
24530
24531// SignedUrlKey: Represents a customer-supplied Signing Key used by
24532// Cloud CDN Signed URLs
24533type SignedUrlKey struct {
24534	// KeyName: Name of the key. The name must be 1-63 characters long, and
24535	// comply with RFC1035. Specifically, the name must be 1-63 characters
24536	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
24537	// which means the first character must be a lowercase letter, and all
24538	// following characters must be a dash, lowercase letter, or digit,
24539	// except the last character, which cannot be a dash.
24540	KeyName string `json:"keyName,omitempty"`
24541
24542	// KeyValue: 128-bit key value used for signing the URL. The key value
24543	// must be a valid RFC 4648 Section 5 base64url encoded string.
24544	KeyValue string `json:"keyValue,omitempty"`
24545
24546	// ForceSendFields is a list of field names (e.g. "KeyName") to
24547	// unconditionally include in API requests. By default, fields with
24548	// empty values are omitted from API requests. However, any non-pointer,
24549	// non-interface field appearing in ForceSendFields will be sent to the
24550	// server regardless of whether the field is empty or not. This may be
24551	// used to include empty fields in Patch requests.
24552	ForceSendFields []string `json:"-"`
24553
24554	// NullFields is a list of field names (e.g. "KeyName") to include in
24555	// API requests with the JSON null value. By default, fields with empty
24556	// values are omitted from API requests. However, any field with an
24557	// empty value appearing in NullFields will be sent to the server as
24558	// null. It is an error if a field in this list has a non-empty value.
24559	// This may be used to include null fields in Patch requests.
24560	NullFields []string `json:"-"`
24561}
24562
24563func (s *SignedUrlKey) MarshalJSON() ([]byte, error) {
24564	type NoMethod SignedUrlKey
24565	raw := NoMethod(*s)
24566	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24567}
24568
24569// Snapshot: A persistent disk snapshot resource. (== resource_for
24570// beta.snapshots ==) (== resource_for v1.snapshots ==)
24571type Snapshot struct {
24572	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
24573	// format.
24574	CreationTimestamp string `json:"creationTimestamp,omitempty"`
24575
24576	// Description: An optional description of this resource. Provide this
24577	// property when you create the resource.
24578	Description string `json:"description,omitempty"`
24579
24580	// DiskSizeGb: [Output Only] Size of the snapshot, specified in GB.
24581	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
24582
24583	// Id: [Output Only] The unique identifier for the resource. This
24584	// identifier is defined by the server.
24585	Id uint64 `json:"id,omitempty,string"`
24586
24587	// Kind: [Output Only] Type of the resource. Always compute#snapshot for
24588	// Snapshot resources.
24589	Kind string `json:"kind,omitempty"`
24590
24591	// LabelFingerprint: A fingerprint for the labels being applied to this
24592	// snapshot, which is essentially a hash of the labels set used for
24593	// optimistic locking. The fingerprint is initially generated by Compute
24594	// Engine and changes after every request to modify or update labels.
24595	// You must always provide an up-to-date fingerprint hash in order to
24596	// update or change labels, otherwise the request will fail with error
24597	// 412 conditionNotMet.
24598	//
24599	// To see the latest fingerprint, make a get() request to retrieve a
24600	// snapshot.
24601	LabelFingerprint string `json:"labelFingerprint,omitempty"`
24602
24603	// Labels: Labels to apply to this snapshot. These can be later modified
24604	// by the setLabels method. Label values may be empty.
24605	Labels map[string]string `json:"labels,omitempty"`
24606
24607	// LicenseCodes: [Output Only] Integer license codes indicating which
24608	// licenses are attached to this snapshot.
24609	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
24610
24611	// Licenses: [Output Only] A list of public visible licenses that apply
24612	// to this snapshot. This can be because the original image had licenses
24613	// attached (such as a Windows image).
24614	Licenses []string `json:"licenses,omitempty"`
24615
24616	// Name: Name of the resource; provided by the client when the resource
24617	// is created. The name must be 1-63 characters long, and comply with
24618	// RFC1035. Specifically, the name must be 1-63 characters long and
24619	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
24620	// the first character must be a lowercase letter, and all following
24621	// characters must be a dash, lowercase letter, or digit, except the
24622	// last character, which cannot be a dash.
24623	Name string `json:"name,omitempty"`
24624
24625	// SelfLink: [Output Only] Server-defined URL for the resource.
24626	SelfLink string `json:"selfLink,omitempty"`
24627
24628	// SnapshotEncryptionKey: Encrypts the snapshot using a
24629	// customer-supplied encryption key.
24630	//
24631	// After you encrypt a snapshot using a customer-supplied key, you must
24632	// provide the same key if you use the image later For example, you must
24633	// provide the encryption key when you create a disk from the encrypted
24634	// snapshot in a future request.
24635	//
24636	// Customer-supplied encryption keys do not protect access to metadata
24637	// of the disk.
24638	//
24639	// If you do not provide an encryption key when creating the snapshot,
24640	// then the snapshot will be encrypted using an automatically generated
24641	// key and you do not need to provide a key to use the snapshot later.
24642	SnapshotEncryptionKey *CustomerEncryptionKey `json:"snapshotEncryptionKey,omitempty"`
24643
24644	// SourceDisk: [Output Only] The source disk used to create this
24645	// snapshot.
24646	SourceDisk string `json:"sourceDisk,omitempty"`
24647
24648	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
24649	// source disk. Required if the source disk is protected by a
24650	// customer-supplied encryption key.
24651	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
24652
24653	// SourceDiskId: [Output Only] The ID value of the disk used to create
24654	// this snapshot. This value may be used to determine whether the
24655	// snapshot was taken from the current or a previous instance of a given
24656	// disk name.
24657	SourceDiskId string `json:"sourceDiskId,omitempty"`
24658
24659	// Status: [Output Only] The status of the snapshot. This can be
24660	// CREATING, DELETING, FAILED, READY, or UPLOADING.
24661	//
24662	// Possible values:
24663	//   "CREATING"
24664	//   "DELETING"
24665	//   "FAILED"
24666	//   "READY"
24667	//   "UPLOADING"
24668	Status string `json:"status,omitempty"`
24669
24670	// StorageBytes: [Output Only] A size of the storage used by the
24671	// snapshot. As snapshots share storage, this number is expected to
24672	// change with snapshot creation/deletion.
24673	StorageBytes int64 `json:"storageBytes,omitempty,string"`
24674
24675	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
24676	// is in a stable state or it is being adjusted as a result of shared
24677	// storage reallocation. This status can either be UPDATING, meaning the
24678	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
24679	// size of the snapshot is up-to-date.
24680	//
24681	// Possible values:
24682	//   "UPDATING"
24683	//   "UP_TO_DATE"
24684	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
24685
24686	// StorageLocations: GCS bucket storage location of the snapshot
24687	// (regional or multi-regional).
24688	StorageLocations []string `json:"storageLocations,omitempty"`
24689
24690	// ServerResponse contains the HTTP response code and headers from the
24691	// server.
24692	googleapi.ServerResponse `json:"-"`
24693
24694	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
24695	// to unconditionally include in API requests. By default, fields with
24696	// empty values are omitted from API requests. However, any non-pointer,
24697	// non-interface field appearing in ForceSendFields will be sent to the
24698	// server regardless of whether the field is empty or not. This may be
24699	// used to include empty fields in Patch requests.
24700	ForceSendFields []string `json:"-"`
24701
24702	// NullFields is a list of field names (e.g. "CreationTimestamp") to
24703	// include in API requests with the JSON null value. By default, fields
24704	// with empty values are omitted from API requests. However, any field
24705	// with an empty value appearing in NullFields will be sent to the
24706	// server as null. It is an error if a field in this list has a
24707	// non-empty value. This may be used to include null fields in Patch
24708	// requests.
24709	NullFields []string `json:"-"`
24710}
24711
24712func (s *Snapshot) MarshalJSON() ([]byte, error) {
24713	type NoMethod Snapshot
24714	raw := NoMethod(*s)
24715	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24716}
24717
24718// SnapshotList: Contains a list of Snapshot resources.
24719type SnapshotList struct {
24720	// Id: [Output Only] Unique identifier for the resource; defined by the
24721	// server.
24722	Id string `json:"id,omitempty"`
24723
24724	// Items: A list of Snapshot resources.
24725	Items []*Snapshot `json:"items,omitempty"`
24726
24727	// Kind: Type of resource.
24728	Kind string `json:"kind,omitempty"`
24729
24730	// NextPageToken: [Output Only] This token allows you to get the next
24731	// page of results for list requests. If the number of results is larger
24732	// than maxResults, use the nextPageToken as a value for the query
24733	// parameter pageToken in the next list request. Subsequent list
24734	// requests will have their own nextPageToken to continue paging through
24735	// the results.
24736	NextPageToken string `json:"nextPageToken,omitempty"`
24737
24738	// SelfLink: [Output Only] Server-defined URL for this resource.
24739	SelfLink string `json:"selfLink,omitempty"`
24740
24741	// Warning: [Output Only] Informational warning message.
24742	Warning *SnapshotListWarning `json:"warning,omitempty"`
24743
24744	// ServerResponse contains the HTTP response code and headers from the
24745	// server.
24746	googleapi.ServerResponse `json:"-"`
24747
24748	// ForceSendFields is a list of field names (e.g. "Id") to
24749	// unconditionally include in API requests. By default, fields with
24750	// empty values are omitted from API requests. However, any non-pointer,
24751	// non-interface field appearing in ForceSendFields will be sent to the
24752	// server regardless of whether the field is empty or not. This may be
24753	// used to include empty fields in Patch requests.
24754	ForceSendFields []string `json:"-"`
24755
24756	// NullFields is a list of field names (e.g. "Id") to include in API
24757	// requests with the JSON null value. By default, fields with empty
24758	// values are omitted from API requests. However, any field with an
24759	// empty value appearing in NullFields will be sent to the server as
24760	// null. It is an error if a field in this list has a non-empty value.
24761	// This may be used to include null fields in Patch requests.
24762	NullFields []string `json:"-"`
24763}
24764
24765func (s *SnapshotList) MarshalJSON() ([]byte, error) {
24766	type NoMethod SnapshotList
24767	raw := NoMethod(*s)
24768	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24769}
24770
24771// SnapshotListWarning: [Output Only] Informational warning message.
24772type SnapshotListWarning struct {
24773	// Code: [Output Only] A warning code, if applicable. For example,
24774	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24775	// the response.
24776	//
24777	// Possible values:
24778	//   "CLEANUP_FAILED"
24779	//   "DEPRECATED_RESOURCE_USED"
24780	//   "DEPRECATED_TYPE_USED"
24781	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24782	//   "EXPERIMENTAL_TYPE_USED"
24783	//   "EXTERNAL_API_WARNING"
24784	//   "FIELD_VALUE_OVERRIDEN"
24785	//   "INJECTED_KERNELS_DEPRECATED"
24786	//   "MISSING_TYPE_DEPENDENCY"
24787	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24788	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24789	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24790	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24791	//   "NEXT_HOP_NOT_RUNNING"
24792	//   "NOT_CRITICAL_ERROR"
24793	//   "NO_RESULTS_ON_PAGE"
24794	//   "REQUIRED_TOS_AGREEMENT"
24795	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24796	//   "RESOURCE_NOT_DELETED"
24797	//   "SCHEMA_VALIDATION_IGNORED"
24798	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24799	//   "UNDECLARED_PROPERTIES"
24800	//   "UNREACHABLE"
24801	Code string `json:"code,omitempty"`
24802
24803	// Data: [Output Only] Metadata about this warning in key: value format.
24804	// For example:
24805	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24806	Data []*SnapshotListWarningData `json:"data,omitempty"`
24807
24808	// Message: [Output Only] A human-readable description of the warning
24809	// code.
24810	Message string `json:"message,omitempty"`
24811
24812	// ForceSendFields is a list of field names (e.g. "Code") to
24813	// unconditionally include in API requests. By default, fields with
24814	// empty values are omitted from API requests. However, any non-pointer,
24815	// non-interface field appearing in ForceSendFields will be sent to the
24816	// server regardless of whether the field is empty or not. This may be
24817	// used to include empty fields in Patch requests.
24818	ForceSendFields []string `json:"-"`
24819
24820	// NullFields is a list of field names (e.g. "Code") to include in API
24821	// requests with the JSON null value. By default, fields with empty
24822	// values are omitted from API requests. However, any field with an
24823	// empty value appearing in NullFields will be sent to the server as
24824	// null. It is an error if a field in this list has a non-empty value.
24825	// This may be used to include null fields in Patch requests.
24826	NullFields []string `json:"-"`
24827}
24828
24829func (s *SnapshotListWarning) MarshalJSON() ([]byte, error) {
24830	type NoMethod SnapshotListWarning
24831	raw := NoMethod(*s)
24832	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24833}
24834
24835type SnapshotListWarningData struct {
24836	// Key: [Output Only] A key that provides more detail on the warning
24837	// being returned. For example, for warnings where there are no results
24838	// in a list request for a particular zone, this key might be scope and
24839	// the key value might be the zone name. Other examples might be a key
24840	// indicating a deprecated resource and a suggested replacement, or a
24841	// warning about invalid network settings (for example, if an instance
24842	// attempts to perform IP forwarding but is not enabled for IP
24843	// forwarding).
24844	Key string `json:"key,omitempty"`
24845
24846	// Value: [Output Only] A warning data value corresponding to the key.
24847	Value string `json:"value,omitempty"`
24848
24849	// ForceSendFields is a list of field names (e.g. "Key") to
24850	// unconditionally include in API requests. By default, fields with
24851	// empty values are omitted from API requests. However, any non-pointer,
24852	// non-interface field appearing in ForceSendFields will be sent to the
24853	// server regardless of whether the field is empty or not. This may be
24854	// used to include empty fields in Patch requests.
24855	ForceSendFields []string `json:"-"`
24856
24857	// NullFields is a list of field names (e.g. "Key") to include in API
24858	// requests with the JSON null value. By default, fields with empty
24859	// values are omitted from API requests. However, any field with an
24860	// empty value appearing in NullFields will be sent to the server as
24861	// null. It is an error if a field in this list has a non-empty value.
24862	// This may be used to include null fields in Patch requests.
24863	NullFields []string `json:"-"`
24864}
24865
24866func (s *SnapshotListWarningData) MarshalJSON() ([]byte, error) {
24867	type NoMethod SnapshotListWarningData
24868	raw := NoMethod(*s)
24869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24870}
24871
24872// SourceInstanceParams: A specification of the parameters to use when
24873// creating the instance template from a source instance.
24874type SourceInstanceParams struct {
24875	// DiskConfigs: Attached disks configuration. If not provided, defaults
24876	// are applied: For boot disk and any other R/W disks, new custom images
24877	// will be created from each disk. For read-only disks, they will be
24878	// attached in read-only mode. Local SSD disks will be created as blank
24879	// volumes.
24880	DiskConfigs []*DiskInstantiationConfig `json:"diskConfigs,omitempty"`
24881
24882	// ForceSendFields is a list of field names (e.g. "DiskConfigs") to
24883	// unconditionally include in API requests. By default, fields with
24884	// empty values are omitted from API requests. However, any non-pointer,
24885	// non-interface field appearing in ForceSendFields will be sent to the
24886	// server regardless of whether the field is empty or not. This may be
24887	// used to include empty fields in Patch requests.
24888	ForceSendFields []string `json:"-"`
24889
24890	// NullFields is a list of field names (e.g. "DiskConfigs") to include
24891	// in API requests with the JSON null value. By default, fields with
24892	// empty values are omitted from API requests. However, any field with
24893	// an empty value appearing in NullFields will be sent to the server as
24894	// null. It is an error if a field in this list has a non-empty value.
24895	// This may be used to include null fields in Patch requests.
24896	NullFields []string `json:"-"`
24897}
24898
24899func (s *SourceInstanceParams) MarshalJSON() ([]byte, error) {
24900	type NoMethod SourceInstanceParams
24901	raw := NoMethod(*s)
24902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24903}
24904
24905// SslCertificate: An SslCertificate resource. This resource provides a
24906// mechanism to upload an SSL key and certificate to the load balancer
24907// to serve secure connections from the user. (== resource_for
24908// beta.sslCertificates ==) (== resource_for v1.sslCertificates ==)
24909type SslCertificate struct {
24910	// Certificate: A local certificate file. The certificate must be in PEM
24911	// format. The certificate chain must be no greater than 5 certs long.
24912	// The chain must include at least one intermediate cert.
24913	Certificate string `json:"certificate,omitempty"`
24914
24915	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
24916	// format.
24917	CreationTimestamp string `json:"creationTimestamp,omitempty"`
24918
24919	// Description: An optional description of this resource. Provide this
24920	// property when you create the resource.
24921	Description string `json:"description,omitempty"`
24922
24923	// Id: [Output Only] The unique identifier for the resource. This
24924	// identifier is defined by the server.
24925	Id uint64 `json:"id,omitempty,string"`
24926
24927	// Kind: [Output Only] Type of the resource. Always
24928	// compute#sslCertificate for SSL certificates.
24929	Kind string `json:"kind,omitempty"`
24930
24931	// Name: Name of the resource. Provided by the client when the resource
24932	// is created. The name must be 1-63 characters long, and comply with
24933	// RFC1035. Specifically, the name must be 1-63 characters long and
24934	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
24935	// the first character must be a lowercase letter, and all following
24936	// characters must be a dash, lowercase letter, or digit, except the
24937	// last character, which cannot be a dash.
24938	Name string `json:"name,omitempty"`
24939
24940	// PrivateKey: A write-only private key in PEM format. Only insert
24941	// requests will include this field.
24942	PrivateKey string `json:"privateKey,omitempty"`
24943
24944	// SelfLink: [Output only] Server-defined URL for the resource.
24945	SelfLink string `json:"selfLink,omitempty"`
24946
24947	// ServerResponse contains the HTTP response code and headers from the
24948	// server.
24949	googleapi.ServerResponse `json:"-"`
24950
24951	// ForceSendFields is a list of field names (e.g. "Certificate") to
24952	// unconditionally include in API requests. By default, fields with
24953	// empty values are omitted from API requests. However, any non-pointer,
24954	// non-interface field appearing in ForceSendFields will be sent to the
24955	// server regardless of whether the field is empty or not. This may be
24956	// used to include empty fields in Patch requests.
24957	ForceSendFields []string `json:"-"`
24958
24959	// NullFields is a list of field names (e.g. "Certificate") to include
24960	// in API requests with the JSON null value. By default, fields with
24961	// empty values are omitted from API requests. However, any field with
24962	// an empty value appearing in NullFields will be sent to the server as
24963	// null. It is an error if a field in this list has a non-empty value.
24964	// This may be used to include null fields in Patch requests.
24965	NullFields []string `json:"-"`
24966}
24967
24968func (s *SslCertificate) MarshalJSON() ([]byte, error) {
24969	type NoMethod SslCertificate
24970	raw := NoMethod(*s)
24971	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24972}
24973
24974// SslCertificateList: Contains a list of SslCertificate resources.
24975type SslCertificateList struct {
24976	// Id: [Output Only] Unique identifier for the resource; defined by the
24977	// server.
24978	Id string `json:"id,omitempty"`
24979
24980	// Items: A list of SslCertificate resources.
24981	Items []*SslCertificate `json:"items,omitempty"`
24982
24983	// Kind: Type of resource.
24984	Kind string `json:"kind,omitempty"`
24985
24986	// NextPageToken: [Output Only] This token allows you to get the next
24987	// page of results for list requests. If the number of results is larger
24988	// than maxResults, use the nextPageToken as a value for the query
24989	// parameter pageToken in the next list request. Subsequent list
24990	// requests will have their own nextPageToken to continue paging through
24991	// the results.
24992	NextPageToken string `json:"nextPageToken,omitempty"`
24993
24994	// SelfLink: [Output Only] Server-defined URL for this resource.
24995	SelfLink string `json:"selfLink,omitempty"`
24996
24997	// Warning: [Output Only] Informational warning message.
24998	Warning *SslCertificateListWarning `json:"warning,omitempty"`
24999
25000	// ServerResponse contains the HTTP response code and headers from the
25001	// server.
25002	googleapi.ServerResponse `json:"-"`
25003
25004	// ForceSendFields is a list of field names (e.g. "Id") to
25005	// unconditionally include in API requests. By default, fields with
25006	// empty values are omitted from API requests. However, any non-pointer,
25007	// non-interface field appearing in ForceSendFields will be sent to the
25008	// server regardless of whether the field is empty or not. This may be
25009	// used to include empty fields in Patch requests.
25010	ForceSendFields []string `json:"-"`
25011
25012	// NullFields is a list of field names (e.g. "Id") to include in API
25013	// requests with the JSON null value. By default, fields with empty
25014	// values are omitted from API requests. However, any field with an
25015	// empty value appearing in NullFields will be sent to the server as
25016	// null. It is an error if a field in this list has a non-empty value.
25017	// This may be used to include null fields in Patch requests.
25018	NullFields []string `json:"-"`
25019}
25020
25021func (s *SslCertificateList) MarshalJSON() ([]byte, error) {
25022	type NoMethod SslCertificateList
25023	raw := NoMethod(*s)
25024	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25025}
25026
25027// SslCertificateListWarning: [Output Only] Informational warning
25028// message.
25029type SslCertificateListWarning struct {
25030	// Code: [Output Only] A warning code, if applicable. For example,
25031	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25032	// the response.
25033	//
25034	// Possible values:
25035	//   "CLEANUP_FAILED"
25036	//   "DEPRECATED_RESOURCE_USED"
25037	//   "DEPRECATED_TYPE_USED"
25038	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25039	//   "EXPERIMENTAL_TYPE_USED"
25040	//   "EXTERNAL_API_WARNING"
25041	//   "FIELD_VALUE_OVERRIDEN"
25042	//   "INJECTED_KERNELS_DEPRECATED"
25043	//   "MISSING_TYPE_DEPENDENCY"
25044	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25045	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25046	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25047	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25048	//   "NEXT_HOP_NOT_RUNNING"
25049	//   "NOT_CRITICAL_ERROR"
25050	//   "NO_RESULTS_ON_PAGE"
25051	//   "REQUIRED_TOS_AGREEMENT"
25052	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25053	//   "RESOURCE_NOT_DELETED"
25054	//   "SCHEMA_VALIDATION_IGNORED"
25055	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25056	//   "UNDECLARED_PROPERTIES"
25057	//   "UNREACHABLE"
25058	Code string `json:"code,omitempty"`
25059
25060	// Data: [Output Only] Metadata about this warning in key: value format.
25061	// For example:
25062	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25063	Data []*SslCertificateListWarningData `json:"data,omitempty"`
25064
25065	// Message: [Output Only] A human-readable description of the warning
25066	// code.
25067	Message string `json:"message,omitempty"`
25068
25069	// ForceSendFields is a list of field names (e.g. "Code") to
25070	// unconditionally include in API requests. By default, fields with
25071	// empty values are omitted from API requests. However, any non-pointer,
25072	// non-interface field appearing in ForceSendFields will be sent to the
25073	// server regardless of whether the field is empty or not. This may be
25074	// used to include empty fields in Patch requests.
25075	ForceSendFields []string `json:"-"`
25076
25077	// NullFields is a list of field names (e.g. "Code") to include in API
25078	// requests with the JSON null value. By default, fields with empty
25079	// values are omitted from API requests. However, any field with an
25080	// empty value appearing in NullFields will be sent to the server as
25081	// null. It is an error if a field in this list has a non-empty value.
25082	// This may be used to include null fields in Patch requests.
25083	NullFields []string `json:"-"`
25084}
25085
25086func (s *SslCertificateListWarning) MarshalJSON() ([]byte, error) {
25087	type NoMethod SslCertificateListWarning
25088	raw := NoMethod(*s)
25089	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25090}
25091
25092type SslCertificateListWarningData struct {
25093	// Key: [Output Only] A key that provides more detail on the warning
25094	// being returned. For example, for warnings where there are no results
25095	// in a list request for a particular zone, this key might be scope and
25096	// the key value might be the zone name. Other examples might be a key
25097	// indicating a deprecated resource and a suggested replacement, or a
25098	// warning about invalid network settings (for example, if an instance
25099	// attempts to perform IP forwarding but is not enabled for IP
25100	// forwarding).
25101	Key string `json:"key,omitempty"`
25102
25103	// Value: [Output Only] A warning data value corresponding to the key.
25104	Value string `json:"value,omitempty"`
25105
25106	// ForceSendFields is a list of field names (e.g. "Key") to
25107	// unconditionally include in API requests. By default, fields with
25108	// empty values are omitted from API requests. However, any non-pointer,
25109	// non-interface field appearing in ForceSendFields will be sent to the
25110	// server regardless of whether the field is empty or not. This may be
25111	// used to include empty fields in Patch requests.
25112	ForceSendFields []string `json:"-"`
25113
25114	// NullFields is a list of field names (e.g. "Key") to include in API
25115	// requests with the JSON null value. By default, fields with empty
25116	// values are omitted from API requests. However, any field with an
25117	// empty value appearing in NullFields will be sent to the server as
25118	// null. It is an error if a field in this list has a non-empty value.
25119	// This may be used to include null fields in Patch requests.
25120	NullFields []string `json:"-"`
25121}
25122
25123func (s *SslCertificateListWarningData) MarshalJSON() ([]byte, error) {
25124	type NoMethod SslCertificateListWarningData
25125	raw := NoMethod(*s)
25126	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25127}
25128
25129type SslPoliciesList struct {
25130	// Id: [Output Only] Unique identifier for the resource; defined by the
25131	// server.
25132	Id string `json:"id,omitempty"`
25133
25134	// Items: A list of SslPolicy resources.
25135	Items []*SslPolicy `json:"items,omitempty"`
25136
25137	// Kind: [Output Only] Type of the resource. Always
25138	// compute#sslPoliciesList for lists of sslPolicies.
25139	Kind string `json:"kind,omitempty"`
25140
25141	// NextPageToken: [Output Only] This token allows you to get the next
25142	// page of results for list requests. If the number of results is larger
25143	// than maxResults, use the nextPageToken as a value for the query
25144	// parameter pageToken in the next list request. Subsequent list
25145	// requests will have their own nextPageToken to continue paging through
25146	// the results.
25147	NextPageToken string `json:"nextPageToken,omitempty"`
25148
25149	// SelfLink: [Output Only] Server-defined URL for this resource.
25150	SelfLink string `json:"selfLink,omitempty"`
25151
25152	// Warning: [Output Only] Informational warning message.
25153	Warning *SslPoliciesListWarning `json:"warning,omitempty"`
25154
25155	// ServerResponse contains the HTTP response code and headers from the
25156	// server.
25157	googleapi.ServerResponse `json:"-"`
25158
25159	// ForceSendFields is a list of field names (e.g. "Id") to
25160	// unconditionally include in API requests. By default, fields with
25161	// empty values are omitted from API requests. However, any non-pointer,
25162	// non-interface field appearing in ForceSendFields will be sent to the
25163	// server regardless of whether the field is empty or not. This may be
25164	// used to include empty fields in Patch requests.
25165	ForceSendFields []string `json:"-"`
25166
25167	// NullFields is a list of field names (e.g. "Id") to include in API
25168	// requests with the JSON null value. By default, fields with empty
25169	// values are omitted from API requests. However, any field with an
25170	// empty value appearing in NullFields will be sent to the server as
25171	// null. It is an error if a field in this list has a non-empty value.
25172	// This may be used to include null fields in Patch requests.
25173	NullFields []string `json:"-"`
25174}
25175
25176func (s *SslPoliciesList) MarshalJSON() ([]byte, error) {
25177	type NoMethod SslPoliciesList
25178	raw := NoMethod(*s)
25179	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25180}
25181
25182// SslPoliciesListWarning: [Output Only] Informational warning message.
25183type SslPoliciesListWarning struct {
25184	// Code: [Output Only] A warning code, if applicable. For example,
25185	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25186	// the response.
25187	//
25188	// Possible values:
25189	//   "CLEANUP_FAILED"
25190	//   "DEPRECATED_RESOURCE_USED"
25191	//   "DEPRECATED_TYPE_USED"
25192	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25193	//   "EXPERIMENTAL_TYPE_USED"
25194	//   "EXTERNAL_API_WARNING"
25195	//   "FIELD_VALUE_OVERRIDEN"
25196	//   "INJECTED_KERNELS_DEPRECATED"
25197	//   "MISSING_TYPE_DEPENDENCY"
25198	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25199	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25200	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25201	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25202	//   "NEXT_HOP_NOT_RUNNING"
25203	//   "NOT_CRITICAL_ERROR"
25204	//   "NO_RESULTS_ON_PAGE"
25205	//   "REQUIRED_TOS_AGREEMENT"
25206	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25207	//   "RESOURCE_NOT_DELETED"
25208	//   "SCHEMA_VALIDATION_IGNORED"
25209	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25210	//   "UNDECLARED_PROPERTIES"
25211	//   "UNREACHABLE"
25212	Code string `json:"code,omitempty"`
25213
25214	// Data: [Output Only] Metadata about this warning in key: value format.
25215	// For example:
25216	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25217	Data []*SslPoliciesListWarningData `json:"data,omitempty"`
25218
25219	// Message: [Output Only] A human-readable description of the warning
25220	// code.
25221	Message string `json:"message,omitempty"`
25222
25223	// ForceSendFields is a list of field names (e.g. "Code") to
25224	// unconditionally include in API requests. By default, fields with
25225	// empty values are omitted from API requests. However, any non-pointer,
25226	// non-interface field appearing in ForceSendFields will be sent to the
25227	// server regardless of whether the field is empty or not. This may be
25228	// used to include empty fields in Patch requests.
25229	ForceSendFields []string `json:"-"`
25230
25231	// NullFields is a list of field names (e.g. "Code") to include in API
25232	// requests with the JSON null value. By default, fields with empty
25233	// values are omitted from API requests. However, any field with an
25234	// empty value appearing in NullFields will be sent to the server as
25235	// null. It is an error if a field in this list has a non-empty value.
25236	// This may be used to include null fields in Patch requests.
25237	NullFields []string `json:"-"`
25238}
25239
25240func (s *SslPoliciesListWarning) MarshalJSON() ([]byte, error) {
25241	type NoMethod SslPoliciesListWarning
25242	raw := NoMethod(*s)
25243	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25244}
25245
25246type SslPoliciesListWarningData struct {
25247	// Key: [Output Only] A key that provides more detail on the warning
25248	// being returned. For example, for warnings where there are no results
25249	// in a list request for a particular zone, this key might be scope and
25250	// the key value might be the zone name. Other examples might be a key
25251	// indicating a deprecated resource and a suggested replacement, or a
25252	// warning about invalid network settings (for example, if an instance
25253	// attempts to perform IP forwarding but is not enabled for IP
25254	// forwarding).
25255	Key string `json:"key,omitempty"`
25256
25257	// Value: [Output Only] A warning data value corresponding to the key.
25258	Value string `json:"value,omitempty"`
25259
25260	// ForceSendFields is a list of field names (e.g. "Key") to
25261	// unconditionally include in API requests. By default, fields with
25262	// empty values are omitted from API requests. However, any non-pointer,
25263	// non-interface field appearing in ForceSendFields will be sent to the
25264	// server regardless of whether the field is empty or not. This may be
25265	// used to include empty fields in Patch requests.
25266	ForceSendFields []string `json:"-"`
25267
25268	// NullFields is a list of field names (e.g. "Key") to include in API
25269	// requests with the JSON null value. By default, fields with empty
25270	// values are omitted from API requests. However, any field with an
25271	// empty value appearing in NullFields will be sent to the server as
25272	// null. It is an error if a field in this list has a non-empty value.
25273	// This may be used to include null fields in Patch requests.
25274	NullFields []string `json:"-"`
25275}
25276
25277func (s *SslPoliciesListWarningData) MarshalJSON() ([]byte, error) {
25278	type NoMethod SslPoliciesListWarningData
25279	raw := NoMethod(*s)
25280	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25281}
25282
25283type SslPoliciesListAvailableFeaturesResponse struct {
25284	Features []string `json:"features,omitempty"`
25285
25286	// ServerResponse contains the HTTP response code and headers from the
25287	// server.
25288	googleapi.ServerResponse `json:"-"`
25289
25290	// ForceSendFields is a list of field names (e.g. "Features") to
25291	// unconditionally include in API requests. By default, fields with
25292	// empty values are omitted from API requests. However, any non-pointer,
25293	// non-interface field appearing in ForceSendFields will be sent to the
25294	// server regardless of whether the field is empty or not. This may be
25295	// used to include empty fields in Patch requests.
25296	ForceSendFields []string `json:"-"`
25297
25298	// NullFields is a list of field names (e.g. "Features") to include in
25299	// API requests with the JSON null value. By default, fields with empty
25300	// values are omitted from API requests. However, any field with an
25301	// empty value appearing in NullFields will be sent to the server as
25302	// null. It is an error if a field in this list has a non-empty value.
25303	// This may be used to include null fields in Patch requests.
25304	NullFields []string `json:"-"`
25305}
25306
25307func (s *SslPoliciesListAvailableFeaturesResponse) MarshalJSON() ([]byte, error) {
25308	type NoMethod SslPoliciesListAvailableFeaturesResponse
25309	raw := NoMethod(*s)
25310	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25311}
25312
25313// SslPolicy: A SSL policy specifies the server-side support for SSL
25314// features. This can be attached to a TargetHttpsProxy or a
25315// TargetSslProxy. This affects connections between clients and the
25316// HTTPS or SSL proxy load balancer. They do not affect the connection
25317// between the load balancers and the backends.
25318type SslPolicy struct {
25319	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
25320	// format.
25321	CreationTimestamp string `json:"creationTimestamp,omitempty"`
25322
25323	// CustomFeatures: A list of features enabled when the selected profile
25324	// is CUSTOM. The
25325	// - method returns the set of features that can be specified in this
25326	// list. This field must be empty if the profile is not CUSTOM.
25327	CustomFeatures []string `json:"customFeatures,omitempty"`
25328
25329	// Description: An optional description of this resource. Provide this
25330	// property when you create the resource.
25331	Description string `json:"description,omitempty"`
25332
25333	// EnabledFeatures: [Output Only] The list of features enabled in the
25334	// SSL policy.
25335	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
25336
25337	// Fingerprint: Fingerprint of this resource. A hash of the contents
25338	// stored in this object. This field is used in optimistic locking. This
25339	// field will be ignored when inserting a SslPolicy. An up-to-date
25340	// fingerprint must be provided in order to update the SslPolicy,
25341	// otherwise the request will fail with error 412 conditionNotMet.
25342	//
25343	// To see the latest fingerprint, make a get() request to retrieve an
25344	// SslPolicy.
25345	Fingerprint string `json:"fingerprint,omitempty"`
25346
25347	// Id: [Output Only] The unique identifier for the resource. This
25348	// identifier is defined by the server.
25349	Id uint64 `json:"id,omitempty,string"`
25350
25351	// Kind: [Output only] Type of the resource. Always compute#sslPolicyfor
25352	// SSL policies.
25353	Kind string `json:"kind,omitempty"`
25354
25355	// MinTlsVersion: The minimum version of SSL protocol that can be used
25356	// by the clients to establish a connection with the load balancer. This
25357	// can be one of TLS_1_0, TLS_1_1, TLS_1_2.
25358	//
25359	// Possible values:
25360	//   "TLS_1_0"
25361	//   "TLS_1_1"
25362	//   "TLS_1_2"
25363	MinTlsVersion string `json:"minTlsVersion,omitempty"`
25364
25365	// Name: Name of the resource. The name must be 1-63 characters long,
25366	// and comply with RFC1035. Specifically, the name must be 1-63
25367	// characters long and match the regular expression
25368	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
25369	// a lowercase letter, and all following characters must be a dash,
25370	// lowercase letter, or digit, except the last character, which cannot
25371	// be a dash.
25372	Name string `json:"name,omitempty"`
25373
25374	// Profile: Profile specifies the set of SSL features that can be used
25375	// by the load balancer when negotiating SSL with clients. This can be
25376	// one of COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM,
25377	// the set of SSL features to enable must be specified in the
25378	// customFeatures field.
25379	//
25380	// Possible values:
25381	//   "COMPATIBLE"
25382	//   "CUSTOM"
25383	//   "MODERN"
25384	//   "RESTRICTED"
25385	Profile string `json:"profile,omitempty"`
25386
25387	// SelfLink: [Output Only] Server-defined URL for the resource.
25388	SelfLink string `json:"selfLink,omitempty"`
25389
25390	// Warnings: [Output Only] If potential misconfigurations are detected
25391	// for this SSL policy, this field will be populated with warning
25392	// messages.
25393	Warnings []*SslPolicyWarnings `json:"warnings,omitempty"`
25394
25395	// ServerResponse contains the HTTP response code and headers from the
25396	// server.
25397	googleapi.ServerResponse `json:"-"`
25398
25399	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
25400	// to unconditionally include in API requests. By default, fields with
25401	// empty values are omitted from API requests. However, any non-pointer,
25402	// non-interface field appearing in ForceSendFields will be sent to the
25403	// server regardless of whether the field is empty or not. This may be
25404	// used to include empty fields in Patch requests.
25405	ForceSendFields []string `json:"-"`
25406
25407	// NullFields is a list of field names (e.g. "CreationTimestamp") to
25408	// include in API requests with the JSON null value. By default, fields
25409	// with empty values are omitted from API requests. However, any field
25410	// with an empty value appearing in NullFields will be sent to the
25411	// server as null. It is an error if a field in this list has a
25412	// non-empty value. This may be used to include null fields in Patch
25413	// requests.
25414	NullFields []string `json:"-"`
25415}
25416
25417func (s *SslPolicy) MarshalJSON() ([]byte, error) {
25418	type NoMethod SslPolicy
25419	raw := NoMethod(*s)
25420	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25421}
25422
25423type SslPolicyWarnings struct {
25424	// Code: [Output Only] A warning code, if applicable. For example,
25425	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25426	// the response.
25427	//
25428	// Possible values:
25429	//   "CLEANUP_FAILED"
25430	//   "DEPRECATED_RESOURCE_USED"
25431	//   "DEPRECATED_TYPE_USED"
25432	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25433	//   "EXPERIMENTAL_TYPE_USED"
25434	//   "EXTERNAL_API_WARNING"
25435	//   "FIELD_VALUE_OVERRIDEN"
25436	//   "INJECTED_KERNELS_DEPRECATED"
25437	//   "MISSING_TYPE_DEPENDENCY"
25438	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25439	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25440	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25441	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25442	//   "NEXT_HOP_NOT_RUNNING"
25443	//   "NOT_CRITICAL_ERROR"
25444	//   "NO_RESULTS_ON_PAGE"
25445	//   "REQUIRED_TOS_AGREEMENT"
25446	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25447	//   "RESOURCE_NOT_DELETED"
25448	//   "SCHEMA_VALIDATION_IGNORED"
25449	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25450	//   "UNDECLARED_PROPERTIES"
25451	//   "UNREACHABLE"
25452	Code string `json:"code,omitempty"`
25453
25454	// Data: [Output Only] Metadata about this warning in key: value format.
25455	// For example:
25456	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25457	Data []*SslPolicyWarningsData `json:"data,omitempty"`
25458
25459	// Message: [Output Only] A human-readable description of the warning
25460	// code.
25461	Message string `json:"message,omitempty"`
25462
25463	// ForceSendFields is a list of field names (e.g. "Code") to
25464	// unconditionally include in API requests. By default, fields with
25465	// empty values are omitted from API requests. However, any non-pointer,
25466	// non-interface field appearing in ForceSendFields will be sent to the
25467	// server regardless of whether the field is empty or not. This may be
25468	// used to include empty fields in Patch requests.
25469	ForceSendFields []string `json:"-"`
25470
25471	// NullFields is a list of field names (e.g. "Code") to include in API
25472	// requests with the JSON null value. By default, fields with empty
25473	// values are omitted from API requests. However, any field with an
25474	// empty value appearing in NullFields will be sent to the server as
25475	// null. It is an error if a field in this list has a non-empty value.
25476	// This may be used to include null fields in Patch requests.
25477	NullFields []string `json:"-"`
25478}
25479
25480func (s *SslPolicyWarnings) MarshalJSON() ([]byte, error) {
25481	type NoMethod SslPolicyWarnings
25482	raw := NoMethod(*s)
25483	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25484}
25485
25486type SslPolicyWarningsData struct {
25487	// Key: [Output Only] A key that provides more detail on the warning
25488	// being returned. For example, for warnings where there are no results
25489	// in a list request for a particular zone, this key might be scope and
25490	// the key value might be the zone name. Other examples might be a key
25491	// indicating a deprecated resource and a suggested replacement, or a
25492	// warning about invalid network settings (for example, if an instance
25493	// attempts to perform IP forwarding but is not enabled for IP
25494	// forwarding).
25495	Key string `json:"key,omitempty"`
25496
25497	// Value: [Output Only] A warning data value corresponding to the key.
25498	Value string `json:"value,omitempty"`
25499
25500	// ForceSendFields is a list of field names (e.g. "Key") to
25501	// unconditionally include in API requests. By default, fields with
25502	// empty values are omitted from API requests. However, any non-pointer,
25503	// non-interface field appearing in ForceSendFields will be sent to the
25504	// server regardless of whether the field is empty or not. This may be
25505	// used to include empty fields in Patch requests.
25506	ForceSendFields []string `json:"-"`
25507
25508	// NullFields is a list of field names (e.g. "Key") to include in API
25509	// requests with the JSON null value. By default, fields with empty
25510	// values are omitted from API requests. However, any field with an
25511	// empty value appearing in NullFields will be sent to the server as
25512	// null. It is an error if a field in this list has a non-empty value.
25513	// This may be used to include null fields in Patch requests.
25514	NullFields []string `json:"-"`
25515}
25516
25517func (s *SslPolicyWarningsData) MarshalJSON() ([]byte, error) {
25518	type NoMethod SslPolicyWarningsData
25519	raw := NoMethod(*s)
25520	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25521}
25522
25523type SslPolicyReference struct {
25524	// SslPolicy: URL of the SSL policy resource. Set this to empty string
25525	// to clear any existing SSL policy associated with the target proxy
25526	// resource.
25527	SslPolicy string `json:"sslPolicy,omitempty"`
25528
25529	// ForceSendFields is a list of field names (e.g. "SslPolicy") to
25530	// unconditionally include in API requests. By default, fields with
25531	// empty values are omitted from API requests. However, any non-pointer,
25532	// non-interface field appearing in ForceSendFields will be sent to the
25533	// server regardless of whether the field is empty or not. This may be
25534	// used to include empty fields in Patch requests.
25535	ForceSendFields []string `json:"-"`
25536
25537	// NullFields is a list of field names (e.g. "SslPolicy") to include in
25538	// API requests with the JSON null value. By default, fields with empty
25539	// values are omitted from API requests. However, any field with an
25540	// empty value appearing in NullFields will be sent to the server as
25541	// null. It is an error if a field in this list has a non-empty value.
25542	// This may be used to include null fields in Patch requests.
25543	NullFields []string `json:"-"`
25544}
25545
25546func (s *SslPolicyReference) MarshalJSON() ([]byte, error) {
25547	type NoMethod SslPolicyReference
25548	raw := NoMethod(*s)
25549	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25550}
25551
25552// Subnetwork: A Subnetwork resource. (== resource_for beta.subnetworks
25553// ==) (== resource_for v1.subnetworks ==)
25554type Subnetwork struct {
25555	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
25556	// format.
25557	CreationTimestamp string `json:"creationTimestamp,omitempty"`
25558
25559	// Description: An optional description of this resource. Provide this
25560	// property when you create the resource. This field can be set only at
25561	// resource creation time.
25562	Description string `json:"description,omitempty"`
25563
25564	// EnableFlowLogs: Whether to enable flow logging for this subnetwork.
25565	// If this field is not explicitly set, it will not appear in get
25566	// listings. If not set the default behavior is to disable flow logging.
25567	EnableFlowLogs bool `json:"enableFlowLogs,omitempty"`
25568
25569	// Fingerprint: Fingerprint of this resource. A hash of the contents
25570	// stored in this object. This field is used in optimistic locking. This
25571	// field will be ignored when inserting a Subnetwork. An up-to-date
25572	// fingerprint must be provided in order to update the Subnetwork,
25573	// otherwise the request will fail with error 412 conditionNotMet.
25574	//
25575	// To see the latest fingerprint, make a get() request to retrieve a
25576	// Subnetwork.
25577	Fingerprint string `json:"fingerprint,omitempty"`
25578
25579	// GatewayAddress: [Output Only] The gateway address for default routes
25580	// to reach destination addresses outside this subnetwork.
25581	GatewayAddress string `json:"gatewayAddress,omitempty"`
25582
25583	// Id: [Output Only] The unique identifier for the resource. This
25584	// identifier is defined by the server.
25585	Id uint64 `json:"id,omitempty,string"`
25586
25587	// IpCidrRange: The range of internal addresses that are owned by this
25588	// subnetwork. Provide this property when you create the subnetwork. For
25589	// example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and
25590	// non-overlapping within a network. Only IPv4 is supported. This field
25591	// can be set only at resource creation time.
25592	IpCidrRange string `json:"ipCidrRange,omitempty"`
25593
25594	// Kind: [Output Only] Type of the resource. Always compute#subnetwork
25595	// for Subnetwork resources.
25596	Kind string `json:"kind,omitempty"`
25597
25598	// Name: The name of the resource, provided by the client when initially
25599	// creating the resource. The name must be 1-63 characters long, and
25600	// comply with RFC1035. Specifically, the name must be 1-63 characters
25601	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
25602	// which means the first character must be a lowercase letter, and all
25603	// following characters must be a dash, lowercase letter, or digit,
25604	// except the last character, which cannot be a dash.
25605	Name string `json:"name,omitempty"`
25606
25607	// Network: The URL of the network to which this subnetwork belongs,
25608	// provided by the client when initially creating the subnetwork. Only
25609	// networks that are in the distributed mode can have subnetworks. This
25610	// field can be set only at resource creation time.
25611	Network string `json:"network,omitempty"`
25612
25613	// PrivateIpGoogleAccess: Whether the VMs in this subnet can access
25614	// Google services without assigned external IP addresses. This field
25615	// can be both set at resource creation time and updated using
25616	// setPrivateIpGoogleAccess.
25617	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
25618
25619	// Region: URL of the region where the Subnetwork resides. This field
25620	// can be set only at resource creation time.
25621	Region string `json:"region,omitempty"`
25622
25623	// SecondaryIpRanges: An array of configurations for secondary IP ranges
25624	// for VM instances contained in this subnetwork. The primary IP of such
25625	// VM must belong to the primary ipCidrRange of the subnetwork. The
25626	// alias IPs may belong to either primary or secondary ranges. This
25627	// field can be updated with a patch request.
25628	SecondaryIpRanges []*SubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
25629
25630	// SelfLink: [Output Only] Server-defined URL for the resource.
25631	SelfLink string `json:"selfLink,omitempty"`
25632
25633	// ServerResponse contains the HTTP response code and headers from the
25634	// server.
25635	googleapi.ServerResponse `json:"-"`
25636
25637	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
25638	// to unconditionally include in API requests. By default, fields with
25639	// empty values are omitted from API requests. However, any non-pointer,
25640	// non-interface field appearing in ForceSendFields will be sent to the
25641	// server regardless of whether the field is empty or not. This may be
25642	// used to include empty fields in Patch requests.
25643	ForceSendFields []string `json:"-"`
25644
25645	// NullFields is a list of field names (e.g. "CreationTimestamp") to
25646	// include in API requests with the JSON null value. By default, fields
25647	// with empty values are omitted from API requests. However, any field
25648	// with an empty value appearing in NullFields will be sent to the
25649	// server as null. It is an error if a field in this list has a
25650	// non-empty value. This may be used to include null fields in Patch
25651	// requests.
25652	NullFields []string `json:"-"`
25653}
25654
25655func (s *Subnetwork) MarshalJSON() ([]byte, error) {
25656	type NoMethod Subnetwork
25657	raw := NoMethod(*s)
25658	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25659}
25660
25661type SubnetworkAggregatedList struct {
25662	// Id: [Output Only] Unique identifier for the resource; defined by the
25663	// server.
25664	Id string `json:"id,omitempty"`
25665
25666	// Items: A list of SubnetworksScopedList resources.
25667	Items map[string]SubnetworksScopedList `json:"items,omitempty"`
25668
25669	// Kind: [Output Only] Type of resource. Always
25670	// compute#subnetworkAggregatedList for aggregated lists of subnetworks.
25671	Kind string `json:"kind,omitempty"`
25672
25673	// NextPageToken: [Output Only] This token allows you to get the next
25674	// page of results for list requests. If the number of results is larger
25675	// than maxResults, use the nextPageToken as a value for the query
25676	// parameter pageToken in the next list request. Subsequent list
25677	// requests will have their own nextPageToken to continue paging through
25678	// the results.
25679	NextPageToken string `json:"nextPageToken,omitempty"`
25680
25681	// SelfLink: [Output Only] Server-defined URL for this resource.
25682	SelfLink string `json:"selfLink,omitempty"`
25683
25684	// Warning: [Output Only] Informational warning message.
25685	Warning *SubnetworkAggregatedListWarning `json:"warning,omitempty"`
25686
25687	// ServerResponse contains the HTTP response code and headers from the
25688	// server.
25689	googleapi.ServerResponse `json:"-"`
25690
25691	// ForceSendFields is a list of field names (e.g. "Id") to
25692	// unconditionally include in API requests. By default, fields with
25693	// empty values are omitted from API requests. However, any non-pointer,
25694	// non-interface field appearing in ForceSendFields will be sent to the
25695	// server regardless of whether the field is empty or not. This may be
25696	// used to include empty fields in Patch requests.
25697	ForceSendFields []string `json:"-"`
25698
25699	// NullFields is a list of field names (e.g. "Id") to include in API
25700	// requests with the JSON null value. By default, fields with empty
25701	// values are omitted from API requests. However, any field with an
25702	// empty value appearing in NullFields will be sent to the server as
25703	// null. It is an error if a field in this list has a non-empty value.
25704	// This may be used to include null fields in Patch requests.
25705	NullFields []string `json:"-"`
25706}
25707
25708func (s *SubnetworkAggregatedList) MarshalJSON() ([]byte, error) {
25709	type NoMethod SubnetworkAggregatedList
25710	raw := NoMethod(*s)
25711	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25712}
25713
25714// SubnetworkAggregatedListWarning: [Output Only] Informational warning
25715// message.
25716type SubnetworkAggregatedListWarning struct {
25717	// Code: [Output Only] A warning code, if applicable. For example,
25718	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25719	// the response.
25720	//
25721	// Possible values:
25722	//   "CLEANUP_FAILED"
25723	//   "DEPRECATED_RESOURCE_USED"
25724	//   "DEPRECATED_TYPE_USED"
25725	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25726	//   "EXPERIMENTAL_TYPE_USED"
25727	//   "EXTERNAL_API_WARNING"
25728	//   "FIELD_VALUE_OVERRIDEN"
25729	//   "INJECTED_KERNELS_DEPRECATED"
25730	//   "MISSING_TYPE_DEPENDENCY"
25731	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25732	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25733	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25734	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25735	//   "NEXT_HOP_NOT_RUNNING"
25736	//   "NOT_CRITICAL_ERROR"
25737	//   "NO_RESULTS_ON_PAGE"
25738	//   "REQUIRED_TOS_AGREEMENT"
25739	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25740	//   "RESOURCE_NOT_DELETED"
25741	//   "SCHEMA_VALIDATION_IGNORED"
25742	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25743	//   "UNDECLARED_PROPERTIES"
25744	//   "UNREACHABLE"
25745	Code string `json:"code,omitempty"`
25746
25747	// Data: [Output Only] Metadata about this warning in key: value format.
25748	// For example:
25749	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25750	Data []*SubnetworkAggregatedListWarningData `json:"data,omitempty"`
25751
25752	// Message: [Output Only] A human-readable description of the warning
25753	// code.
25754	Message string `json:"message,omitempty"`
25755
25756	// ForceSendFields is a list of field names (e.g. "Code") to
25757	// unconditionally include in API requests. By default, fields with
25758	// empty values are omitted from API requests. However, any non-pointer,
25759	// non-interface field appearing in ForceSendFields will be sent to the
25760	// server regardless of whether the field is empty or not. This may be
25761	// used to include empty fields in Patch requests.
25762	ForceSendFields []string `json:"-"`
25763
25764	// NullFields is a list of field names (e.g. "Code") to include in API
25765	// requests with the JSON null value. By default, fields with empty
25766	// values are omitted from API requests. However, any field with an
25767	// empty value appearing in NullFields will be sent to the server as
25768	// null. It is an error if a field in this list has a non-empty value.
25769	// This may be used to include null fields in Patch requests.
25770	NullFields []string `json:"-"`
25771}
25772
25773func (s *SubnetworkAggregatedListWarning) MarshalJSON() ([]byte, error) {
25774	type NoMethod SubnetworkAggregatedListWarning
25775	raw := NoMethod(*s)
25776	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25777}
25778
25779type SubnetworkAggregatedListWarningData struct {
25780	// Key: [Output Only] A key that provides more detail on the warning
25781	// being returned. For example, for warnings where there are no results
25782	// in a list request for a particular zone, this key might be scope and
25783	// the key value might be the zone name. Other examples might be a key
25784	// indicating a deprecated resource and a suggested replacement, or a
25785	// warning about invalid network settings (for example, if an instance
25786	// attempts to perform IP forwarding but is not enabled for IP
25787	// forwarding).
25788	Key string `json:"key,omitempty"`
25789
25790	// Value: [Output Only] A warning data value corresponding to the key.
25791	Value string `json:"value,omitempty"`
25792
25793	// ForceSendFields is a list of field names (e.g. "Key") to
25794	// unconditionally include in API requests. By default, fields with
25795	// empty values are omitted from API requests. However, any non-pointer,
25796	// non-interface field appearing in ForceSendFields will be sent to the
25797	// server regardless of whether the field is empty or not. This may be
25798	// used to include empty fields in Patch requests.
25799	ForceSendFields []string `json:"-"`
25800
25801	// NullFields is a list of field names (e.g. "Key") to include in API
25802	// requests with the JSON null value. By default, fields with empty
25803	// values are omitted from API requests. However, any field with an
25804	// empty value appearing in NullFields will be sent to the server as
25805	// null. It is an error if a field in this list has a non-empty value.
25806	// This may be used to include null fields in Patch requests.
25807	NullFields []string `json:"-"`
25808}
25809
25810func (s *SubnetworkAggregatedListWarningData) MarshalJSON() ([]byte, error) {
25811	type NoMethod SubnetworkAggregatedListWarningData
25812	raw := NoMethod(*s)
25813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25814}
25815
25816// SubnetworkList: Contains a list of Subnetwork resources.
25817type SubnetworkList struct {
25818	// Id: [Output Only] Unique identifier for the resource; defined by the
25819	// server.
25820	Id string `json:"id,omitempty"`
25821
25822	// Items: A list of Subnetwork resources.
25823	Items []*Subnetwork `json:"items,omitempty"`
25824
25825	// Kind: [Output Only] Type of resource. Always compute#subnetworkList
25826	// for lists of subnetworks.
25827	Kind string `json:"kind,omitempty"`
25828
25829	// NextPageToken: [Output Only] This token allows you to get the next
25830	// page of results for list requests. If the number of results is larger
25831	// than maxResults, use the nextPageToken as a value for the query
25832	// parameter pageToken in the next list request. Subsequent list
25833	// requests will have their own nextPageToken to continue paging through
25834	// the results.
25835	NextPageToken string `json:"nextPageToken,omitempty"`
25836
25837	// SelfLink: [Output Only] Server-defined URL for this resource.
25838	SelfLink string `json:"selfLink,omitempty"`
25839
25840	// Warning: [Output Only] Informational warning message.
25841	Warning *SubnetworkListWarning `json:"warning,omitempty"`
25842
25843	// ServerResponse contains the HTTP response code and headers from the
25844	// server.
25845	googleapi.ServerResponse `json:"-"`
25846
25847	// ForceSendFields is a list of field names (e.g. "Id") to
25848	// unconditionally include in API requests. By default, fields with
25849	// empty values are omitted from API requests. However, any non-pointer,
25850	// non-interface field appearing in ForceSendFields will be sent to the
25851	// server regardless of whether the field is empty or not. This may be
25852	// used to include empty fields in Patch requests.
25853	ForceSendFields []string `json:"-"`
25854
25855	// NullFields is a list of field names (e.g. "Id") to include in API
25856	// requests with the JSON null value. By default, fields with empty
25857	// values are omitted from API requests. However, any field with an
25858	// empty value appearing in NullFields will be sent to the server as
25859	// null. It is an error if a field in this list has a non-empty value.
25860	// This may be used to include null fields in Patch requests.
25861	NullFields []string `json:"-"`
25862}
25863
25864func (s *SubnetworkList) MarshalJSON() ([]byte, error) {
25865	type NoMethod SubnetworkList
25866	raw := NoMethod(*s)
25867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25868}
25869
25870// SubnetworkListWarning: [Output Only] Informational warning message.
25871type SubnetworkListWarning struct {
25872	// Code: [Output Only] A warning code, if applicable. For example,
25873	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25874	// the response.
25875	//
25876	// Possible values:
25877	//   "CLEANUP_FAILED"
25878	//   "DEPRECATED_RESOURCE_USED"
25879	//   "DEPRECATED_TYPE_USED"
25880	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25881	//   "EXPERIMENTAL_TYPE_USED"
25882	//   "EXTERNAL_API_WARNING"
25883	//   "FIELD_VALUE_OVERRIDEN"
25884	//   "INJECTED_KERNELS_DEPRECATED"
25885	//   "MISSING_TYPE_DEPENDENCY"
25886	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25887	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25888	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25889	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25890	//   "NEXT_HOP_NOT_RUNNING"
25891	//   "NOT_CRITICAL_ERROR"
25892	//   "NO_RESULTS_ON_PAGE"
25893	//   "REQUIRED_TOS_AGREEMENT"
25894	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25895	//   "RESOURCE_NOT_DELETED"
25896	//   "SCHEMA_VALIDATION_IGNORED"
25897	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25898	//   "UNDECLARED_PROPERTIES"
25899	//   "UNREACHABLE"
25900	Code string `json:"code,omitempty"`
25901
25902	// Data: [Output Only] Metadata about this warning in key: value format.
25903	// For example:
25904	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25905	Data []*SubnetworkListWarningData `json:"data,omitempty"`
25906
25907	// Message: [Output Only] A human-readable description of the warning
25908	// code.
25909	Message string `json:"message,omitempty"`
25910
25911	// ForceSendFields is a list of field names (e.g. "Code") to
25912	// unconditionally include in API requests. By default, fields with
25913	// empty values are omitted from API requests. However, any non-pointer,
25914	// non-interface field appearing in ForceSendFields will be sent to the
25915	// server regardless of whether the field is empty or not. This may be
25916	// used to include empty fields in Patch requests.
25917	ForceSendFields []string `json:"-"`
25918
25919	// NullFields is a list of field names (e.g. "Code") to include in API
25920	// requests with the JSON null value. By default, fields with empty
25921	// values are omitted from API requests. However, any field with an
25922	// empty value appearing in NullFields will be sent to the server as
25923	// null. It is an error if a field in this list has a non-empty value.
25924	// This may be used to include null fields in Patch requests.
25925	NullFields []string `json:"-"`
25926}
25927
25928func (s *SubnetworkListWarning) MarshalJSON() ([]byte, error) {
25929	type NoMethod SubnetworkListWarning
25930	raw := NoMethod(*s)
25931	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25932}
25933
25934type SubnetworkListWarningData struct {
25935	// Key: [Output Only] A key that provides more detail on the warning
25936	// being returned. For example, for warnings where there are no results
25937	// in a list request for a particular zone, this key might be scope and
25938	// the key value might be the zone name. Other examples might be a key
25939	// indicating a deprecated resource and a suggested replacement, or a
25940	// warning about invalid network settings (for example, if an instance
25941	// attempts to perform IP forwarding but is not enabled for IP
25942	// forwarding).
25943	Key string `json:"key,omitempty"`
25944
25945	// Value: [Output Only] A warning data value corresponding to the key.
25946	Value string `json:"value,omitempty"`
25947
25948	// ForceSendFields is a list of field names (e.g. "Key") to
25949	// unconditionally include in API requests. By default, fields with
25950	// empty values are omitted from API requests. However, any non-pointer,
25951	// non-interface field appearing in ForceSendFields will be sent to the
25952	// server regardless of whether the field is empty or not. This may be
25953	// used to include empty fields in Patch requests.
25954	ForceSendFields []string `json:"-"`
25955
25956	// NullFields is a list of field names (e.g. "Key") to include in API
25957	// requests with the JSON null value. By default, fields with empty
25958	// values are omitted from API requests. However, any field with an
25959	// empty value appearing in NullFields will be sent to the server as
25960	// null. It is an error if a field in this list has a non-empty value.
25961	// This may be used to include null fields in Patch requests.
25962	NullFields []string `json:"-"`
25963}
25964
25965func (s *SubnetworkListWarningData) MarshalJSON() ([]byte, error) {
25966	type NoMethod SubnetworkListWarningData
25967	raw := NoMethod(*s)
25968	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25969}
25970
25971// SubnetworkSecondaryRange: Represents a secondary IP range of a
25972// subnetwork.
25973type SubnetworkSecondaryRange struct {
25974	// IpCidrRange: The range of IP addresses belonging to this subnetwork
25975	// secondary range. Provide this property when you create the
25976	// subnetwork. Ranges must be unique and non-overlapping with all
25977	// primary and secondary IP ranges within a network. Only IPv4 is
25978	// supported.
25979	IpCidrRange string `json:"ipCidrRange,omitempty"`
25980
25981	// RangeName: The name associated with this subnetwork secondary range,
25982	// used when adding an alias IP range to a VM instance. The name must be
25983	// 1-63 characters long, and comply with RFC1035. The name must be
25984	// unique within the subnetwork.
25985	RangeName string `json:"rangeName,omitempty"`
25986
25987	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
25988	// unconditionally include in API requests. By default, fields with
25989	// empty values are omitted from API requests. However, any non-pointer,
25990	// non-interface field appearing in ForceSendFields will be sent to the
25991	// server regardless of whether the field is empty or not. This may be
25992	// used to include empty fields in Patch requests.
25993	ForceSendFields []string `json:"-"`
25994
25995	// NullFields is a list of field names (e.g. "IpCidrRange") to include
25996	// in API requests with the JSON null value. By default, fields with
25997	// empty values are omitted from API requests. However, any field with
25998	// an empty value appearing in NullFields will be sent to the server as
25999	// null. It is an error if a field in this list has a non-empty value.
26000	// This may be used to include null fields in Patch requests.
26001	NullFields []string `json:"-"`
26002}
26003
26004func (s *SubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
26005	type NoMethod SubnetworkSecondaryRange
26006	raw := NoMethod(*s)
26007	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26008}
26009
26010type SubnetworksExpandIpCidrRangeRequest struct {
26011	// IpCidrRange: The IP (in CIDR format or netmask) of internal addresses
26012	// that are legal on this Subnetwork. This range should be disjoint from
26013	// other subnetworks within this network. This range can only be larger
26014	// than (i.e. a superset of) the range previously defined before the
26015	// update.
26016	IpCidrRange string `json:"ipCidrRange,omitempty"`
26017
26018	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
26019	// unconditionally include in API requests. By default, fields with
26020	// empty values are omitted from API requests. However, any non-pointer,
26021	// non-interface field appearing in ForceSendFields will be sent to the
26022	// server regardless of whether the field is empty or not. This may be
26023	// used to include empty fields in Patch requests.
26024	ForceSendFields []string `json:"-"`
26025
26026	// NullFields is a list of field names (e.g. "IpCidrRange") to include
26027	// in API requests with the JSON null value. By default, fields with
26028	// empty values are omitted from API requests. However, any field with
26029	// an empty value appearing in NullFields will be sent to the server as
26030	// null. It is an error if a field in this list has a non-empty value.
26031	// This may be used to include null fields in Patch requests.
26032	NullFields []string `json:"-"`
26033}
26034
26035func (s *SubnetworksExpandIpCidrRangeRequest) MarshalJSON() ([]byte, error) {
26036	type NoMethod SubnetworksExpandIpCidrRangeRequest
26037	raw := NoMethod(*s)
26038	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26039}
26040
26041type SubnetworksScopedList struct {
26042	// Subnetworks: A list of subnetworks contained in this scope.
26043	Subnetworks []*Subnetwork `json:"subnetworks,omitempty"`
26044
26045	// Warning: An informational warning that appears when the list of
26046	// addresses is empty.
26047	Warning *SubnetworksScopedListWarning `json:"warning,omitempty"`
26048
26049	// ForceSendFields is a list of field names (e.g. "Subnetworks") to
26050	// unconditionally include in API requests. By default, fields with
26051	// empty values are omitted from API requests. However, any non-pointer,
26052	// non-interface field appearing in ForceSendFields will be sent to the
26053	// server regardless of whether the field is empty or not. This may be
26054	// used to include empty fields in Patch requests.
26055	ForceSendFields []string `json:"-"`
26056
26057	// NullFields is a list of field names (e.g. "Subnetworks") to include
26058	// in API requests with the JSON null value. By default, fields with
26059	// empty values are omitted from API requests. However, any field with
26060	// an empty value appearing in NullFields will be sent to the server as
26061	// null. It is an error if a field in this list has a non-empty value.
26062	// This may be used to include null fields in Patch requests.
26063	NullFields []string `json:"-"`
26064}
26065
26066func (s *SubnetworksScopedList) MarshalJSON() ([]byte, error) {
26067	type NoMethod SubnetworksScopedList
26068	raw := NoMethod(*s)
26069	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26070}
26071
26072// SubnetworksScopedListWarning: An informational warning that appears
26073// when the list of addresses is empty.
26074type SubnetworksScopedListWarning struct {
26075	// Code: [Output Only] A warning code, if applicable. For example,
26076	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26077	// the response.
26078	//
26079	// Possible values:
26080	//   "CLEANUP_FAILED"
26081	//   "DEPRECATED_RESOURCE_USED"
26082	//   "DEPRECATED_TYPE_USED"
26083	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26084	//   "EXPERIMENTAL_TYPE_USED"
26085	//   "EXTERNAL_API_WARNING"
26086	//   "FIELD_VALUE_OVERRIDEN"
26087	//   "INJECTED_KERNELS_DEPRECATED"
26088	//   "MISSING_TYPE_DEPENDENCY"
26089	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26090	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26091	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26092	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26093	//   "NEXT_HOP_NOT_RUNNING"
26094	//   "NOT_CRITICAL_ERROR"
26095	//   "NO_RESULTS_ON_PAGE"
26096	//   "REQUIRED_TOS_AGREEMENT"
26097	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26098	//   "RESOURCE_NOT_DELETED"
26099	//   "SCHEMA_VALIDATION_IGNORED"
26100	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26101	//   "UNDECLARED_PROPERTIES"
26102	//   "UNREACHABLE"
26103	Code string `json:"code,omitempty"`
26104
26105	// Data: [Output Only] Metadata about this warning in key: value format.
26106	// For example:
26107	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26108	Data []*SubnetworksScopedListWarningData `json:"data,omitempty"`
26109
26110	// Message: [Output Only] A human-readable description of the warning
26111	// code.
26112	Message string `json:"message,omitempty"`
26113
26114	// ForceSendFields is a list of field names (e.g. "Code") to
26115	// unconditionally include in API requests. By default, fields with
26116	// empty values are omitted from API requests. However, any non-pointer,
26117	// non-interface field appearing in ForceSendFields will be sent to the
26118	// server regardless of whether the field is empty or not. This may be
26119	// used to include empty fields in Patch requests.
26120	ForceSendFields []string `json:"-"`
26121
26122	// NullFields is a list of field names (e.g. "Code") to include in API
26123	// requests with the JSON null value. By default, fields with empty
26124	// values are omitted from API requests. However, any field with an
26125	// empty value appearing in NullFields will be sent to the server as
26126	// null. It is an error if a field in this list has a non-empty value.
26127	// This may be used to include null fields in Patch requests.
26128	NullFields []string `json:"-"`
26129}
26130
26131func (s *SubnetworksScopedListWarning) MarshalJSON() ([]byte, error) {
26132	type NoMethod SubnetworksScopedListWarning
26133	raw := NoMethod(*s)
26134	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26135}
26136
26137type SubnetworksScopedListWarningData struct {
26138	// Key: [Output Only] A key that provides more detail on the warning
26139	// being returned. For example, for warnings where there are no results
26140	// in a list request for a particular zone, this key might be scope and
26141	// the key value might be the zone name. Other examples might be a key
26142	// indicating a deprecated resource and a suggested replacement, or a
26143	// warning about invalid network settings (for example, if an instance
26144	// attempts to perform IP forwarding but is not enabled for IP
26145	// forwarding).
26146	Key string `json:"key,omitempty"`
26147
26148	// Value: [Output Only] A warning data value corresponding to the key.
26149	Value string `json:"value,omitempty"`
26150
26151	// ForceSendFields is a list of field names (e.g. "Key") to
26152	// unconditionally include in API requests. By default, fields with
26153	// empty values are omitted from API requests. However, any non-pointer,
26154	// non-interface field appearing in ForceSendFields will be sent to the
26155	// server regardless of whether the field is empty or not. This may be
26156	// used to include empty fields in Patch requests.
26157	ForceSendFields []string `json:"-"`
26158
26159	// NullFields is a list of field names (e.g. "Key") to include in API
26160	// requests with the JSON null value. By default, fields with empty
26161	// values are omitted from API requests. However, any field with an
26162	// empty value appearing in NullFields will be sent to the server as
26163	// null. It is an error if a field in this list has a non-empty value.
26164	// This may be used to include null fields in Patch requests.
26165	NullFields []string `json:"-"`
26166}
26167
26168func (s *SubnetworksScopedListWarningData) MarshalJSON() ([]byte, error) {
26169	type NoMethod SubnetworksScopedListWarningData
26170	raw := NoMethod(*s)
26171	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26172}
26173
26174type SubnetworksSetPrivateIpGoogleAccessRequest struct {
26175	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
26176
26177	// ForceSendFields is a list of field names (e.g.
26178	// "PrivateIpGoogleAccess") to unconditionally include in API requests.
26179	// By default, fields with empty values are omitted from API requests.
26180	// However, any non-pointer, non-interface field appearing in
26181	// ForceSendFields will be sent to the server regardless of whether the
26182	// field is empty or not. This may be used to include empty fields in
26183	// Patch requests.
26184	ForceSendFields []string `json:"-"`
26185
26186	// NullFields is a list of field names (e.g. "PrivateIpGoogleAccess") to
26187	// include in API requests with the JSON null value. By default, fields
26188	// with empty values are omitted from API requests. However, any field
26189	// with an empty value appearing in NullFields will be sent to the
26190	// server as null. It is an error if a field in this list has a
26191	// non-empty value. This may be used to include null fields in Patch
26192	// requests.
26193	NullFields []string `json:"-"`
26194}
26195
26196func (s *SubnetworksSetPrivateIpGoogleAccessRequest) MarshalJSON() ([]byte, error) {
26197	type NoMethod SubnetworksSetPrivateIpGoogleAccessRequest
26198	raw := NoMethod(*s)
26199	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26200}
26201
26202type TCPHealthCheck struct {
26203	// Port: The TCP port number for the health check request. The default
26204	// value is 80. Valid values are 1 through 65535.
26205	Port int64 `json:"port,omitempty"`
26206
26207	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
26208	// both port and port_name are defined, port takes precedence.
26209	PortName string `json:"portName,omitempty"`
26210
26211	// PortSpecification: Specifies how port is selected for health
26212	// checking, can be one of following values:
26213	// USE_FIXED_PORT: The port number in
26214	// port
26215	// is used for health checking.
26216	// USE_NAMED_PORT: The
26217	// portName
26218	// is used for health checking.
26219	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
26220	// each network endpoint is used for health checking. For other
26221	// backends, the port or named port specified in the Backend Service is
26222	// used for health checking.
26223	//
26224	//
26225	// If not specified, TCP health check follows behavior specified
26226	// in
26227	// port
26228	// and
26229	// portName
26230	// fields.
26231	//
26232	// Possible values:
26233	//   "USE_FIXED_PORT"
26234	//   "USE_NAMED_PORT"
26235	//   "USE_SERVING_PORT"
26236	PortSpecification string `json:"portSpecification,omitempty"`
26237
26238	// ProxyHeader: Specifies the type of proxy header to append before
26239	// sending data to the backend, either NONE or PROXY_V1. The default is
26240	// NONE.
26241	//
26242	// Possible values:
26243	//   "NONE"
26244	//   "PROXY_V1"
26245	ProxyHeader string `json:"proxyHeader,omitempty"`
26246
26247	// Request: The application data to send once the TCP connection has
26248	// been established (default value is empty). If both request and
26249	// response are empty, the connection establishment alone will indicate
26250	// health. The request data can only be ASCII.
26251	Request string `json:"request,omitempty"`
26252
26253	// Response: The bytes to match against the beginning of the response
26254	// data. If left empty (the default value), any response will indicate
26255	// health. The response data can only be ASCII.
26256	Response string `json:"response,omitempty"`
26257
26258	// ForceSendFields is a list of field names (e.g. "Port") 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. "Port") 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 *TCPHealthCheck) MarshalJSON() ([]byte, error) {
26276	type NoMethod TCPHealthCheck
26277	raw := NoMethod(*s)
26278	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26279}
26280
26281// Tags: A set of instance tags.
26282type Tags struct {
26283	// Fingerprint: Specifies a fingerprint for this request, which is
26284	// essentially a hash of the tags' contents and used for optimistic
26285	// locking. The fingerprint is initially generated by Compute Engine and
26286	// changes after every request to modify or update tags. You must always
26287	// provide an up-to-date fingerprint hash in order to update or change
26288	// tags.
26289	//
26290	// To see the latest fingerprint, make get() request to the instance.
26291	Fingerprint string `json:"fingerprint,omitempty"`
26292
26293	// Items: An array of tags. Each tag must be 1-63 characters long, and
26294	// comply with RFC1035.
26295	Items []string `json:"items,omitempty"`
26296
26297	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
26298	// unconditionally include in API requests. By default, fields with
26299	// empty values are omitted from API requests. However, any non-pointer,
26300	// non-interface field appearing in ForceSendFields will be sent to the
26301	// server regardless of whether the field is empty or not. This may be
26302	// used to include empty fields in Patch requests.
26303	ForceSendFields []string `json:"-"`
26304
26305	// NullFields is a list of field names (e.g. "Fingerprint") to include
26306	// in API requests with the JSON null value. By default, fields with
26307	// empty values are omitted from API requests. However, any field with
26308	// an empty value appearing in NullFields will be sent to the server as
26309	// null. It is an error if a field in this list has a non-empty value.
26310	// This may be used to include null fields in Patch requests.
26311	NullFields []string `json:"-"`
26312}
26313
26314func (s *Tags) MarshalJSON() ([]byte, error) {
26315	type NoMethod Tags
26316	raw := NoMethod(*s)
26317	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26318}
26319
26320// TargetHttpProxy: A TargetHttpProxy resource. This resource defines an
26321// HTTP proxy. (== resource_for beta.targetHttpProxies ==) (==
26322// resource_for v1.targetHttpProxies ==)
26323type TargetHttpProxy struct {
26324	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
26325	// format.
26326	CreationTimestamp string `json:"creationTimestamp,omitempty"`
26327
26328	// Description: An optional description of this resource. Provide this
26329	// property when you create the resource.
26330	Description string `json:"description,omitempty"`
26331
26332	// Id: [Output Only] The unique identifier for the resource. This
26333	// identifier is defined by the server.
26334	Id uint64 `json:"id,omitempty,string"`
26335
26336	// Kind: [Output Only] Type of resource. Always compute#targetHttpProxy
26337	// for target HTTP proxies.
26338	Kind string `json:"kind,omitempty"`
26339
26340	// Name: Name of the resource. Provided by the client when the resource
26341	// is created. The name must be 1-63 characters long, and comply with
26342	// RFC1035. Specifically, the name must be 1-63 characters long and
26343	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
26344	// the first character must be a lowercase letter, and all following
26345	// characters must be a dash, lowercase letter, or digit, except the
26346	// last character, which cannot be a dash.
26347	Name string `json:"name,omitempty"`
26348
26349	// SelfLink: [Output Only] Server-defined URL for the resource.
26350	SelfLink string `json:"selfLink,omitempty"`
26351
26352	// UrlMap: URL to the UrlMap resource that defines the mapping from URL
26353	// to the BackendService.
26354	UrlMap string `json:"urlMap,omitempty"`
26355
26356	// ServerResponse contains the HTTP response code and headers from the
26357	// server.
26358	googleapi.ServerResponse `json:"-"`
26359
26360	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
26361	// to unconditionally include in API requests. By default, fields with
26362	// empty values are omitted from API requests. However, any non-pointer,
26363	// non-interface field appearing in ForceSendFields will be sent to the
26364	// server regardless of whether the field is empty or not. This may be
26365	// used to include empty fields in Patch requests.
26366	ForceSendFields []string `json:"-"`
26367
26368	// NullFields is a list of field names (e.g. "CreationTimestamp") to
26369	// include in API requests with the JSON null value. By default, fields
26370	// with empty values are omitted from API requests. However, any field
26371	// with an empty value appearing in NullFields will be sent to the
26372	// server as null. It is an error if a field in this list has a
26373	// non-empty value. This may be used to include null fields in Patch
26374	// requests.
26375	NullFields []string `json:"-"`
26376}
26377
26378func (s *TargetHttpProxy) MarshalJSON() ([]byte, error) {
26379	type NoMethod TargetHttpProxy
26380	raw := NoMethod(*s)
26381	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26382}
26383
26384// TargetHttpProxyList: A list of TargetHttpProxy resources.
26385type TargetHttpProxyList struct {
26386	// Id: [Output Only] Unique identifier for the resource; defined by the
26387	// server.
26388	Id string `json:"id,omitempty"`
26389
26390	// Items: A list of TargetHttpProxy resources.
26391	Items []*TargetHttpProxy `json:"items,omitempty"`
26392
26393	// Kind: Type of resource. Always compute#targetHttpProxyList for lists
26394	// of target HTTP proxies.
26395	Kind string `json:"kind,omitempty"`
26396
26397	// NextPageToken: [Output Only] This token allows you to get the next
26398	// page of results for list requests. If the number of results is larger
26399	// than maxResults, use the nextPageToken as a value for the query
26400	// parameter pageToken in the next list request. Subsequent list
26401	// requests will have their own nextPageToken to continue paging through
26402	// the results.
26403	NextPageToken string `json:"nextPageToken,omitempty"`
26404
26405	// SelfLink: [Output Only] Server-defined URL for this resource.
26406	SelfLink string `json:"selfLink,omitempty"`
26407
26408	// Warning: [Output Only] Informational warning message.
26409	Warning *TargetHttpProxyListWarning `json:"warning,omitempty"`
26410
26411	// ServerResponse contains the HTTP response code and headers from the
26412	// server.
26413	googleapi.ServerResponse `json:"-"`
26414
26415	// ForceSendFields is a list of field names (e.g. "Id") to
26416	// unconditionally include in API requests. By default, fields with
26417	// empty values are omitted from API requests. However, any non-pointer,
26418	// non-interface field appearing in ForceSendFields will be sent to the
26419	// server regardless of whether the field is empty or not. This may be
26420	// used to include empty fields in Patch requests.
26421	ForceSendFields []string `json:"-"`
26422
26423	// NullFields is a list of field names (e.g. "Id") to include in API
26424	// requests with the JSON null value. By default, fields with empty
26425	// values are omitted from API requests. However, any field with an
26426	// empty value appearing in NullFields will be sent to the server as
26427	// null. It is an error if a field in this list has a non-empty value.
26428	// This may be used to include null fields in Patch requests.
26429	NullFields []string `json:"-"`
26430}
26431
26432func (s *TargetHttpProxyList) MarshalJSON() ([]byte, error) {
26433	type NoMethod TargetHttpProxyList
26434	raw := NoMethod(*s)
26435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26436}
26437
26438// TargetHttpProxyListWarning: [Output Only] Informational warning
26439// message.
26440type TargetHttpProxyListWarning struct {
26441	// Code: [Output Only] A warning code, if applicable. For example,
26442	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26443	// the response.
26444	//
26445	// Possible values:
26446	//   "CLEANUP_FAILED"
26447	//   "DEPRECATED_RESOURCE_USED"
26448	//   "DEPRECATED_TYPE_USED"
26449	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26450	//   "EXPERIMENTAL_TYPE_USED"
26451	//   "EXTERNAL_API_WARNING"
26452	//   "FIELD_VALUE_OVERRIDEN"
26453	//   "INJECTED_KERNELS_DEPRECATED"
26454	//   "MISSING_TYPE_DEPENDENCY"
26455	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26456	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26457	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26458	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26459	//   "NEXT_HOP_NOT_RUNNING"
26460	//   "NOT_CRITICAL_ERROR"
26461	//   "NO_RESULTS_ON_PAGE"
26462	//   "REQUIRED_TOS_AGREEMENT"
26463	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26464	//   "RESOURCE_NOT_DELETED"
26465	//   "SCHEMA_VALIDATION_IGNORED"
26466	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26467	//   "UNDECLARED_PROPERTIES"
26468	//   "UNREACHABLE"
26469	Code string `json:"code,omitempty"`
26470
26471	// Data: [Output Only] Metadata about this warning in key: value format.
26472	// For example:
26473	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26474	Data []*TargetHttpProxyListWarningData `json:"data,omitempty"`
26475
26476	// Message: [Output Only] A human-readable description of the warning
26477	// code.
26478	Message string `json:"message,omitempty"`
26479
26480	// ForceSendFields is a list of field names (e.g. "Code") to
26481	// unconditionally include in API requests. By default, fields with
26482	// empty values are omitted from API requests. However, any non-pointer,
26483	// non-interface field appearing in ForceSendFields will be sent to the
26484	// server regardless of whether the field is empty or not. This may be
26485	// used to include empty fields in Patch requests.
26486	ForceSendFields []string `json:"-"`
26487
26488	// NullFields is a list of field names (e.g. "Code") to include in API
26489	// requests with the JSON null value. By default, fields with empty
26490	// values are omitted from API requests. However, any field with an
26491	// empty value appearing in NullFields will be sent to the server as
26492	// null. It is an error if a field in this list has a non-empty value.
26493	// This may be used to include null fields in Patch requests.
26494	NullFields []string `json:"-"`
26495}
26496
26497func (s *TargetHttpProxyListWarning) MarshalJSON() ([]byte, error) {
26498	type NoMethod TargetHttpProxyListWarning
26499	raw := NoMethod(*s)
26500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26501}
26502
26503type TargetHttpProxyListWarningData struct {
26504	// Key: [Output Only] A key that provides more detail on the warning
26505	// being returned. For example, for warnings where there are no results
26506	// in a list request for a particular zone, this key might be scope and
26507	// the key value might be the zone name. Other examples might be a key
26508	// indicating a deprecated resource and a suggested replacement, or a
26509	// warning about invalid network settings (for example, if an instance
26510	// attempts to perform IP forwarding but is not enabled for IP
26511	// forwarding).
26512	Key string `json:"key,omitempty"`
26513
26514	// Value: [Output Only] A warning data value corresponding to the key.
26515	Value string `json:"value,omitempty"`
26516
26517	// ForceSendFields is a list of field names (e.g. "Key") to
26518	// unconditionally include in API requests. By default, fields with
26519	// empty values are omitted from API requests. However, any non-pointer,
26520	// non-interface field appearing in ForceSendFields will be sent to the
26521	// server regardless of whether the field is empty or not. This may be
26522	// used to include empty fields in Patch requests.
26523	ForceSendFields []string `json:"-"`
26524
26525	// NullFields is a list of field names (e.g. "Key") to include in API
26526	// requests with the JSON null value. By default, fields with empty
26527	// values are omitted from API requests. However, any field with an
26528	// empty value appearing in NullFields will be sent to the server as
26529	// null. It is an error if a field in this list has a non-empty value.
26530	// This may be used to include null fields in Patch requests.
26531	NullFields []string `json:"-"`
26532}
26533
26534func (s *TargetHttpProxyListWarningData) MarshalJSON() ([]byte, error) {
26535	type NoMethod TargetHttpProxyListWarningData
26536	raw := NoMethod(*s)
26537	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26538}
26539
26540type TargetHttpsProxiesSetQuicOverrideRequest struct {
26541	// QuicOverride: QUIC policy for the TargetHttpsProxy resource.
26542	//
26543	// Possible values:
26544	//   "DISABLE"
26545	//   "ENABLE"
26546	//   "NONE"
26547	QuicOverride string `json:"quicOverride,omitempty"`
26548
26549	// ForceSendFields is a list of field names (e.g. "QuicOverride") to
26550	// unconditionally include in API requests. By default, fields with
26551	// empty values are omitted from API requests. However, any non-pointer,
26552	// non-interface field appearing in ForceSendFields will be sent to the
26553	// server regardless of whether the field is empty or not. This may be
26554	// used to include empty fields in Patch requests.
26555	ForceSendFields []string `json:"-"`
26556
26557	// NullFields is a list of field names (e.g. "QuicOverride") to include
26558	// in API requests with the JSON null value. By default, fields with
26559	// empty values are omitted from API requests. However, any field with
26560	// an empty value appearing in NullFields will be sent to the server as
26561	// null. It is an error if a field in this list has a non-empty value.
26562	// This may be used to include null fields in Patch requests.
26563	NullFields []string `json:"-"`
26564}
26565
26566func (s *TargetHttpsProxiesSetQuicOverrideRequest) MarshalJSON() ([]byte, error) {
26567	type NoMethod TargetHttpsProxiesSetQuicOverrideRequest
26568	raw := NoMethod(*s)
26569	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26570}
26571
26572type TargetHttpsProxiesSetSslCertificatesRequest struct {
26573	// SslCertificates: New set of SslCertificate resources to associate
26574	// with this TargetHttpsProxy resource. Currently exactly one
26575	// SslCertificate resource must be specified.
26576	SslCertificates []string `json:"sslCertificates,omitempty"`
26577
26578	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
26579	// unconditionally include in API requests. By default, fields with
26580	// empty values are omitted from API requests. However, any non-pointer,
26581	// non-interface field appearing in ForceSendFields will be sent to the
26582	// server regardless of whether the field is empty or not. This may be
26583	// used to include empty fields in Patch requests.
26584	ForceSendFields []string `json:"-"`
26585
26586	// NullFields is a list of field names (e.g. "SslCertificates") to
26587	// include in API requests with the JSON null value. By default, fields
26588	// with empty values are omitted from API requests. However, any field
26589	// with an empty value appearing in NullFields will be sent to the
26590	// server as null. It is an error if a field in this list has a
26591	// non-empty value. This may be used to include null fields in Patch
26592	// requests.
26593	NullFields []string `json:"-"`
26594}
26595
26596func (s *TargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
26597	type NoMethod TargetHttpsProxiesSetSslCertificatesRequest
26598	raw := NoMethod(*s)
26599	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26600}
26601
26602// TargetHttpsProxy: A TargetHttpsProxy resource. This resource defines
26603// an HTTPS proxy. (== resource_for beta.targetHttpsProxies ==) (==
26604// resource_for v1.targetHttpsProxies ==)
26605type TargetHttpsProxy struct {
26606	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
26607	// format.
26608	CreationTimestamp string `json:"creationTimestamp,omitempty"`
26609
26610	// Description: An optional description of this resource. Provide this
26611	// property when you create the resource.
26612	Description string `json:"description,omitempty"`
26613
26614	// Id: [Output Only] The unique identifier for the resource. This
26615	// identifier is defined by the server.
26616	Id uint64 `json:"id,omitempty,string"`
26617
26618	// Kind: [Output Only] Type of resource. Always compute#targetHttpsProxy
26619	// for target HTTPS proxies.
26620	Kind string `json:"kind,omitempty"`
26621
26622	// Name: Name of the resource. Provided by the client when the resource
26623	// is created. The name must be 1-63 characters long, and comply with
26624	// RFC1035. Specifically, the name must be 1-63 characters long and
26625	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
26626	// the first character must be a lowercase letter, and all following
26627	// characters must be a dash, lowercase letter, or digit, except the
26628	// last character, which cannot be a dash.
26629	Name string `json:"name,omitempty"`
26630
26631	// QuicOverride: Specifies the QUIC override policy for this
26632	// TargetHttpsProxy resource. This determines whether the load balancer
26633	// will attempt to negotiate QUIC with clients or not. Can specify one
26634	// of NONE, ENABLE, or DISABLE. Specify ENABLE to always enable QUIC,
26635	// Enables QUIC when set to ENABLE, and disables QUIC when set to
26636	// DISABLE. If NONE is specified, uses the QUIC policy with no user
26637	// overrides, which is equivalent to DISABLE. Not specifying this field
26638	// is equivalent to specifying NONE.
26639	//
26640	// Possible values:
26641	//   "DISABLE"
26642	//   "ENABLE"
26643	//   "NONE"
26644	QuicOverride string `json:"quicOverride,omitempty"`
26645
26646	// SelfLink: [Output Only] Server-defined URL for the resource.
26647	SelfLink string `json:"selfLink,omitempty"`
26648
26649	// SslCertificates: URLs to SslCertificate resources that are used to
26650	// authenticate connections between users and the load balancer. At
26651	// least one SSL certificate must be specified. Currently, you may
26652	// specify up to 15 SSL certificates.
26653	SslCertificates []string `json:"sslCertificates,omitempty"`
26654
26655	// SslPolicy: URL of SslPolicy resource that will be associated with the
26656	// TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource
26657	// will not have any SSL policy configured.
26658	SslPolicy string `json:"sslPolicy,omitempty"`
26659
26660	// UrlMap: A fully-qualified or valid partial URL to the UrlMap resource
26661	// that defines the mapping from URL to the BackendService. For example,
26662	// the following are all valid URLs for specifying a URL map:
26663	// -
26664	// https://www.googleapis.compute/v1/projects/project/global/urlMaps/url-map
26665	// - projects/project/global/urlMaps/url-map
26666	// - global/urlMaps/url-map
26667	UrlMap string `json:"urlMap,omitempty"`
26668
26669	// ServerResponse contains the HTTP response code and headers from the
26670	// server.
26671	googleapi.ServerResponse `json:"-"`
26672
26673	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
26674	// to unconditionally include in API requests. By default, fields with
26675	// empty values are omitted from API requests. However, any non-pointer,
26676	// non-interface field appearing in ForceSendFields will be sent to the
26677	// server regardless of whether the field is empty or not. This may be
26678	// used to include empty fields in Patch requests.
26679	ForceSendFields []string `json:"-"`
26680
26681	// NullFields is a list of field names (e.g. "CreationTimestamp") to
26682	// include in API requests with the JSON null value. By default, fields
26683	// with empty values are omitted from API requests. However, any field
26684	// with an empty value appearing in NullFields will be sent to the
26685	// server as null. It is an error if a field in this list has a
26686	// non-empty value. This may be used to include null fields in Patch
26687	// requests.
26688	NullFields []string `json:"-"`
26689}
26690
26691func (s *TargetHttpsProxy) MarshalJSON() ([]byte, error) {
26692	type NoMethod TargetHttpsProxy
26693	raw := NoMethod(*s)
26694	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26695}
26696
26697// TargetHttpsProxyList: Contains a list of TargetHttpsProxy resources.
26698type TargetHttpsProxyList struct {
26699	// Id: [Output Only] Unique identifier for the resource; defined by the
26700	// server.
26701	Id string `json:"id,omitempty"`
26702
26703	// Items: A list of TargetHttpsProxy resources.
26704	Items []*TargetHttpsProxy `json:"items,omitempty"`
26705
26706	// Kind: Type of resource. Always compute#targetHttpsProxyList for lists
26707	// of target HTTPS proxies.
26708	Kind string `json:"kind,omitempty"`
26709
26710	// NextPageToken: [Output Only] This token allows you to get the next
26711	// page of results for list requests. If the number of results is larger
26712	// than maxResults, use the nextPageToken as a value for the query
26713	// parameter pageToken in the next list request. Subsequent list
26714	// requests will have their own nextPageToken to continue paging through
26715	// the results.
26716	NextPageToken string `json:"nextPageToken,omitempty"`
26717
26718	// SelfLink: [Output Only] Server-defined URL for this resource.
26719	SelfLink string `json:"selfLink,omitempty"`
26720
26721	// Warning: [Output Only] Informational warning message.
26722	Warning *TargetHttpsProxyListWarning `json:"warning,omitempty"`
26723
26724	// ServerResponse contains the HTTP response code and headers from the
26725	// server.
26726	googleapi.ServerResponse `json:"-"`
26727
26728	// ForceSendFields is a list of field names (e.g. "Id") to
26729	// unconditionally include in API requests. By default, fields with
26730	// empty values are omitted from API requests. However, any non-pointer,
26731	// non-interface field appearing in ForceSendFields will be sent to the
26732	// server regardless of whether the field is empty or not. This may be
26733	// used to include empty fields in Patch requests.
26734	ForceSendFields []string `json:"-"`
26735
26736	// NullFields is a list of field names (e.g. "Id") to include in API
26737	// requests with the JSON null value. By default, fields with empty
26738	// values are omitted from API requests. However, any field with an
26739	// empty value appearing in NullFields will be sent to the server as
26740	// null. It is an error if a field in this list has a non-empty value.
26741	// This may be used to include null fields in Patch requests.
26742	NullFields []string `json:"-"`
26743}
26744
26745func (s *TargetHttpsProxyList) MarshalJSON() ([]byte, error) {
26746	type NoMethod TargetHttpsProxyList
26747	raw := NoMethod(*s)
26748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26749}
26750
26751// TargetHttpsProxyListWarning: [Output Only] Informational warning
26752// message.
26753type TargetHttpsProxyListWarning struct {
26754	// Code: [Output Only] A warning code, if applicable. For example,
26755	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26756	// the response.
26757	//
26758	// Possible values:
26759	//   "CLEANUP_FAILED"
26760	//   "DEPRECATED_RESOURCE_USED"
26761	//   "DEPRECATED_TYPE_USED"
26762	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26763	//   "EXPERIMENTAL_TYPE_USED"
26764	//   "EXTERNAL_API_WARNING"
26765	//   "FIELD_VALUE_OVERRIDEN"
26766	//   "INJECTED_KERNELS_DEPRECATED"
26767	//   "MISSING_TYPE_DEPENDENCY"
26768	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26769	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26770	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26771	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26772	//   "NEXT_HOP_NOT_RUNNING"
26773	//   "NOT_CRITICAL_ERROR"
26774	//   "NO_RESULTS_ON_PAGE"
26775	//   "REQUIRED_TOS_AGREEMENT"
26776	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26777	//   "RESOURCE_NOT_DELETED"
26778	//   "SCHEMA_VALIDATION_IGNORED"
26779	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26780	//   "UNDECLARED_PROPERTIES"
26781	//   "UNREACHABLE"
26782	Code string `json:"code,omitempty"`
26783
26784	// Data: [Output Only] Metadata about this warning in key: value format.
26785	// For example:
26786	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26787	Data []*TargetHttpsProxyListWarningData `json:"data,omitempty"`
26788
26789	// Message: [Output Only] A human-readable description of the warning
26790	// code.
26791	Message string `json:"message,omitempty"`
26792
26793	// ForceSendFields is a list of field names (e.g. "Code") to
26794	// unconditionally include in API requests. By default, fields with
26795	// empty values are omitted from API requests. However, any non-pointer,
26796	// non-interface field appearing in ForceSendFields will be sent to the
26797	// server regardless of whether the field is empty or not. This may be
26798	// used to include empty fields in Patch requests.
26799	ForceSendFields []string `json:"-"`
26800
26801	// NullFields is a list of field names (e.g. "Code") to include in API
26802	// requests with the JSON null value. By default, fields with empty
26803	// values are omitted from API requests. However, any field with an
26804	// empty value appearing in NullFields will be sent to the server as
26805	// null. It is an error if a field in this list has a non-empty value.
26806	// This may be used to include null fields in Patch requests.
26807	NullFields []string `json:"-"`
26808}
26809
26810func (s *TargetHttpsProxyListWarning) MarshalJSON() ([]byte, error) {
26811	type NoMethod TargetHttpsProxyListWarning
26812	raw := NoMethod(*s)
26813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26814}
26815
26816type TargetHttpsProxyListWarningData struct {
26817	// Key: [Output Only] A key that provides more detail on the warning
26818	// being returned. For example, for warnings where there are no results
26819	// in a list request for a particular zone, this key might be scope and
26820	// the key value might be the zone name. Other examples might be a key
26821	// indicating a deprecated resource and a suggested replacement, or a
26822	// warning about invalid network settings (for example, if an instance
26823	// attempts to perform IP forwarding but is not enabled for IP
26824	// forwarding).
26825	Key string `json:"key,omitempty"`
26826
26827	// Value: [Output Only] A warning data value corresponding to the key.
26828	Value string `json:"value,omitempty"`
26829
26830	// ForceSendFields is a list of field names (e.g. "Key") to
26831	// unconditionally include in API requests. By default, fields with
26832	// empty values are omitted from API requests. However, any non-pointer,
26833	// non-interface field appearing in ForceSendFields will be sent to the
26834	// server regardless of whether the field is empty or not. This may be
26835	// used to include empty fields in Patch requests.
26836	ForceSendFields []string `json:"-"`
26837
26838	// NullFields is a list of field names (e.g. "Key") to include in API
26839	// requests with the JSON null value. By default, fields with empty
26840	// values are omitted from API requests. However, any field with an
26841	// empty value appearing in NullFields will be sent to the server as
26842	// null. It is an error if a field in this list has a non-empty value.
26843	// This may be used to include null fields in Patch requests.
26844	NullFields []string `json:"-"`
26845}
26846
26847func (s *TargetHttpsProxyListWarningData) MarshalJSON() ([]byte, error) {
26848	type NoMethod TargetHttpsProxyListWarningData
26849	raw := NoMethod(*s)
26850	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26851}
26852
26853// TargetInstance: A TargetInstance resource. This resource defines an
26854// endpoint instance that terminates traffic of certain protocols. (==
26855// resource_for beta.targetInstances ==) (== resource_for
26856// v1.targetInstances ==)
26857type TargetInstance struct {
26858	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
26859	// format.
26860	CreationTimestamp string `json:"creationTimestamp,omitempty"`
26861
26862	// Description: An optional description of this resource. Provide this
26863	// property when you create the resource.
26864	Description string `json:"description,omitempty"`
26865
26866	// Id: [Output Only] The unique identifier for the resource. This
26867	// identifier is defined by the server.
26868	Id uint64 `json:"id,omitempty,string"`
26869
26870	// Instance: A URL to the virtual machine instance that handles traffic
26871	// for this target instance. When creating a target instance, you can
26872	// provide the fully-qualified URL or a valid partial URL to the desired
26873	// virtual machine. For example, the following are all valid URLs:
26874	// -
26875	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
26876	// - projects/project/zones/zone/instances/instance
26877	// - zones/zone/instances/instance
26878	Instance string `json:"instance,omitempty"`
26879
26880	// Kind: [Output Only] The type of the resource. Always
26881	// compute#targetInstance for target instances.
26882	Kind string `json:"kind,omitempty"`
26883
26884	// Name: Name of the resource. Provided by the client when the resource
26885	// is created. The name must be 1-63 characters long, and comply with
26886	// RFC1035. Specifically, the name must be 1-63 characters long and
26887	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
26888	// the first character must be a lowercase letter, and all following
26889	// characters must be a dash, lowercase letter, or digit, except the
26890	// last character, which cannot be a dash.
26891	Name string `json:"name,omitempty"`
26892
26893	// NatPolicy: NAT option controlling how IPs are NAT'ed to the instance.
26894	// Currently only NO_NAT (default value) is supported.
26895	//
26896	// Possible values:
26897	//   "NO_NAT"
26898	NatPolicy string `json:"natPolicy,omitempty"`
26899
26900	// SelfLink: [Output Only] Server-defined URL for the resource.
26901	SelfLink string `json:"selfLink,omitempty"`
26902
26903	// Zone: [Output Only] URL of the zone where the target instance
26904	// resides. You must specify this field as part of the HTTP request URL.
26905	// It is not settable as a field in the request body.
26906	Zone string `json:"zone,omitempty"`
26907
26908	// ServerResponse contains the HTTP response code and headers from the
26909	// server.
26910	googleapi.ServerResponse `json:"-"`
26911
26912	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
26913	// to unconditionally include in API requests. By default, fields with
26914	// empty values are omitted from API requests. However, any non-pointer,
26915	// non-interface field appearing in ForceSendFields will be sent to the
26916	// server regardless of whether the field is empty or not. This may be
26917	// used to include empty fields in Patch requests.
26918	ForceSendFields []string `json:"-"`
26919
26920	// NullFields is a list of field names (e.g. "CreationTimestamp") to
26921	// include in API requests with the JSON null value. By default, fields
26922	// with empty values are omitted from API requests. However, any field
26923	// with an empty value appearing in NullFields will be sent to the
26924	// server as null. It is an error if a field in this list has a
26925	// non-empty value. This may be used to include null fields in Patch
26926	// requests.
26927	NullFields []string `json:"-"`
26928}
26929
26930func (s *TargetInstance) MarshalJSON() ([]byte, error) {
26931	type NoMethod TargetInstance
26932	raw := NoMethod(*s)
26933	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26934}
26935
26936type TargetInstanceAggregatedList struct {
26937	// Id: [Output Only] Unique identifier for the resource; defined by the
26938	// server.
26939	Id string `json:"id,omitempty"`
26940
26941	// Items: A list of TargetInstance resources.
26942	Items map[string]TargetInstancesScopedList `json:"items,omitempty"`
26943
26944	// Kind: Type of resource.
26945	Kind string `json:"kind,omitempty"`
26946
26947	// NextPageToken: [Output Only] This token allows you to get the next
26948	// page of results for list requests. If the number of results is larger
26949	// than maxResults, use the nextPageToken as a value for the query
26950	// parameter pageToken in the next list request. Subsequent list
26951	// requests will have their own nextPageToken to continue paging through
26952	// the results.
26953	NextPageToken string `json:"nextPageToken,omitempty"`
26954
26955	// SelfLink: [Output Only] Server-defined URL for this resource.
26956	SelfLink string `json:"selfLink,omitempty"`
26957
26958	// Warning: [Output Only] Informational warning message.
26959	Warning *TargetInstanceAggregatedListWarning `json:"warning,omitempty"`
26960
26961	// ServerResponse contains the HTTP response code and headers from the
26962	// server.
26963	googleapi.ServerResponse `json:"-"`
26964
26965	// ForceSendFields is a list of field names (e.g. "Id") to
26966	// unconditionally include in API requests. By default, fields with
26967	// empty values are omitted from API requests. However, any non-pointer,
26968	// non-interface field appearing in ForceSendFields will be sent to the
26969	// server regardless of whether the field is empty or not. This may be
26970	// used to include empty fields in Patch requests.
26971	ForceSendFields []string `json:"-"`
26972
26973	// NullFields is a list of field names (e.g. "Id") to include in API
26974	// requests with the JSON null value. By default, fields with empty
26975	// values are omitted from API requests. However, any field with an
26976	// empty value appearing in NullFields will be sent to the server as
26977	// null. It is an error if a field in this list has a non-empty value.
26978	// This may be used to include null fields in Patch requests.
26979	NullFields []string `json:"-"`
26980}
26981
26982func (s *TargetInstanceAggregatedList) MarshalJSON() ([]byte, error) {
26983	type NoMethod TargetInstanceAggregatedList
26984	raw := NoMethod(*s)
26985	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26986}
26987
26988// TargetInstanceAggregatedListWarning: [Output Only] Informational
26989// warning message.
26990type TargetInstanceAggregatedListWarning struct {
26991	// Code: [Output Only] A warning code, if applicable. For example,
26992	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26993	// the response.
26994	//
26995	// Possible values:
26996	//   "CLEANUP_FAILED"
26997	//   "DEPRECATED_RESOURCE_USED"
26998	//   "DEPRECATED_TYPE_USED"
26999	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27000	//   "EXPERIMENTAL_TYPE_USED"
27001	//   "EXTERNAL_API_WARNING"
27002	//   "FIELD_VALUE_OVERRIDEN"
27003	//   "INJECTED_KERNELS_DEPRECATED"
27004	//   "MISSING_TYPE_DEPENDENCY"
27005	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27006	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27007	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27008	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27009	//   "NEXT_HOP_NOT_RUNNING"
27010	//   "NOT_CRITICAL_ERROR"
27011	//   "NO_RESULTS_ON_PAGE"
27012	//   "REQUIRED_TOS_AGREEMENT"
27013	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27014	//   "RESOURCE_NOT_DELETED"
27015	//   "SCHEMA_VALIDATION_IGNORED"
27016	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27017	//   "UNDECLARED_PROPERTIES"
27018	//   "UNREACHABLE"
27019	Code string `json:"code,omitempty"`
27020
27021	// Data: [Output Only] Metadata about this warning in key: value format.
27022	// For example:
27023	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27024	Data []*TargetInstanceAggregatedListWarningData `json:"data,omitempty"`
27025
27026	// Message: [Output Only] A human-readable description of the warning
27027	// code.
27028	Message string `json:"message,omitempty"`
27029
27030	// ForceSendFields is a list of field names (e.g. "Code") to
27031	// unconditionally include in API requests. By default, fields with
27032	// empty values are omitted from API requests. However, any non-pointer,
27033	// non-interface field appearing in ForceSendFields will be sent to the
27034	// server regardless of whether the field is empty or not. This may be
27035	// used to include empty fields in Patch requests.
27036	ForceSendFields []string `json:"-"`
27037
27038	// NullFields is a list of field names (e.g. "Code") to include in API
27039	// requests with the JSON null value. By default, fields with empty
27040	// values are omitted from API requests. However, any field with an
27041	// empty value appearing in NullFields will be sent to the server as
27042	// null. It is an error if a field in this list has a non-empty value.
27043	// This may be used to include null fields in Patch requests.
27044	NullFields []string `json:"-"`
27045}
27046
27047func (s *TargetInstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
27048	type NoMethod TargetInstanceAggregatedListWarning
27049	raw := NoMethod(*s)
27050	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27051}
27052
27053type TargetInstanceAggregatedListWarningData struct {
27054	// Key: [Output Only] A key that provides more detail on the warning
27055	// being returned. For example, for warnings where there are no results
27056	// in a list request for a particular zone, this key might be scope and
27057	// the key value might be the zone name. Other examples might be a key
27058	// indicating a deprecated resource and a suggested replacement, or a
27059	// warning about invalid network settings (for example, if an instance
27060	// attempts to perform IP forwarding but is not enabled for IP
27061	// forwarding).
27062	Key string `json:"key,omitempty"`
27063
27064	// Value: [Output Only] A warning data value corresponding to the key.
27065	Value string `json:"value,omitempty"`
27066
27067	// ForceSendFields is a list of field names (e.g. "Key") to
27068	// unconditionally include in API requests. By default, fields with
27069	// empty values are omitted from API requests. However, any non-pointer,
27070	// non-interface field appearing in ForceSendFields will be sent to the
27071	// server regardless of whether the field is empty or not. This may be
27072	// used to include empty fields in Patch requests.
27073	ForceSendFields []string `json:"-"`
27074
27075	// NullFields is a list of field names (e.g. "Key") to include in API
27076	// requests with the JSON null value. By default, fields with empty
27077	// values are omitted from API requests. However, any field with an
27078	// empty value appearing in NullFields will be sent to the server as
27079	// null. It is an error if a field in this list has a non-empty value.
27080	// This may be used to include null fields in Patch requests.
27081	NullFields []string `json:"-"`
27082}
27083
27084func (s *TargetInstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
27085	type NoMethod TargetInstanceAggregatedListWarningData
27086	raw := NoMethod(*s)
27087	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27088}
27089
27090// TargetInstanceList: Contains a list of TargetInstance resources.
27091type TargetInstanceList struct {
27092	// Id: [Output Only] Unique identifier for the resource; defined by the
27093	// server.
27094	Id string `json:"id,omitempty"`
27095
27096	// Items: A list of TargetInstance resources.
27097	Items []*TargetInstance `json:"items,omitempty"`
27098
27099	// Kind: Type of resource.
27100	Kind string `json:"kind,omitempty"`
27101
27102	// NextPageToken: [Output Only] This token allows you to get the next
27103	// page of results for list requests. If the number of results is larger
27104	// than maxResults, use the nextPageToken as a value for the query
27105	// parameter pageToken in the next list request. Subsequent list
27106	// requests will have their own nextPageToken to continue paging through
27107	// the results.
27108	NextPageToken string `json:"nextPageToken,omitempty"`
27109
27110	// SelfLink: [Output Only] Server-defined URL for this resource.
27111	SelfLink string `json:"selfLink,omitempty"`
27112
27113	// Warning: [Output Only] Informational warning message.
27114	Warning *TargetInstanceListWarning `json:"warning,omitempty"`
27115
27116	// ServerResponse contains the HTTP response code and headers from the
27117	// server.
27118	googleapi.ServerResponse `json:"-"`
27119
27120	// ForceSendFields is a list of field names (e.g. "Id") to
27121	// unconditionally include in API requests. By default, fields with
27122	// empty values are omitted from API requests. However, any non-pointer,
27123	// non-interface field appearing in ForceSendFields will be sent to the
27124	// server regardless of whether the field is empty or not. This may be
27125	// used to include empty fields in Patch requests.
27126	ForceSendFields []string `json:"-"`
27127
27128	// NullFields is a list of field names (e.g. "Id") to include in API
27129	// requests with the JSON null value. By default, fields with empty
27130	// values are omitted from API requests. However, any field with an
27131	// empty value appearing in NullFields will be sent to the server as
27132	// null. It is an error if a field in this list has a non-empty value.
27133	// This may be used to include null fields in Patch requests.
27134	NullFields []string `json:"-"`
27135}
27136
27137func (s *TargetInstanceList) MarshalJSON() ([]byte, error) {
27138	type NoMethod TargetInstanceList
27139	raw := NoMethod(*s)
27140	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27141}
27142
27143// TargetInstanceListWarning: [Output Only] Informational warning
27144// message.
27145type TargetInstanceListWarning struct {
27146	// Code: [Output Only] A warning code, if applicable. For example,
27147	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27148	// the response.
27149	//
27150	// Possible values:
27151	//   "CLEANUP_FAILED"
27152	//   "DEPRECATED_RESOURCE_USED"
27153	//   "DEPRECATED_TYPE_USED"
27154	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27155	//   "EXPERIMENTAL_TYPE_USED"
27156	//   "EXTERNAL_API_WARNING"
27157	//   "FIELD_VALUE_OVERRIDEN"
27158	//   "INJECTED_KERNELS_DEPRECATED"
27159	//   "MISSING_TYPE_DEPENDENCY"
27160	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27161	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27162	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27163	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27164	//   "NEXT_HOP_NOT_RUNNING"
27165	//   "NOT_CRITICAL_ERROR"
27166	//   "NO_RESULTS_ON_PAGE"
27167	//   "REQUIRED_TOS_AGREEMENT"
27168	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27169	//   "RESOURCE_NOT_DELETED"
27170	//   "SCHEMA_VALIDATION_IGNORED"
27171	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27172	//   "UNDECLARED_PROPERTIES"
27173	//   "UNREACHABLE"
27174	Code string `json:"code,omitempty"`
27175
27176	// Data: [Output Only] Metadata about this warning in key: value format.
27177	// For example:
27178	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27179	Data []*TargetInstanceListWarningData `json:"data,omitempty"`
27180
27181	// Message: [Output Only] A human-readable description of the warning
27182	// code.
27183	Message string `json:"message,omitempty"`
27184
27185	// ForceSendFields is a list of field names (e.g. "Code") to
27186	// unconditionally include in API requests. By default, fields with
27187	// empty values are omitted from API requests. However, any non-pointer,
27188	// non-interface field appearing in ForceSendFields will be sent to the
27189	// server regardless of whether the field is empty or not. This may be
27190	// used to include empty fields in Patch requests.
27191	ForceSendFields []string `json:"-"`
27192
27193	// NullFields is a list of field names (e.g. "Code") to include in API
27194	// requests with the JSON null value. By default, fields with empty
27195	// values are omitted from API requests. However, any field with an
27196	// empty value appearing in NullFields will be sent to the server as
27197	// null. It is an error if a field in this list has a non-empty value.
27198	// This may be used to include null fields in Patch requests.
27199	NullFields []string `json:"-"`
27200}
27201
27202func (s *TargetInstanceListWarning) MarshalJSON() ([]byte, error) {
27203	type NoMethod TargetInstanceListWarning
27204	raw := NoMethod(*s)
27205	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27206}
27207
27208type TargetInstanceListWarningData struct {
27209	// Key: [Output Only] A key that provides more detail on the warning
27210	// being returned. For example, for warnings where there are no results
27211	// in a list request for a particular zone, this key might be scope and
27212	// the key value might be the zone name. Other examples might be a key
27213	// indicating a deprecated resource and a suggested replacement, or a
27214	// warning about invalid network settings (for example, if an instance
27215	// attempts to perform IP forwarding but is not enabled for IP
27216	// forwarding).
27217	Key string `json:"key,omitempty"`
27218
27219	// Value: [Output Only] A warning data value corresponding to the key.
27220	Value string `json:"value,omitempty"`
27221
27222	// ForceSendFields is a list of field names (e.g. "Key") to
27223	// unconditionally include in API requests. By default, fields with
27224	// empty values are omitted from API requests. However, any non-pointer,
27225	// non-interface field appearing in ForceSendFields will be sent to the
27226	// server regardless of whether the field is empty or not. This may be
27227	// used to include empty fields in Patch requests.
27228	ForceSendFields []string `json:"-"`
27229
27230	// NullFields is a list of field names (e.g. "Key") to include in API
27231	// requests with the JSON null value. By default, fields with empty
27232	// values are omitted from API requests. However, any field with an
27233	// empty value appearing in NullFields will be sent to the server as
27234	// null. It is an error if a field in this list has a non-empty value.
27235	// This may be used to include null fields in Patch requests.
27236	NullFields []string `json:"-"`
27237}
27238
27239func (s *TargetInstanceListWarningData) MarshalJSON() ([]byte, error) {
27240	type NoMethod TargetInstanceListWarningData
27241	raw := NoMethod(*s)
27242	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27243}
27244
27245type TargetInstancesScopedList struct {
27246	// TargetInstances: A list of target instances contained in this scope.
27247	TargetInstances []*TargetInstance `json:"targetInstances,omitempty"`
27248
27249	// Warning: Informational warning which replaces the list of addresses
27250	// when the list is empty.
27251	Warning *TargetInstancesScopedListWarning `json:"warning,omitempty"`
27252
27253	// ForceSendFields is a list of field names (e.g. "TargetInstances") to
27254	// unconditionally include in API requests. By default, fields with
27255	// empty values are omitted from API requests. However, any non-pointer,
27256	// non-interface field appearing in ForceSendFields will be sent to the
27257	// server regardless of whether the field is empty or not. This may be
27258	// used to include empty fields in Patch requests.
27259	ForceSendFields []string `json:"-"`
27260
27261	// NullFields is a list of field names (e.g. "TargetInstances") to
27262	// include in API requests with the JSON null value. By default, fields
27263	// with empty values are omitted from API requests. However, any field
27264	// with an empty value appearing in NullFields will be sent to the
27265	// server as null. It is an error if a field in this list has a
27266	// non-empty value. This may be used to include null fields in Patch
27267	// requests.
27268	NullFields []string `json:"-"`
27269}
27270
27271func (s *TargetInstancesScopedList) MarshalJSON() ([]byte, error) {
27272	type NoMethod TargetInstancesScopedList
27273	raw := NoMethod(*s)
27274	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27275}
27276
27277// TargetInstancesScopedListWarning: Informational warning which
27278// replaces the list of addresses when the list is empty.
27279type TargetInstancesScopedListWarning struct {
27280	// Code: [Output Only] A warning code, if applicable. For example,
27281	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27282	// the response.
27283	//
27284	// Possible values:
27285	//   "CLEANUP_FAILED"
27286	//   "DEPRECATED_RESOURCE_USED"
27287	//   "DEPRECATED_TYPE_USED"
27288	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27289	//   "EXPERIMENTAL_TYPE_USED"
27290	//   "EXTERNAL_API_WARNING"
27291	//   "FIELD_VALUE_OVERRIDEN"
27292	//   "INJECTED_KERNELS_DEPRECATED"
27293	//   "MISSING_TYPE_DEPENDENCY"
27294	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27295	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27296	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27297	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27298	//   "NEXT_HOP_NOT_RUNNING"
27299	//   "NOT_CRITICAL_ERROR"
27300	//   "NO_RESULTS_ON_PAGE"
27301	//   "REQUIRED_TOS_AGREEMENT"
27302	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27303	//   "RESOURCE_NOT_DELETED"
27304	//   "SCHEMA_VALIDATION_IGNORED"
27305	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27306	//   "UNDECLARED_PROPERTIES"
27307	//   "UNREACHABLE"
27308	Code string `json:"code,omitempty"`
27309
27310	// Data: [Output Only] Metadata about this warning in key: value format.
27311	// For example:
27312	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27313	Data []*TargetInstancesScopedListWarningData `json:"data,omitempty"`
27314
27315	// Message: [Output Only] A human-readable description of the warning
27316	// code.
27317	Message string `json:"message,omitempty"`
27318
27319	// ForceSendFields is a list of field names (e.g. "Code") to
27320	// unconditionally include in API requests. By default, fields with
27321	// empty values are omitted from API requests. However, any non-pointer,
27322	// non-interface field appearing in ForceSendFields will be sent to the
27323	// server regardless of whether the field is empty or not. This may be
27324	// used to include empty fields in Patch requests.
27325	ForceSendFields []string `json:"-"`
27326
27327	// NullFields is a list of field names (e.g. "Code") to include in API
27328	// requests with the JSON null value. By default, fields with empty
27329	// values are omitted from API requests. However, any field with an
27330	// empty value appearing in NullFields will be sent to the server as
27331	// null. It is an error if a field in this list has a non-empty value.
27332	// This may be used to include null fields in Patch requests.
27333	NullFields []string `json:"-"`
27334}
27335
27336func (s *TargetInstancesScopedListWarning) MarshalJSON() ([]byte, error) {
27337	type NoMethod TargetInstancesScopedListWarning
27338	raw := NoMethod(*s)
27339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27340}
27341
27342type TargetInstancesScopedListWarningData struct {
27343	// Key: [Output Only] A key that provides more detail on the warning
27344	// being returned. For example, for warnings where there are no results
27345	// in a list request for a particular zone, this key might be scope and
27346	// the key value might be the zone name. Other examples might be a key
27347	// indicating a deprecated resource and a suggested replacement, or a
27348	// warning about invalid network settings (for example, if an instance
27349	// attempts to perform IP forwarding but is not enabled for IP
27350	// forwarding).
27351	Key string `json:"key,omitempty"`
27352
27353	// Value: [Output Only] A warning data value corresponding to the key.
27354	Value string `json:"value,omitempty"`
27355
27356	// ForceSendFields is a list of field names (e.g. "Key") to
27357	// unconditionally include in API requests. By default, fields with
27358	// empty values are omitted from API requests. However, any non-pointer,
27359	// non-interface field appearing in ForceSendFields will be sent to the
27360	// server regardless of whether the field is empty or not. This may be
27361	// used to include empty fields in Patch requests.
27362	ForceSendFields []string `json:"-"`
27363
27364	// NullFields is a list of field names (e.g. "Key") to include in API
27365	// requests with the JSON null value. By default, fields with empty
27366	// values are omitted from API requests. However, any field with an
27367	// empty value appearing in NullFields will be sent to the server as
27368	// null. It is an error if a field in this list has a non-empty value.
27369	// This may be used to include null fields in Patch requests.
27370	NullFields []string `json:"-"`
27371}
27372
27373func (s *TargetInstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
27374	type NoMethod TargetInstancesScopedListWarningData
27375	raw := NoMethod(*s)
27376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27377}
27378
27379// TargetPool: A TargetPool resource. This resource defines a pool of
27380// instances, an associated HttpHealthCheck resource, and the fallback
27381// target pool. (== resource_for beta.targetPools ==) (== resource_for
27382// v1.targetPools ==)
27383type TargetPool struct {
27384	// BackupPool: This field is applicable only when the containing target
27385	// pool is serving a forwarding rule as the primary pool, and its
27386	// failoverRatio field is properly set to a value between [0,
27387	// 1].
27388	//
27389	// backupPool and failoverRatio together define the fallback behavior of
27390	// the primary target pool: if the ratio of the healthy instances in the
27391	// primary pool is at or below failoverRatio, traffic arriving at the
27392	// load-balanced IP will be directed to the backup pool.
27393	//
27394	// In case where failoverRatio and backupPool are not set, or all the
27395	// instances in the backup pool are unhealthy, the traffic will be
27396	// directed back to the primary pool in the "force" mode, where traffic
27397	// will be spread to the healthy instances with the best effort, or to
27398	// all instances when no instance is healthy.
27399	BackupPool string `json:"backupPool,omitempty"`
27400
27401	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
27402	// format.
27403	CreationTimestamp string `json:"creationTimestamp,omitempty"`
27404
27405	// Description: An optional description of this resource. Provide this
27406	// property when you create the resource.
27407	Description string `json:"description,omitempty"`
27408
27409	// FailoverRatio: This field is applicable only when the containing
27410	// target pool is serving a forwarding rule as the primary pool (i.e.,
27411	// not as a backup pool to some other target pool). The value of the
27412	// field must be in [0, 1].
27413	//
27414	// If set, backupPool must also be set. They together define the
27415	// fallback behavior of the primary target pool: if the ratio of the
27416	// healthy instances in the primary pool is at or below this number,
27417	// traffic arriving at the load-balanced IP will be directed to the
27418	// backup pool.
27419	//
27420	// In case where failoverRatio is not set or all the instances in the
27421	// backup pool are unhealthy, the traffic will be directed back to the
27422	// primary pool in the "force" mode, where traffic will be spread to the
27423	// healthy instances with the best effort, or to all instances when no
27424	// instance is healthy.
27425	FailoverRatio float64 `json:"failoverRatio,omitempty"`
27426
27427	// HealthChecks: The URL of the HttpHealthCheck resource. A member
27428	// instance in this pool is considered healthy if and only if the health
27429	// checks pass. An empty list means all member instances will be
27430	// considered healthy at all times. Only HttpHealthChecks are supported.
27431	// Only one health check may be specified.
27432	HealthChecks []string `json:"healthChecks,omitempty"`
27433
27434	// Id: [Output Only] The unique identifier for the resource. This
27435	// identifier is defined by the server.
27436	Id uint64 `json:"id,omitempty,string"`
27437
27438	// Instances: A list of resource URLs to the virtual machine instances
27439	// serving this pool. They must live in zones contained in the same
27440	// region as this pool.
27441	Instances []string `json:"instances,omitempty"`
27442
27443	// Kind: [Output Only] Type of the resource. Always compute#targetPool
27444	// for target pools.
27445	Kind string `json:"kind,omitempty"`
27446
27447	// Name: Name of the resource. Provided by the client when the resource
27448	// is created. The name must be 1-63 characters long, and comply with
27449	// RFC1035. Specifically, the name must be 1-63 characters long and
27450	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
27451	// the first character must be a lowercase letter, and all following
27452	// characters must be a dash, lowercase letter, or digit, except the
27453	// last character, which cannot be a dash.
27454	Name string `json:"name,omitempty"`
27455
27456	// Region: [Output Only] URL of the region where the target pool
27457	// resides.
27458	Region string `json:"region,omitempty"`
27459
27460	// SelfLink: [Output Only] Server-defined URL for the resource.
27461	SelfLink string `json:"selfLink,omitempty"`
27462
27463	// SessionAffinity: Session affinity option, must be one of the
27464	// following values:
27465	// NONE: Connections from the same client IP may go to any instance in
27466	// the pool.
27467	// CLIENT_IP: Connections from the same client IP will go to the same
27468	// instance in the pool while that instance remains
27469	// healthy.
27470	// CLIENT_IP_PROTO: Connections from the same client IP with the same IP
27471	// protocol will go to the same instance in the pool while that instance
27472	// remains healthy.
27473	//
27474	// Possible values:
27475	//   "CLIENT_IP"
27476	//   "CLIENT_IP_PORT_PROTO"
27477	//   "CLIENT_IP_PROTO"
27478	//   "GENERATED_COOKIE"
27479	//   "NONE"
27480	SessionAffinity string `json:"sessionAffinity,omitempty"`
27481
27482	// ServerResponse contains the HTTP response code and headers from the
27483	// server.
27484	googleapi.ServerResponse `json:"-"`
27485
27486	// ForceSendFields is a list of field names (e.g. "BackupPool") to
27487	// unconditionally include in API requests. By default, fields with
27488	// empty values are omitted from API requests. However, any non-pointer,
27489	// non-interface field appearing in ForceSendFields will be sent to the
27490	// server regardless of whether the field is empty or not. This may be
27491	// used to include empty fields in Patch requests.
27492	ForceSendFields []string `json:"-"`
27493
27494	// NullFields is a list of field names (e.g. "BackupPool") to include in
27495	// API requests with the JSON null value. By default, fields with empty
27496	// values are omitted from API requests. However, any field with an
27497	// empty value appearing in NullFields will be sent to the server as
27498	// null. It is an error if a field in this list has a non-empty value.
27499	// This may be used to include null fields in Patch requests.
27500	NullFields []string `json:"-"`
27501}
27502
27503func (s *TargetPool) MarshalJSON() ([]byte, error) {
27504	type NoMethod TargetPool
27505	raw := NoMethod(*s)
27506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27507}
27508
27509func (s *TargetPool) UnmarshalJSON(data []byte) error {
27510	type NoMethod TargetPool
27511	var s1 struct {
27512		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
27513		*NoMethod
27514	}
27515	s1.NoMethod = (*NoMethod)(s)
27516	if err := json.Unmarshal(data, &s1); err != nil {
27517		return err
27518	}
27519	s.FailoverRatio = float64(s1.FailoverRatio)
27520	return nil
27521}
27522
27523type TargetPoolAggregatedList struct {
27524	// Id: [Output Only] Unique identifier for the resource; defined by the
27525	// server.
27526	Id string `json:"id,omitempty"`
27527
27528	// Items: A list of TargetPool resources.
27529	Items map[string]TargetPoolsScopedList `json:"items,omitempty"`
27530
27531	// Kind: [Output Only] Type of resource. Always
27532	// compute#targetPoolAggregatedList for aggregated lists of target
27533	// pools.
27534	Kind string `json:"kind,omitempty"`
27535
27536	// NextPageToken: [Output Only] This token allows you to get the next
27537	// page of results for list requests. If the number of results is larger
27538	// than maxResults, use the nextPageToken as a value for the query
27539	// parameter pageToken in the next list request. Subsequent list
27540	// requests will have their own nextPageToken to continue paging through
27541	// the results.
27542	NextPageToken string `json:"nextPageToken,omitempty"`
27543
27544	// SelfLink: [Output Only] Server-defined URL for this resource.
27545	SelfLink string `json:"selfLink,omitempty"`
27546
27547	// Warning: [Output Only] Informational warning message.
27548	Warning *TargetPoolAggregatedListWarning `json:"warning,omitempty"`
27549
27550	// ServerResponse contains the HTTP response code and headers from the
27551	// server.
27552	googleapi.ServerResponse `json:"-"`
27553
27554	// ForceSendFields is a list of field names (e.g. "Id") to
27555	// unconditionally include in API requests. By default, fields with
27556	// empty values are omitted from API requests. However, any non-pointer,
27557	// non-interface field appearing in ForceSendFields will be sent to the
27558	// server regardless of whether the field is empty or not. This may be
27559	// used to include empty fields in Patch requests.
27560	ForceSendFields []string `json:"-"`
27561
27562	// NullFields is a list of field names (e.g. "Id") to include in API
27563	// requests with the JSON null value. By default, fields with empty
27564	// values are omitted from API requests. However, any field with an
27565	// empty value appearing in NullFields will be sent to the server as
27566	// null. It is an error if a field in this list has a non-empty value.
27567	// This may be used to include null fields in Patch requests.
27568	NullFields []string `json:"-"`
27569}
27570
27571func (s *TargetPoolAggregatedList) MarshalJSON() ([]byte, error) {
27572	type NoMethod TargetPoolAggregatedList
27573	raw := NoMethod(*s)
27574	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27575}
27576
27577// TargetPoolAggregatedListWarning: [Output Only] Informational warning
27578// message.
27579type TargetPoolAggregatedListWarning struct {
27580	// Code: [Output Only] A warning code, if applicable. For example,
27581	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27582	// the response.
27583	//
27584	// Possible values:
27585	//   "CLEANUP_FAILED"
27586	//   "DEPRECATED_RESOURCE_USED"
27587	//   "DEPRECATED_TYPE_USED"
27588	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27589	//   "EXPERIMENTAL_TYPE_USED"
27590	//   "EXTERNAL_API_WARNING"
27591	//   "FIELD_VALUE_OVERRIDEN"
27592	//   "INJECTED_KERNELS_DEPRECATED"
27593	//   "MISSING_TYPE_DEPENDENCY"
27594	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27595	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27596	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27597	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27598	//   "NEXT_HOP_NOT_RUNNING"
27599	//   "NOT_CRITICAL_ERROR"
27600	//   "NO_RESULTS_ON_PAGE"
27601	//   "REQUIRED_TOS_AGREEMENT"
27602	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27603	//   "RESOURCE_NOT_DELETED"
27604	//   "SCHEMA_VALIDATION_IGNORED"
27605	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27606	//   "UNDECLARED_PROPERTIES"
27607	//   "UNREACHABLE"
27608	Code string `json:"code,omitempty"`
27609
27610	// Data: [Output Only] Metadata about this warning in key: value format.
27611	// For example:
27612	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27613	Data []*TargetPoolAggregatedListWarningData `json:"data,omitempty"`
27614
27615	// Message: [Output Only] A human-readable description of the warning
27616	// code.
27617	Message string `json:"message,omitempty"`
27618
27619	// ForceSendFields is a list of field names (e.g. "Code") to
27620	// unconditionally include in API requests. By default, fields with
27621	// empty values are omitted from API requests. However, any non-pointer,
27622	// non-interface field appearing in ForceSendFields will be sent to the
27623	// server regardless of whether the field is empty or not. This may be
27624	// used to include empty fields in Patch requests.
27625	ForceSendFields []string `json:"-"`
27626
27627	// NullFields is a list of field names (e.g. "Code") to include in API
27628	// requests with the JSON null value. By default, fields with empty
27629	// values are omitted from API requests. However, any field with an
27630	// empty value appearing in NullFields will be sent to the server as
27631	// null. It is an error if a field in this list has a non-empty value.
27632	// This may be used to include null fields in Patch requests.
27633	NullFields []string `json:"-"`
27634}
27635
27636func (s *TargetPoolAggregatedListWarning) MarshalJSON() ([]byte, error) {
27637	type NoMethod TargetPoolAggregatedListWarning
27638	raw := NoMethod(*s)
27639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27640}
27641
27642type TargetPoolAggregatedListWarningData struct {
27643	// Key: [Output Only] A key that provides more detail on the warning
27644	// being returned. For example, for warnings where there are no results
27645	// in a list request for a particular zone, this key might be scope and
27646	// the key value might be the zone name. Other examples might be a key
27647	// indicating a deprecated resource and a suggested replacement, or a
27648	// warning about invalid network settings (for example, if an instance
27649	// attempts to perform IP forwarding but is not enabled for IP
27650	// forwarding).
27651	Key string `json:"key,omitempty"`
27652
27653	// Value: [Output Only] A warning data value corresponding to the key.
27654	Value string `json:"value,omitempty"`
27655
27656	// ForceSendFields is a list of field names (e.g. "Key") to
27657	// unconditionally include in API requests. By default, fields with
27658	// empty values are omitted from API requests. However, any non-pointer,
27659	// non-interface field appearing in ForceSendFields will be sent to the
27660	// server regardless of whether the field is empty or not. This may be
27661	// used to include empty fields in Patch requests.
27662	ForceSendFields []string `json:"-"`
27663
27664	// NullFields is a list of field names (e.g. "Key") to include in API
27665	// requests with the JSON null value. By default, fields with empty
27666	// values are omitted from API requests. However, any field with an
27667	// empty value appearing in NullFields will be sent to the server as
27668	// null. It is an error if a field in this list has a non-empty value.
27669	// This may be used to include null fields in Patch requests.
27670	NullFields []string `json:"-"`
27671}
27672
27673func (s *TargetPoolAggregatedListWarningData) MarshalJSON() ([]byte, error) {
27674	type NoMethod TargetPoolAggregatedListWarningData
27675	raw := NoMethod(*s)
27676	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27677}
27678
27679type TargetPoolInstanceHealth struct {
27680	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
27681
27682	// Kind: [Output Only] Type of resource. Always
27683	// compute#targetPoolInstanceHealth when checking the health of an
27684	// instance.
27685	Kind string `json:"kind,omitempty"`
27686
27687	// ServerResponse contains the HTTP response code and headers from the
27688	// server.
27689	googleapi.ServerResponse `json:"-"`
27690
27691	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
27692	// unconditionally include in API requests. By default, fields with
27693	// empty values are omitted from API requests. However, any non-pointer,
27694	// non-interface field appearing in ForceSendFields will be sent to the
27695	// server regardless of whether the field is empty or not. This may be
27696	// used to include empty fields in Patch requests.
27697	ForceSendFields []string `json:"-"`
27698
27699	// NullFields is a list of field names (e.g. "HealthStatus") to include
27700	// in API requests with the JSON null value. By default, fields with
27701	// empty values are omitted from API requests. However, any field with
27702	// an empty value appearing in NullFields will be sent to the server as
27703	// null. It is an error if a field in this list has a non-empty value.
27704	// This may be used to include null fields in Patch requests.
27705	NullFields []string `json:"-"`
27706}
27707
27708func (s *TargetPoolInstanceHealth) MarshalJSON() ([]byte, error) {
27709	type NoMethod TargetPoolInstanceHealth
27710	raw := NoMethod(*s)
27711	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27712}
27713
27714// TargetPoolList: Contains a list of TargetPool resources.
27715type TargetPoolList struct {
27716	// Id: [Output Only] Unique identifier for the resource; defined by the
27717	// server.
27718	Id string `json:"id,omitempty"`
27719
27720	// Items: A list of TargetPool resources.
27721	Items []*TargetPool `json:"items,omitempty"`
27722
27723	// Kind: [Output Only] Type of resource. Always compute#targetPoolList
27724	// for lists of target pools.
27725	Kind string `json:"kind,omitempty"`
27726
27727	// NextPageToken: [Output Only] This token allows you to get the next
27728	// page of results for list requests. If the number of results is larger
27729	// than maxResults, use the nextPageToken as a value for the query
27730	// parameter pageToken in the next list request. Subsequent list
27731	// requests will have their own nextPageToken to continue paging through
27732	// the results.
27733	NextPageToken string `json:"nextPageToken,omitempty"`
27734
27735	// SelfLink: [Output Only] Server-defined URL for this resource.
27736	SelfLink string `json:"selfLink,omitempty"`
27737
27738	// Warning: [Output Only] Informational warning message.
27739	Warning *TargetPoolListWarning `json:"warning,omitempty"`
27740
27741	// ServerResponse contains the HTTP response code and headers from the
27742	// server.
27743	googleapi.ServerResponse `json:"-"`
27744
27745	// ForceSendFields is a list of field names (e.g. "Id") to
27746	// unconditionally include in API requests. By default, fields with
27747	// empty values are omitted from API requests. However, any non-pointer,
27748	// non-interface field appearing in ForceSendFields will be sent to the
27749	// server regardless of whether the field is empty or not. This may be
27750	// used to include empty fields in Patch requests.
27751	ForceSendFields []string `json:"-"`
27752
27753	// NullFields is a list of field names (e.g. "Id") to include in API
27754	// requests with the JSON null value. By default, fields with empty
27755	// values are omitted from API requests. However, any field with an
27756	// empty value appearing in NullFields will be sent to the server as
27757	// null. It is an error if a field in this list has a non-empty value.
27758	// This may be used to include null fields in Patch requests.
27759	NullFields []string `json:"-"`
27760}
27761
27762func (s *TargetPoolList) MarshalJSON() ([]byte, error) {
27763	type NoMethod TargetPoolList
27764	raw := NoMethod(*s)
27765	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27766}
27767
27768// TargetPoolListWarning: [Output Only] Informational warning message.
27769type TargetPoolListWarning struct {
27770	// Code: [Output Only] A warning code, if applicable. For example,
27771	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27772	// the response.
27773	//
27774	// Possible values:
27775	//   "CLEANUP_FAILED"
27776	//   "DEPRECATED_RESOURCE_USED"
27777	//   "DEPRECATED_TYPE_USED"
27778	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27779	//   "EXPERIMENTAL_TYPE_USED"
27780	//   "EXTERNAL_API_WARNING"
27781	//   "FIELD_VALUE_OVERRIDEN"
27782	//   "INJECTED_KERNELS_DEPRECATED"
27783	//   "MISSING_TYPE_DEPENDENCY"
27784	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27785	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27786	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27787	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27788	//   "NEXT_HOP_NOT_RUNNING"
27789	//   "NOT_CRITICAL_ERROR"
27790	//   "NO_RESULTS_ON_PAGE"
27791	//   "REQUIRED_TOS_AGREEMENT"
27792	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27793	//   "RESOURCE_NOT_DELETED"
27794	//   "SCHEMA_VALIDATION_IGNORED"
27795	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27796	//   "UNDECLARED_PROPERTIES"
27797	//   "UNREACHABLE"
27798	Code string `json:"code,omitempty"`
27799
27800	// Data: [Output Only] Metadata about this warning in key: value format.
27801	// For example:
27802	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27803	Data []*TargetPoolListWarningData `json:"data,omitempty"`
27804
27805	// Message: [Output Only] A human-readable description of the warning
27806	// code.
27807	Message string `json:"message,omitempty"`
27808
27809	// ForceSendFields is a list of field names (e.g. "Code") to
27810	// unconditionally include in API requests. By default, fields with
27811	// empty values are omitted from API requests. However, any non-pointer,
27812	// non-interface field appearing in ForceSendFields will be sent to the
27813	// server regardless of whether the field is empty or not. This may be
27814	// used to include empty fields in Patch requests.
27815	ForceSendFields []string `json:"-"`
27816
27817	// NullFields is a list of field names (e.g. "Code") to include in API
27818	// requests with the JSON null value. By default, fields with empty
27819	// values are omitted from API requests. However, any field with an
27820	// empty value appearing in NullFields will be sent to the server as
27821	// null. It is an error if a field in this list has a non-empty value.
27822	// This may be used to include null fields in Patch requests.
27823	NullFields []string `json:"-"`
27824}
27825
27826func (s *TargetPoolListWarning) MarshalJSON() ([]byte, error) {
27827	type NoMethod TargetPoolListWarning
27828	raw := NoMethod(*s)
27829	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27830}
27831
27832type TargetPoolListWarningData struct {
27833	// Key: [Output Only] A key that provides more detail on the warning
27834	// being returned. For example, for warnings where there are no results
27835	// in a list request for a particular zone, this key might be scope and
27836	// the key value might be the zone name. Other examples might be a key
27837	// indicating a deprecated resource and a suggested replacement, or a
27838	// warning about invalid network settings (for example, if an instance
27839	// attempts to perform IP forwarding but is not enabled for IP
27840	// forwarding).
27841	Key string `json:"key,omitempty"`
27842
27843	// Value: [Output Only] A warning data value corresponding to the key.
27844	Value string `json:"value,omitempty"`
27845
27846	// ForceSendFields is a list of field names (e.g. "Key") to
27847	// unconditionally include in API requests. By default, fields with
27848	// empty values are omitted from API requests. However, any non-pointer,
27849	// non-interface field appearing in ForceSendFields will be sent to the
27850	// server regardless of whether the field is empty or not. This may be
27851	// used to include empty fields in Patch requests.
27852	ForceSendFields []string `json:"-"`
27853
27854	// NullFields is a list of field names (e.g. "Key") to include in API
27855	// requests with the JSON null value. By default, fields with empty
27856	// values are omitted from API requests. However, any field with an
27857	// empty value appearing in NullFields will be sent to the server as
27858	// null. It is an error if a field in this list has a non-empty value.
27859	// This may be used to include null fields in Patch requests.
27860	NullFields []string `json:"-"`
27861}
27862
27863func (s *TargetPoolListWarningData) MarshalJSON() ([]byte, error) {
27864	type NoMethod TargetPoolListWarningData
27865	raw := NoMethod(*s)
27866	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27867}
27868
27869type TargetPoolsAddHealthCheckRequest struct {
27870	// HealthChecks: The HttpHealthCheck to add to the target pool.
27871	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
27872
27873	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
27874	// unconditionally include in API requests. By default, fields with
27875	// empty values are omitted from API requests. However, any non-pointer,
27876	// non-interface field appearing in ForceSendFields will be sent to the
27877	// server regardless of whether the field is empty or not. This may be
27878	// used to include empty fields in Patch requests.
27879	ForceSendFields []string `json:"-"`
27880
27881	// NullFields is a list of field names (e.g. "HealthChecks") to include
27882	// in API requests with the JSON null value. By default, fields with
27883	// empty values are omitted from API requests. However, any field with
27884	// an empty value appearing in NullFields will be sent to the server as
27885	// null. It is an error if a field in this list has a non-empty value.
27886	// This may be used to include null fields in Patch requests.
27887	NullFields []string `json:"-"`
27888}
27889
27890func (s *TargetPoolsAddHealthCheckRequest) MarshalJSON() ([]byte, error) {
27891	type NoMethod TargetPoolsAddHealthCheckRequest
27892	raw := NoMethod(*s)
27893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27894}
27895
27896type TargetPoolsAddInstanceRequest struct {
27897	// Instances: A full or partial URL to an instance to add to this target
27898	// pool. This can be a full or partial URL. For example, the following
27899	// are valid URLs:
27900	// -
27901	// https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name
27902	// - projects/project-id/zones/zone/instances/instance-name
27903	// - zones/zone/instances/instance-name
27904	Instances []*InstanceReference `json:"instances,omitempty"`
27905
27906	// ForceSendFields is a list of field names (e.g. "Instances") to
27907	// unconditionally include in API requests. By default, fields with
27908	// empty values are omitted from API requests. However, any non-pointer,
27909	// non-interface field appearing in ForceSendFields will be sent to the
27910	// server regardless of whether the field is empty or not. This may be
27911	// used to include empty fields in Patch requests.
27912	ForceSendFields []string `json:"-"`
27913
27914	// NullFields is a list of field names (e.g. "Instances") to include in
27915	// API requests with the JSON null value. By default, fields with empty
27916	// values are omitted from API requests. However, any field with an
27917	// empty value appearing in NullFields will be sent to the server as
27918	// null. It is an error if a field in this list has a non-empty value.
27919	// This may be used to include null fields in Patch requests.
27920	NullFields []string `json:"-"`
27921}
27922
27923func (s *TargetPoolsAddInstanceRequest) MarshalJSON() ([]byte, error) {
27924	type NoMethod TargetPoolsAddInstanceRequest
27925	raw := NoMethod(*s)
27926	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27927}
27928
27929type TargetPoolsRemoveHealthCheckRequest struct {
27930	// HealthChecks: Health check URL to be removed. This can be a full or
27931	// valid partial URL. For example, the following are valid URLs:
27932	// -
27933	// https://www.googleapis.com/compute/beta/projects/project/global/httpHealthChecks/health-check
27934	// - projects/project/global/httpHealthChecks/health-check
27935	// - global/httpHealthChecks/health-check
27936	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
27937
27938	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
27939	// unconditionally include in API requests. By default, fields with
27940	// empty values are omitted from API requests. However, any non-pointer,
27941	// non-interface field appearing in ForceSendFields will be sent to the
27942	// server regardless of whether the field is empty or not. This may be
27943	// used to include empty fields in Patch requests.
27944	ForceSendFields []string `json:"-"`
27945
27946	// NullFields is a list of field names (e.g. "HealthChecks") to include
27947	// in API requests with the JSON null value. By default, fields with
27948	// empty values are omitted from API requests. However, any field with
27949	// an empty value appearing in NullFields will be sent to the server as
27950	// null. It is an error if a field in this list has a non-empty value.
27951	// This may be used to include null fields in Patch requests.
27952	NullFields []string `json:"-"`
27953}
27954
27955func (s *TargetPoolsRemoveHealthCheckRequest) MarshalJSON() ([]byte, error) {
27956	type NoMethod TargetPoolsRemoveHealthCheckRequest
27957	raw := NoMethod(*s)
27958	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27959}
27960
27961type TargetPoolsRemoveInstanceRequest struct {
27962	// Instances: URLs of the instances to be removed from target pool.
27963	Instances []*InstanceReference `json:"instances,omitempty"`
27964
27965	// ForceSendFields is a list of field names (e.g. "Instances") to
27966	// unconditionally include in API requests. By default, fields with
27967	// empty values are omitted from API requests. However, any non-pointer,
27968	// non-interface field appearing in ForceSendFields will be sent to the
27969	// server regardless of whether the field is empty or not. This may be
27970	// used to include empty fields in Patch requests.
27971	ForceSendFields []string `json:"-"`
27972
27973	// NullFields is a list of field names (e.g. "Instances") to include in
27974	// API requests with the JSON null value. By default, fields with empty
27975	// values are omitted from API requests. However, any field with an
27976	// empty value appearing in NullFields will be sent to the server as
27977	// null. It is an error if a field in this list has a non-empty value.
27978	// This may be used to include null fields in Patch requests.
27979	NullFields []string `json:"-"`
27980}
27981
27982func (s *TargetPoolsRemoveInstanceRequest) MarshalJSON() ([]byte, error) {
27983	type NoMethod TargetPoolsRemoveInstanceRequest
27984	raw := NoMethod(*s)
27985	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27986}
27987
27988type TargetPoolsScopedList struct {
27989	// TargetPools: A list of target pools contained in this scope.
27990	TargetPools []*TargetPool `json:"targetPools,omitempty"`
27991
27992	// Warning: Informational warning which replaces the list of addresses
27993	// when the list is empty.
27994	Warning *TargetPoolsScopedListWarning `json:"warning,omitempty"`
27995
27996	// ForceSendFields is a list of field names (e.g. "TargetPools") to
27997	// unconditionally include in API requests. By default, fields with
27998	// empty values are omitted from API requests. However, any non-pointer,
27999	// non-interface field appearing in ForceSendFields will be sent to the
28000	// server regardless of whether the field is empty or not. This may be
28001	// used to include empty fields in Patch requests.
28002	ForceSendFields []string `json:"-"`
28003
28004	// NullFields is a list of field names (e.g. "TargetPools") to include
28005	// in API requests with the JSON null value. By default, fields with
28006	// empty values are omitted from API requests. However, any field with
28007	// an empty value appearing in NullFields will be sent to the server as
28008	// null. It is an error if a field in this list has a non-empty value.
28009	// This may be used to include null fields in Patch requests.
28010	NullFields []string `json:"-"`
28011}
28012
28013func (s *TargetPoolsScopedList) MarshalJSON() ([]byte, error) {
28014	type NoMethod TargetPoolsScopedList
28015	raw := NoMethod(*s)
28016	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28017}
28018
28019// TargetPoolsScopedListWarning: Informational warning which replaces
28020// the list of addresses when the list is empty.
28021type TargetPoolsScopedListWarning struct {
28022	// Code: [Output Only] A warning code, if applicable. For example,
28023	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28024	// the response.
28025	//
28026	// Possible values:
28027	//   "CLEANUP_FAILED"
28028	//   "DEPRECATED_RESOURCE_USED"
28029	//   "DEPRECATED_TYPE_USED"
28030	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28031	//   "EXPERIMENTAL_TYPE_USED"
28032	//   "EXTERNAL_API_WARNING"
28033	//   "FIELD_VALUE_OVERRIDEN"
28034	//   "INJECTED_KERNELS_DEPRECATED"
28035	//   "MISSING_TYPE_DEPENDENCY"
28036	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28037	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28038	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28039	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28040	//   "NEXT_HOP_NOT_RUNNING"
28041	//   "NOT_CRITICAL_ERROR"
28042	//   "NO_RESULTS_ON_PAGE"
28043	//   "REQUIRED_TOS_AGREEMENT"
28044	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28045	//   "RESOURCE_NOT_DELETED"
28046	//   "SCHEMA_VALIDATION_IGNORED"
28047	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28048	//   "UNDECLARED_PROPERTIES"
28049	//   "UNREACHABLE"
28050	Code string `json:"code,omitempty"`
28051
28052	// Data: [Output Only] Metadata about this warning in key: value format.
28053	// For example:
28054	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28055	Data []*TargetPoolsScopedListWarningData `json:"data,omitempty"`
28056
28057	// Message: [Output Only] A human-readable description of the warning
28058	// code.
28059	Message string `json:"message,omitempty"`
28060
28061	// ForceSendFields is a list of field names (e.g. "Code") to
28062	// unconditionally include in API requests. By default, fields with
28063	// empty values are omitted from API requests. However, any non-pointer,
28064	// non-interface field appearing in ForceSendFields will be sent to the
28065	// server regardless of whether the field is empty or not. This may be
28066	// used to include empty fields in Patch requests.
28067	ForceSendFields []string `json:"-"`
28068
28069	// NullFields is a list of field names (e.g. "Code") to include in API
28070	// requests with the JSON null value. By default, fields with empty
28071	// values are omitted from API requests. However, any field with an
28072	// empty value appearing in NullFields will be sent to the server as
28073	// null. It is an error if a field in this list has a non-empty value.
28074	// This may be used to include null fields in Patch requests.
28075	NullFields []string `json:"-"`
28076}
28077
28078func (s *TargetPoolsScopedListWarning) MarshalJSON() ([]byte, error) {
28079	type NoMethod TargetPoolsScopedListWarning
28080	raw := NoMethod(*s)
28081	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28082}
28083
28084type TargetPoolsScopedListWarningData struct {
28085	// Key: [Output Only] A key that provides more detail on the warning
28086	// being returned. For example, for warnings where there are no results
28087	// in a list request for a particular zone, this key might be scope and
28088	// the key value might be the zone name. Other examples might be a key
28089	// indicating a deprecated resource and a suggested replacement, or a
28090	// warning about invalid network settings (for example, if an instance
28091	// attempts to perform IP forwarding but is not enabled for IP
28092	// forwarding).
28093	Key string `json:"key,omitempty"`
28094
28095	// Value: [Output Only] A warning data value corresponding to the key.
28096	Value string `json:"value,omitempty"`
28097
28098	// ForceSendFields is a list of field names (e.g. "Key") to
28099	// unconditionally include in API requests. By default, fields with
28100	// empty values are omitted from API requests. However, any non-pointer,
28101	// non-interface field appearing in ForceSendFields will be sent to the
28102	// server regardless of whether the field is empty or not. This may be
28103	// used to include empty fields in Patch requests.
28104	ForceSendFields []string `json:"-"`
28105
28106	// NullFields is a list of field names (e.g. "Key") to include in API
28107	// requests with the JSON null value. By default, fields with empty
28108	// values are omitted from API requests. However, any field with an
28109	// empty value appearing in NullFields will be sent to the server as
28110	// null. It is an error if a field in this list has a non-empty value.
28111	// This may be used to include null fields in Patch requests.
28112	NullFields []string `json:"-"`
28113}
28114
28115func (s *TargetPoolsScopedListWarningData) MarshalJSON() ([]byte, error) {
28116	type NoMethod TargetPoolsScopedListWarningData
28117	raw := NoMethod(*s)
28118	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28119}
28120
28121type TargetReference struct {
28122	Target string `json:"target,omitempty"`
28123
28124	// ForceSendFields is a list of field names (e.g. "Target") to
28125	// unconditionally include in API requests. By default, fields with
28126	// empty values are omitted from API requests. However, any non-pointer,
28127	// non-interface field appearing in ForceSendFields will be sent to the
28128	// server regardless of whether the field is empty or not. This may be
28129	// used to include empty fields in Patch requests.
28130	ForceSendFields []string `json:"-"`
28131
28132	// NullFields is a list of field names (e.g. "Target") to include in API
28133	// requests with the JSON null value. By default, fields with empty
28134	// values are omitted from API requests. However, any field with an
28135	// empty value appearing in NullFields will be sent to the server as
28136	// null. It is an error if a field in this list has a non-empty value.
28137	// This may be used to include null fields in Patch requests.
28138	NullFields []string `json:"-"`
28139}
28140
28141func (s *TargetReference) MarshalJSON() ([]byte, error) {
28142	type NoMethod TargetReference
28143	raw := NoMethod(*s)
28144	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28145}
28146
28147type TargetSslProxiesSetBackendServiceRequest struct {
28148	// Service: The URL of the new BackendService resource for the
28149	// targetSslProxy.
28150	Service string `json:"service,omitempty"`
28151
28152	// ForceSendFields is a list of field names (e.g. "Service") 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. "Service") to include in
28161	// API requests with the JSON null value. By default, fields with empty
28162	// values are omitted from API requests. However, any field with an
28163	// empty value appearing in NullFields will be sent to the server as
28164	// null. It is an error if a field in this list has a non-empty value.
28165	// This may be used to include null fields in Patch requests.
28166	NullFields []string `json:"-"`
28167}
28168
28169func (s *TargetSslProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
28170	type NoMethod TargetSslProxiesSetBackendServiceRequest
28171	raw := NoMethod(*s)
28172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28173}
28174
28175type TargetSslProxiesSetProxyHeaderRequest struct {
28176	// ProxyHeader: The new type of proxy header to append before sending
28177	// data to the backend. NONE or PROXY_V1 are allowed.
28178	//
28179	// Possible values:
28180	//   "NONE"
28181	//   "PROXY_V1"
28182	ProxyHeader string `json:"proxyHeader,omitempty"`
28183
28184	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
28185	// unconditionally include in API requests. By default, fields with
28186	// empty values are omitted from API requests. However, any non-pointer,
28187	// non-interface field appearing in ForceSendFields will be sent to the
28188	// server regardless of whether the field is empty or not. This may be
28189	// used to include empty fields in Patch requests.
28190	ForceSendFields []string `json:"-"`
28191
28192	// NullFields is a list of field names (e.g. "ProxyHeader") to include
28193	// in API requests with the JSON null value. By default, fields with
28194	// empty values are omitted from API requests. However, any field with
28195	// an empty value appearing in NullFields will be sent to the server as
28196	// null. It is an error if a field in this list has a non-empty value.
28197	// This may be used to include null fields in Patch requests.
28198	NullFields []string `json:"-"`
28199}
28200
28201func (s *TargetSslProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
28202	type NoMethod TargetSslProxiesSetProxyHeaderRequest
28203	raw := NoMethod(*s)
28204	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28205}
28206
28207type TargetSslProxiesSetSslCertificatesRequest struct {
28208	// SslCertificates: New set of URLs to SslCertificate resources to
28209	// associate with this TargetSslProxy. Currently exactly one ssl
28210	// certificate must be specified.
28211	SslCertificates []string `json:"sslCertificates,omitempty"`
28212
28213	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
28214	// unconditionally include in API requests. By default, fields with
28215	// empty values are omitted from API requests. However, any non-pointer,
28216	// non-interface field appearing in ForceSendFields will be sent to the
28217	// server regardless of whether the field is empty or not. This may be
28218	// used to include empty fields in Patch requests.
28219	ForceSendFields []string `json:"-"`
28220
28221	// NullFields is a list of field names (e.g. "SslCertificates") to
28222	// include in API requests with the JSON null value. By default, fields
28223	// with empty values are omitted from API requests. However, any field
28224	// with an empty value appearing in NullFields will be sent to the
28225	// server as null. It is an error if a field in this list has a
28226	// non-empty value. This may be used to include null fields in Patch
28227	// requests.
28228	NullFields []string `json:"-"`
28229}
28230
28231func (s *TargetSslProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
28232	type NoMethod TargetSslProxiesSetSslCertificatesRequest
28233	raw := NoMethod(*s)
28234	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28235}
28236
28237// TargetSslProxy: A TargetSslProxy resource. This resource defines an
28238// SSL proxy. (== resource_for beta.targetSslProxies ==) (==
28239// resource_for v1.targetSslProxies ==)
28240type TargetSslProxy struct {
28241	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
28242	// format.
28243	CreationTimestamp string `json:"creationTimestamp,omitempty"`
28244
28245	// Description: An optional description of this resource. Provide this
28246	// property when you create the resource.
28247	Description string `json:"description,omitempty"`
28248
28249	// Id: [Output Only] The unique identifier for the resource. This
28250	// identifier is defined by the server.
28251	Id uint64 `json:"id,omitempty,string"`
28252
28253	// Kind: [Output Only] Type of the resource. Always
28254	// compute#targetSslProxy for target SSL proxies.
28255	Kind string `json:"kind,omitempty"`
28256
28257	// Name: Name of the resource. Provided by the client when the resource
28258	// is created. The name must be 1-63 characters long, and comply with
28259	// RFC1035. Specifically, the name must be 1-63 characters long and
28260	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
28261	// the first character must be a lowercase letter, and all following
28262	// characters must be a dash, lowercase letter, or digit, except the
28263	// last character, which cannot be a dash.
28264	Name string `json:"name,omitempty"`
28265
28266	// ProxyHeader: Specifies the type of proxy header to append before
28267	// sending data to the backend, either NONE or PROXY_V1. The default is
28268	// NONE.
28269	//
28270	// Possible values:
28271	//   "NONE"
28272	//   "PROXY_V1"
28273	ProxyHeader string `json:"proxyHeader,omitempty"`
28274
28275	// SelfLink: [Output Only] Server-defined URL for the resource.
28276	SelfLink string `json:"selfLink,omitempty"`
28277
28278	// Service: URL to the BackendService resource.
28279	Service string `json:"service,omitempty"`
28280
28281	// SslCertificates: URLs to SslCertificate resources that are used to
28282	// authenticate connections to Backends. At least one SSL certificate
28283	// must be specified. Currently, you may specify up to 15 SSL
28284	// certificates.
28285	SslCertificates []string `json:"sslCertificates,omitempty"`
28286
28287	// SslPolicy: URL of SslPolicy resource that will be associated with the
28288	// TargetSslProxy resource. If not set, the TargetSslProxy resource will
28289	// not have any SSL policy configured.
28290	SslPolicy string `json:"sslPolicy,omitempty"`
28291
28292	// ServerResponse contains the HTTP response code and headers from the
28293	// server.
28294	googleapi.ServerResponse `json:"-"`
28295
28296	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
28297	// to unconditionally include in API requests. By default, fields with
28298	// empty values are omitted from API requests. However, any non-pointer,
28299	// non-interface field appearing in ForceSendFields will be sent to the
28300	// server regardless of whether the field is empty or not. This may be
28301	// used to include empty fields in Patch requests.
28302	ForceSendFields []string `json:"-"`
28303
28304	// NullFields is a list of field names (e.g. "CreationTimestamp") to
28305	// include in API requests with the JSON null value. By default, fields
28306	// with empty values are omitted from API requests. However, any field
28307	// with an empty value appearing in NullFields will be sent to the
28308	// server as null. It is an error if a field in this list has a
28309	// non-empty value. This may be used to include null fields in Patch
28310	// requests.
28311	NullFields []string `json:"-"`
28312}
28313
28314func (s *TargetSslProxy) MarshalJSON() ([]byte, error) {
28315	type NoMethod TargetSslProxy
28316	raw := NoMethod(*s)
28317	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28318}
28319
28320// TargetSslProxyList: Contains a list of TargetSslProxy resources.
28321type TargetSslProxyList struct {
28322	// Id: [Output Only] Unique identifier for the resource; defined by the
28323	// server.
28324	Id string `json:"id,omitempty"`
28325
28326	// Items: A list of TargetSslProxy resources.
28327	Items []*TargetSslProxy `json:"items,omitempty"`
28328
28329	// Kind: Type of resource.
28330	Kind string `json:"kind,omitempty"`
28331
28332	// NextPageToken: [Output Only] This token allows you to get the next
28333	// page of results for list requests. If the number of results is larger
28334	// than maxResults, use the nextPageToken as a value for the query
28335	// parameter pageToken in the next list request. Subsequent list
28336	// requests will have their own nextPageToken to continue paging through
28337	// the results.
28338	NextPageToken string `json:"nextPageToken,omitempty"`
28339
28340	// SelfLink: [Output Only] Server-defined URL for this resource.
28341	SelfLink string `json:"selfLink,omitempty"`
28342
28343	// Warning: [Output Only] Informational warning message.
28344	Warning *TargetSslProxyListWarning `json:"warning,omitempty"`
28345
28346	// ServerResponse contains the HTTP response code and headers from the
28347	// server.
28348	googleapi.ServerResponse `json:"-"`
28349
28350	// ForceSendFields is a list of field names (e.g. "Id") to
28351	// unconditionally include in API requests. By default, fields with
28352	// empty values are omitted from API requests. However, any non-pointer,
28353	// non-interface field appearing in ForceSendFields will be sent to the
28354	// server regardless of whether the field is empty or not. This may be
28355	// used to include empty fields in Patch requests.
28356	ForceSendFields []string `json:"-"`
28357
28358	// NullFields is a list of field names (e.g. "Id") to include in API
28359	// requests with the JSON null value. By default, fields with empty
28360	// values are omitted from API requests. However, any field with an
28361	// empty value appearing in NullFields will be sent to the server as
28362	// null. It is an error if a field in this list has a non-empty value.
28363	// This may be used to include null fields in Patch requests.
28364	NullFields []string `json:"-"`
28365}
28366
28367func (s *TargetSslProxyList) MarshalJSON() ([]byte, error) {
28368	type NoMethod TargetSslProxyList
28369	raw := NoMethod(*s)
28370	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28371}
28372
28373// TargetSslProxyListWarning: [Output Only] Informational warning
28374// message.
28375type TargetSslProxyListWarning struct {
28376	// Code: [Output Only] A warning code, if applicable. For example,
28377	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28378	// the response.
28379	//
28380	// Possible values:
28381	//   "CLEANUP_FAILED"
28382	//   "DEPRECATED_RESOURCE_USED"
28383	//   "DEPRECATED_TYPE_USED"
28384	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28385	//   "EXPERIMENTAL_TYPE_USED"
28386	//   "EXTERNAL_API_WARNING"
28387	//   "FIELD_VALUE_OVERRIDEN"
28388	//   "INJECTED_KERNELS_DEPRECATED"
28389	//   "MISSING_TYPE_DEPENDENCY"
28390	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28391	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28392	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28393	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28394	//   "NEXT_HOP_NOT_RUNNING"
28395	//   "NOT_CRITICAL_ERROR"
28396	//   "NO_RESULTS_ON_PAGE"
28397	//   "REQUIRED_TOS_AGREEMENT"
28398	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28399	//   "RESOURCE_NOT_DELETED"
28400	//   "SCHEMA_VALIDATION_IGNORED"
28401	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28402	//   "UNDECLARED_PROPERTIES"
28403	//   "UNREACHABLE"
28404	Code string `json:"code,omitempty"`
28405
28406	// Data: [Output Only] Metadata about this warning in key: value format.
28407	// For example:
28408	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28409	Data []*TargetSslProxyListWarningData `json:"data,omitempty"`
28410
28411	// Message: [Output Only] A human-readable description of the warning
28412	// code.
28413	Message string `json:"message,omitempty"`
28414
28415	// ForceSendFields is a list of field names (e.g. "Code") to
28416	// unconditionally include in API requests. By default, fields with
28417	// empty values are omitted from API requests. However, any non-pointer,
28418	// non-interface field appearing in ForceSendFields will be sent to the
28419	// server regardless of whether the field is empty or not. This may be
28420	// used to include empty fields in Patch requests.
28421	ForceSendFields []string `json:"-"`
28422
28423	// NullFields is a list of field names (e.g. "Code") to include in API
28424	// requests with the JSON null value. By default, fields with empty
28425	// values are omitted from API requests. However, any field with an
28426	// empty value appearing in NullFields will be sent to the server as
28427	// null. It is an error if a field in this list has a non-empty value.
28428	// This may be used to include null fields in Patch requests.
28429	NullFields []string `json:"-"`
28430}
28431
28432func (s *TargetSslProxyListWarning) MarshalJSON() ([]byte, error) {
28433	type NoMethod TargetSslProxyListWarning
28434	raw := NoMethod(*s)
28435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28436}
28437
28438type TargetSslProxyListWarningData struct {
28439	// Key: [Output Only] A key that provides more detail on the warning
28440	// being returned. For example, for warnings where there are no results
28441	// in a list request for a particular zone, this key might be scope and
28442	// the key value might be the zone name. Other examples might be a key
28443	// indicating a deprecated resource and a suggested replacement, or a
28444	// warning about invalid network settings (for example, if an instance
28445	// attempts to perform IP forwarding but is not enabled for IP
28446	// forwarding).
28447	Key string `json:"key,omitempty"`
28448
28449	// Value: [Output Only] A warning data value corresponding to the key.
28450	Value string `json:"value,omitempty"`
28451
28452	// ForceSendFields is a list of field names (e.g. "Key") to
28453	// unconditionally include in API requests. By default, fields with
28454	// empty values are omitted from API requests. However, any non-pointer,
28455	// non-interface field appearing in ForceSendFields will be sent to the
28456	// server regardless of whether the field is empty or not. This may be
28457	// used to include empty fields in Patch requests.
28458	ForceSendFields []string `json:"-"`
28459
28460	// NullFields is a list of field names (e.g. "Key") to include in API
28461	// requests with the JSON null value. By default, fields with empty
28462	// values are omitted from API requests. However, any field with an
28463	// empty value appearing in NullFields will be sent to the server as
28464	// null. It is an error if a field in this list has a non-empty value.
28465	// This may be used to include null fields in Patch requests.
28466	NullFields []string `json:"-"`
28467}
28468
28469func (s *TargetSslProxyListWarningData) MarshalJSON() ([]byte, error) {
28470	type NoMethod TargetSslProxyListWarningData
28471	raw := NoMethod(*s)
28472	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28473}
28474
28475type TargetTcpProxiesSetBackendServiceRequest struct {
28476	// Service: The URL of the new BackendService resource for the
28477	// targetTcpProxy.
28478	Service string `json:"service,omitempty"`
28479
28480	// ForceSendFields is a list of field names (e.g. "Service") to
28481	// unconditionally include in API requests. By default, fields with
28482	// empty values are omitted from API requests. However, any non-pointer,
28483	// non-interface field appearing in ForceSendFields will be sent to the
28484	// server regardless of whether the field is empty or not. This may be
28485	// used to include empty fields in Patch requests.
28486	ForceSendFields []string `json:"-"`
28487
28488	// NullFields is a list of field names (e.g. "Service") to include in
28489	// API requests with the JSON null value. By default, fields with empty
28490	// values are omitted from API requests. However, any field with an
28491	// empty value appearing in NullFields will be sent to the server as
28492	// null. It is an error if a field in this list has a non-empty value.
28493	// This may be used to include null fields in Patch requests.
28494	NullFields []string `json:"-"`
28495}
28496
28497func (s *TargetTcpProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
28498	type NoMethod TargetTcpProxiesSetBackendServiceRequest
28499	raw := NoMethod(*s)
28500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28501}
28502
28503type TargetTcpProxiesSetProxyHeaderRequest struct {
28504	// ProxyHeader: The new type of proxy header to append before sending
28505	// data to the backend. NONE or PROXY_V1 are allowed.
28506	//
28507	// Possible values:
28508	//   "NONE"
28509	//   "PROXY_V1"
28510	ProxyHeader string `json:"proxyHeader,omitempty"`
28511
28512	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
28513	// unconditionally include in API requests. By default, fields with
28514	// empty values are omitted from API requests. However, any non-pointer,
28515	// non-interface field appearing in ForceSendFields will be sent to the
28516	// server regardless of whether the field is empty or not. This may be
28517	// used to include empty fields in Patch requests.
28518	ForceSendFields []string `json:"-"`
28519
28520	// NullFields is a list of field names (e.g. "ProxyHeader") to include
28521	// in API requests with the JSON null value. By default, fields with
28522	// empty values are omitted from API requests. However, any field with
28523	// an empty value appearing in NullFields will be sent to the server as
28524	// null. It is an error if a field in this list has a non-empty value.
28525	// This may be used to include null fields in Patch requests.
28526	NullFields []string `json:"-"`
28527}
28528
28529func (s *TargetTcpProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
28530	type NoMethod TargetTcpProxiesSetProxyHeaderRequest
28531	raw := NoMethod(*s)
28532	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28533}
28534
28535// TargetTcpProxy: A TargetTcpProxy resource. This resource defines a
28536// TCP proxy. (== resource_for beta.targetTcpProxies ==) (==
28537// resource_for v1.targetTcpProxies ==)
28538type TargetTcpProxy struct {
28539	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
28540	// format.
28541	CreationTimestamp string `json:"creationTimestamp,omitempty"`
28542
28543	// Description: An optional description of this resource. Provide this
28544	// property when you create the resource.
28545	Description string `json:"description,omitempty"`
28546
28547	// Id: [Output Only] The unique identifier for the resource. This
28548	// identifier is defined by the server.
28549	Id uint64 `json:"id,omitempty,string"`
28550
28551	// Kind: [Output Only] Type of the resource. Always
28552	// compute#targetTcpProxy for target TCP proxies.
28553	Kind string `json:"kind,omitempty"`
28554
28555	// Name: Name of the resource. Provided by the client when the resource
28556	// is created. The name must be 1-63 characters long, and comply with
28557	// RFC1035. Specifically, the name must be 1-63 characters long and
28558	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
28559	// the first character must be a lowercase letter, and all following
28560	// characters must be a dash, lowercase letter, or digit, except the
28561	// last character, which cannot be a dash.
28562	Name string `json:"name,omitempty"`
28563
28564	// ProxyHeader: Specifies the type of proxy header to append before
28565	// sending data to the backend, either NONE or PROXY_V1. The default is
28566	// NONE.
28567	//
28568	// Possible values:
28569	//   "NONE"
28570	//   "PROXY_V1"
28571	ProxyHeader string `json:"proxyHeader,omitempty"`
28572
28573	// SelfLink: [Output Only] Server-defined URL for the resource.
28574	SelfLink string `json:"selfLink,omitempty"`
28575
28576	// Service: URL to the BackendService resource.
28577	Service string `json:"service,omitempty"`
28578
28579	// ServerResponse contains the HTTP response code and headers from the
28580	// server.
28581	googleapi.ServerResponse `json:"-"`
28582
28583	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
28584	// to unconditionally include in API requests. By default, fields with
28585	// empty values are omitted from API requests. However, any non-pointer,
28586	// non-interface field appearing in ForceSendFields will be sent to the
28587	// server regardless of whether the field is empty or not. This may be
28588	// used to include empty fields in Patch requests.
28589	ForceSendFields []string `json:"-"`
28590
28591	// NullFields is a list of field names (e.g. "CreationTimestamp") to
28592	// include in API requests with the JSON null value. By default, fields
28593	// with empty values are omitted from API requests. However, any field
28594	// with an empty value appearing in NullFields will be sent to the
28595	// server as null. It is an error if a field in this list has a
28596	// non-empty value. This may be used to include null fields in Patch
28597	// requests.
28598	NullFields []string `json:"-"`
28599}
28600
28601func (s *TargetTcpProxy) MarshalJSON() ([]byte, error) {
28602	type NoMethod TargetTcpProxy
28603	raw := NoMethod(*s)
28604	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28605}
28606
28607// TargetTcpProxyList: Contains a list of TargetTcpProxy resources.
28608type TargetTcpProxyList struct {
28609	// Id: [Output Only] Unique identifier for the resource; defined by the
28610	// server.
28611	Id string `json:"id,omitempty"`
28612
28613	// Items: A list of TargetTcpProxy resources.
28614	Items []*TargetTcpProxy `json:"items,omitempty"`
28615
28616	// Kind: Type of resource.
28617	Kind string `json:"kind,omitempty"`
28618
28619	// NextPageToken: [Output Only] This token allows you to get the next
28620	// page of results for list requests. If the number of results is larger
28621	// than maxResults, use the nextPageToken as a value for the query
28622	// parameter pageToken in the next list request. Subsequent list
28623	// requests will have their own nextPageToken to continue paging through
28624	// the results.
28625	NextPageToken string `json:"nextPageToken,omitempty"`
28626
28627	// SelfLink: [Output Only] Server-defined URL for this resource.
28628	SelfLink string `json:"selfLink,omitempty"`
28629
28630	// Warning: [Output Only] Informational warning message.
28631	Warning *TargetTcpProxyListWarning `json:"warning,omitempty"`
28632
28633	// ServerResponse contains the HTTP response code and headers from the
28634	// server.
28635	googleapi.ServerResponse `json:"-"`
28636
28637	// ForceSendFields is a list of field names (e.g. "Id") to
28638	// unconditionally include in API requests. By default, fields with
28639	// empty values are omitted from API requests. However, any non-pointer,
28640	// non-interface field appearing in ForceSendFields will be sent to the
28641	// server regardless of whether the field is empty or not. This may be
28642	// used to include empty fields in Patch requests.
28643	ForceSendFields []string `json:"-"`
28644
28645	// NullFields is a list of field names (e.g. "Id") to include in API
28646	// requests with the JSON null value. By default, fields with empty
28647	// values are omitted from API requests. However, any field with an
28648	// empty value appearing in NullFields will be sent to the server as
28649	// null. It is an error if a field in this list has a non-empty value.
28650	// This may be used to include null fields in Patch requests.
28651	NullFields []string `json:"-"`
28652}
28653
28654func (s *TargetTcpProxyList) MarshalJSON() ([]byte, error) {
28655	type NoMethod TargetTcpProxyList
28656	raw := NoMethod(*s)
28657	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28658}
28659
28660// TargetTcpProxyListWarning: [Output Only] Informational warning
28661// message.
28662type TargetTcpProxyListWarning struct {
28663	// Code: [Output Only] A warning code, if applicable. For example,
28664	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28665	// the response.
28666	//
28667	// Possible values:
28668	//   "CLEANUP_FAILED"
28669	//   "DEPRECATED_RESOURCE_USED"
28670	//   "DEPRECATED_TYPE_USED"
28671	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28672	//   "EXPERIMENTAL_TYPE_USED"
28673	//   "EXTERNAL_API_WARNING"
28674	//   "FIELD_VALUE_OVERRIDEN"
28675	//   "INJECTED_KERNELS_DEPRECATED"
28676	//   "MISSING_TYPE_DEPENDENCY"
28677	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28678	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28679	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28680	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28681	//   "NEXT_HOP_NOT_RUNNING"
28682	//   "NOT_CRITICAL_ERROR"
28683	//   "NO_RESULTS_ON_PAGE"
28684	//   "REQUIRED_TOS_AGREEMENT"
28685	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28686	//   "RESOURCE_NOT_DELETED"
28687	//   "SCHEMA_VALIDATION_IGNORED"
28688	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28689	//   "UNDECLARED_PROPERTIES"
28690	//   "UNREACHABLE"
28691	Code string `json:"code,omitempty"`
28692
28693	// Data: [Output Only] Metadata about this warning in key: value format.
28694	// For example:
28695	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28696	Data []*TargetTcpProxyListWarningData `json:"data,omitempty"`
28697
28698	// Message: [Output Only] A human-readable description of the warning
28699	// code.
28700	Message string `json:"message,omitempty"`
28701
28702	// ForceSendFields is a list of field names (e.g. "Code") to
28703	// unconditionally include in API requests. By default, fields with
28704	// empty values are omitted from API requests. However, any non-pointer,
28705	// non-interface field appearing in ForceSendFields will be sent to the
28706	// server regardless of whether the field is empty or not. This may be
28707	// used to include empty fields in Patch requests.
28708	ForceSendFields []string `json:"-"`
28709
28710	// NullFields is a list of field names (e.g. "Code") to include in API
28711	// requests with the JSON null value. By default, fields with empty
28712	// values are omitted from API requests. However, any field with an
28713	// empty value appearing in NullFields will be sent to the server as
28714	// null. It is an error if a field in this list has a non-empty value.
28715	// This may be used to include null fields in Patch requests.
28716	NullFields []string `json:"-"`
28717}
28718
28719func (s *TargetTcpProxyListWarning) MarshalJSON() ([]byte, error) {
28720	type NoMethod TargetTcpProxyListWarning
28721	raw := NoMethod(*s)
28722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28723}
28724
28725type TargetTcpProxyListWarningData struct {
28726	// Key: [Output Only] A key that provides more detail on the warning
28727	// being returned. For example, for warnings where there are no results
28728	// in a list request for a particular zone, this key might be scope and
28729	// the key value might be the zone name. Other examples might be a key
28730	// indicating a deprecated resource and a suggested replacement, or a
28731	// warning about invalid network settings (for example, if an instance
28732	// attempts to perform IP forwarding but is not enabled for IP
28733	// forwarding).
28734	Key string `json:"key,omitempty"`
28735
28736	// Value: [Output Only] A warning data value corresponding to the key.
28737	Value string `json:"value,omitempty"`
28738
28739	// ForceSendFields is a list of field names (e.g. "Key") to
28740	// unconditionally include in API requests. By default, fields with
28741	// empty values are omitted from API requests. However, any non-pointer,
28742	// non-interface field appearing in ForceSendFields will be sent to the
28743	// server regardless of whether the field is empty or not. This may be
28744	// used to include empty fields in Patch requests.
28745	ForceSendFields []string `json:"-"`
28746
28747	// NullFields is a list of field names (e.g. "Key") to include in API
28748	// requests with the JSON null value. By default, fields with empty
28749	// values are omitted from API requests. However, any field with an
28750	// empty value appearing in NullFields will be sent to the server as
28751	// null. It is an error if a field in this list has a non-empty value.
28752	// This may be used to include null fields in Patch requests.
28753	NullFields []string `json:"-"`
28754}
28755
28756func (s *TargetTcpProxyListWarningData) MarshalJSON() ([]byte, error) {
28757	type NoMethod TargetTcpProxyListWarningData
28758	raw := NoMethod(*s)
28759	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28760}
28761
28762// TargetVpnGateway: Represents a Target VPN gateway resource. (==
28763// resource_for beta.targetVpnGateways ==) (== resource_for
28764// v1.targetVpnGateways ==)
28765type TargetVpnGateway struct {
28766	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
28767	// format.
28768	CreationTimestamp string `json:"creationTimestamp,omitempty"`
28769
28770	// Description: An optional description of this resource. Provide this
28771	// property when you create the resource.
28772	Description string `json:"description,omitempty"`
28773
28774	// ForwardingRules: [Output Only] A list of URLs to the ForwardingRule
28775	// resources. ForwardingRules are created using
28776	// compute.forwardingRules.insert and associated with a VPN gateway.
28777	ForwardingRules []string `json:"forwardingRules,omitempty"`
28778
28779	// Id: [Output Only] The unique identifier for the resource. This
28780	// identifier is defined by the server.
28781	Id uint64 `json:"id,omitempty,string"`
28782
28783	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
28784	// for target VPN gateways.
28785	Kind string `json:"kind,omitempty"`
28786
28787	// Name: Name of the resource. Provided by the client when the resource
28788	// is created. The name must be 1-63 characters long, and comply with
28789	// RFC1035. Specifically, the name must be 1-63 characters long and
28790	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
28791	// the first character must be a lowercase letter, and all following
28792	// characters must be a dash, lowercase letter, or digit, except the
28793	// last character, which cannot be a dash.
28794	Name string `json:"name,omitempty"`
28795
28796	// Network: URL of the network to which this VPN gateway is attached.
28797	// Provided by the client when the VPN gateway is created.
28798	Network string `json:"network,omitempty"`
28799
28800	// Region: [Output Only] URL of the region where the target VPN gateway
28801	// resides. You must specify this field as part of the HTTP request URL.
28802	// It is not settable as a field in the request body.
28803	Region string `json:"region,omitempty"`
28804
28805	// SelfLink: [Output Only] Server-defined URL for the resource.
28806	SelfLink string `json:"selfLink,omitempty"`
28807
28808	// Status: [Output Only] The status of the VPN gateway, which can be one
28809	// of the following: CREATING, READY, FAILED, or DELETING.
28810	//
28811	// Possible values:
28812	//   "CREATING"
28813	//   "DELETING"
28814	//   "FAILED"
28815	//   "READY"
28816	Status string `json:"status,omitempty"`
28817
28818	// Tunnels: [Output Only] A list of URLs to VpnTunnel resources.
28819	// VpnTunnels are created using the compute.vpntunnels.insert method and
28820	// associated with a VPN gateway.
28821	Tunnels []string `json:"tunnels,omitempty"`
28822
28823	// ServerResponse contains the HTTP response code and headers from the
28824	// server.
28825	googleapi.ServerResponse `json:"-"`
28826
28827	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
28828	// to unconditionally include in API requests. By default, fields with
28829	// empty values are omitted from API requests. However, any non-pointer,
28830	// non-interface field appearing in ForceSendFields will be sent to the
28831	// server regardless of whether the field is empty or not. This may be
28832	// used to include empty fields in Patch requests.
28833	ForceSendFields []string `json:"-"`
28834
28835	// NullFields is a list of field names (e.g. "CreationTimestamp") to
28836	// include in API requests with the JSON null value. By default, fields
28837	// with empty values are omitted from API requests. However, any field
28838	// with an empty value appearing in NullFields will be sent to the
28839	// server as null. It is an error if a field in this list has a
28840	// non-empty value. This may be used to include null fields in Patch
28841	// requests.
28842	NullFields []string `json:"-"`
28843}
28844
28845func (s *TargetVpnGateway) MarshalJSON() ([]byte, error) {
28846	type NoMethod TargetVpnGateway
28847	raw := NoMethod(*s)
28848	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28849}
28850
28851type TargetVpnGatewayAggregatedList struct {
28852	// Id: [Output Only] Unique identifier for the resource; defined by the
28853	// server.
28854	Id string `json:"id,omitempty"`
28855
28856	// Items: A list of TargetVpnGateway resources.
28857	Items map[string]TargetVpnGatewaysScopedList `json:"items,omitempty"`
28858
28859	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
28860	// for target VPN gateways.
28861	Kind string `json:"kind,omitempty"`
28862
28863	// NextPageToken: [Output Only] This token allows you to get the next
28864	// page of results for list requests. If the number of results is larger
28865	// than maxResults, use the nextPageToken as a value for the query
28866	// parameter pageToken in the next list request. Subsequent list
28867	// requests will have their own nextPageToken to continue paging through
28868	// the results.
28869	NextPageToken string `json:"nextPageToken,omitempty"`
28870
28871	// SelfLink: [Output Only] Server-defined URL for this resource.
28872	SelfLink string `json:"selfLink,omitempty"`
28873
28874	// Warning: [Output Only] Informational warning message.
28875	Warning *TargetVpnGatewayAggregatedListWarning `json:"warning,omitempty"`
28876
28877	// ServerResponse contains the HTTP response code and headers from the
28878	// server.
28879	googleapi.ServerResponse `json:"-"`
28880
28881	// ForceSendFields is a list of field names (e.g. "Id") to
28882	// unconditionally include in API requests. By default, fields with
28883	// empty values are omitted from API requests. However, any non-pointer,
28884	// non-interface field appearing in ForceSendFields will be sent to the
28885	// server regardless of whether the field is empty or not. This may be
28886	// used to include empty fields in Patch requests.
28887	ForceSendFields []string `json:"-"`
28888
28889	// NullFields is a list of field names (e.g. "Id") to include in API
28890	// requests with the JSON null value. By default, fields with empty
28891	// values are omitted from API requests. However, any field with an
28892	// empty value appearing in NullFields will be sent to the server as
28893	// null. It is an error if a field in this list has a non-empty value.
28894	// This may be used to include null fields in Patch requests.
28895	NullFields []string `json:"-"`
28896}
28897
28898func (s *TargetVpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
28899	type NoMethod TargetVpnGatewayAggregatedList
28900	raw := NoMethod(*s)
28901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28902}
28903
28904// TargetVpnGatewayAggregatedListWarning: [Output Only] Informational
28905// warning message.
28906type TargetVpnGatewayAggregatedListWarning struct {
28907	// Code: [Output Only] A warning code, if applicable. For example,
28908	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28909	// the response.
28910	//
28911	// Possible values:
28912	//   "CLEANUP_FAILED"
28913	//   "DEPRECATED_RESOURCE_USED"
28914	//   "DEPRECATED_TYPE_USED"
28915	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28916	//   "EXPERIMENTAL_TYPE_USED"
28917	//   "EXTERNAL_API_WARNING"
28918	//   "FIELD_VALUE_OVERRIDEN"
28919	//   "INJECTED_KERNELS_DEPRECATED"
28920	//   "MISSING_TYPE_DEPENDENCY"
28921	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28922	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28923	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28924	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28925	//   "NEXT_HOP_NOT_RUNNING"
28926	//   "NOT_CRITICAL_ERROR"
28927	//   "NO_RESULTS_ON_PAGE"
28928	//   "REQUIRED_TOS_AGREEMENT"
28929	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28930	//   "RESOURCE_NOT_DELETED"
28931	//   "SCHEMA_VALIDATION_IGNORED"
28932	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28933	//   "UNDECLARED_PROPERTIES"
28934	//   "UNREACHABLE"
28935	Code string `json:"code,omitempty"`
28936
28937	// Data: [Output Only] Metadata about this warning in key: value format.
28938	// For example:
28939	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28940	Data []*TargetVpnGatewayAggregatedListWarningData `json:"data,omitempty"`
28941
28942	// Message: [Output Only] A human-readable description of the warning
28943	// code.
28944	Message string `json:"message,omitempty"`
28945
28946	// ForceSendFields is a list of field names (e.g. "Code") to
28947	// unconditionally include in API requests. By default, fields with
28948	// empty values are omitted from API requests. However, any non-pointer,
28949	// non-interface field appearing in ForceSendFields will be sent to the
28950	// server regardless of whether the field is empty or not. This may be
28951	// used to include empty fields in Patch requests.
28952	ForceSendFields []string `json:"-"`
28953
28954	// NullFields is a list of field names (e.g. "Code") to include in API
28955	// requests with the JSON null value. By default, fields with empty
28956	// values are omitted from API requests. However, any field with an
28957	// empty value appearing in NullFields will be sent to the server as
28958	// null. It is an error if a field in this list has a non-empty value.
28959	// This may be used to include null fields in Patch requests.
28960	NullFields []string `json:"-"`
28961}
28962
28963func (s *TargetVpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
28964	type NoMethod TargetVpnGatewayAggregatedListWarning
28965	raw := NoMethod(*s)
28966	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28967}
28968
28969type TargetVpnGatewayAggregatedListWarningData struct {
28970	// Key: [Output Only] A key that provides more detail on the warning
28971	// being returned. For example, for warnings where there are no results
28972	// in a list request for a particular zone, this key might be scope and
28973	// the key value might be the zone name. Other examples might be a key
28974	// indicating a deprecated resource and a suggested replacement, or a
28975	// warning about invalid network settings (for example, if an instance
28976	// attempts to perform IP forwarding but is not enabled for IP
28977	// forwarding).
28978	Key string `json:"key,omitempty"`
28979
28980	// Value: [Output Only] A warning data value corresponding to the key.
28981	Value string `json:"value,omitempty"`
28982
28983	// ForceSendFields is a list of field names (e.g. "Key") to
28984	// unconditionally include in API requests. By default, fields with
28985	// empty values are omitted from API requests. However, any non-pointer,
28986	// non-interface field appearing in ForceSendFields will be sent to the
28987	// server regardless of whether the field is empty or not. This may be
28988	// used to include empty fields in Patch requests.
28989	ForceSendFields []string `json:"-"`
28990
28991	// NullFields is a list of field names (e.g. "Key") to include in API
28992	// requests with the JSON null value. By default, fields with empty
28993	// values are omitted from API requests. However, any field with an
28994	// empty value appearing in NullFields will be sent to the server as
28995	// null. It is an error if a field in this list has a non-empty value.
28996	// This may be used to include null fields in Patch requests.
28997	NullFields []string `json:"-"`
28998}
28999
29000func (s *TargetVpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
29001	type NoMethod TargetVpnGatewayAggregatedListWarningData
29002	raw := NoMethod(*s)
29003	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29004}
29005
29006// TargetVpnGatewayList: Contains a list of TargetVpnGateway resources.
29007type TargetVpnGatewayList struct {
29008	// Id: [Output Only] Unique identifier for the resource; defined by the
29009	// server.
29010	Id string `json:"id,omitempty"`
29011
29012	// Items: A list of TargetVpnGateway resources.
29013	Items []*TargetVpnGateway `json:"items,omitempty"`
29014
29015	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
29016	// for target VPN gateways.
29017	Kind string `json:"kind,omitempty"`
29018
29019	// NextPageToken: [Output Only] This token allows you to get the next
29020	// page of results for list requests. If the number of results is larger
29021	// than maxResults, use the nextPageToken as a value for the query
29022	// parameter pageToken in the next list request. Subsequent list
29023	// requests will have their own nextPageToken to continue paging through
29024	// the results.
29025	NextPageToken string `json:"nextPageToken,omitempty"`
29026
29027	// SelfLink: [Output Only] Server-defined URL for this resource.
29028	SelfLink string `json:"selfLink,omitempty"`
29029
29030	// Warning: [Output Only] Informational warning message.
29031	Warning *TargetVpnGatewayListWarning `json:"warning,omitempty"`
29032
29033	// ServerResponse contains the HTTP response code and headers from the
29034	// server.
29035	googleapi.ServerResponse `json:"-"`
29036
29037	// ForceSendFields is a list of field names (e.g. "Id") to
29038	// unconditionally include in API requests. By default, fields with
29039	// empty values are omitted from API requests. However, any non-pointer,
29040	// non-interface field appearing in ForceSendFields will be sent to the
29041	// server regardless of whether the field is empty or not. This may be
29042	// used to include empty fields in Patch requests.
29043	ForceSendFields []string `json:"-"`
29044
29045	// NullFields is a list of field names (e.g. "Id") to include in API
29046	// requests with the JSON null value. By default, fields with empty
29047	// values are omitted from API requests. However, any field with an
29048	// empty value appearing in NullFields will be sent to the server as
29049	// null. It is an error if a field in this list has a non-empty value.
29050	// This may be used to include null fields in Patch requests.
29051	NullFields []string `json:"-"`
29052}
29053
29054func (s *TargetVpnGatewayList) MarshalJSON() ([]byte, error) {
29055	type NoMethod TargetVpnGatewayList
29056	raw := NoMethod(*s)
29057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29058}
29059
29060// TargetVpnGatewayListWarning: [Output Only] Informational warning
29061// message.
29062type TargetVpnGatewayListWarning struct {
29063	// Code: [Output Only] A warning code, if applicable. For example,
29064	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29065	// the response.
29066	//
29067	// Possible values:
29068	//   "CLEANUP_FAILED"
29069	//   "DEPRECATED_RESOURCE_USED"
29070	//   "DEPRECATED_TYPE_USED"
29071	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29072	//   "EXPERIMENTAL_TYPE_USED"
29073	//   "EXTERNAL_API_WARNING"
29074	//   "FIELD_VALUE_OVERRIDEN"
29075	//   "INJECTED_KERNELS_DEPRECATED"
29076	//   "MISSING_TYPE_DEPENDENCY"
29077	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29078	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29079	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29080	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29081	//   "NEXT_HOP_NOT_RUNNING"
29082	//   "NOT_CRITICAL_ERROR"
29083	//   "NO_RESULTS_ON_PAGE"
29084	//   "REQUIRED_TOS_AGREEMENT"
29085	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29086	//   "RESOURCE_NOT_DELETED"
29087	//   "SCHEMA_VALIDATION_IGNORED"
29088	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29089	//   "UNDECLARED_PROPERTIES"
29090	//   "UNREACHABLE"
29091	Code string `json:"code,omitempty"`
29092
29093	// Data: [Output Only] Metadata about this warning in key: value format.
29094	// For example:
29095	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29096	Data []*TargetVpnGatewayListWarningData `json:"data,omitempty"`
29097
29098	// Message: [Output Only] A human-readable description of the warning
29099	// code.
29100	Message string `json:"message,omitempty"`
29101
29102	// ForceSendFields is a list of field names (e.g. "Code") to
29103	// unconditionally include in API requests. By default, fields with
29104	// empty values are omitted from API requests. However, any non-pointer,
29105	// non-interface field appearing in ForceSendFields will be sent to the
29106	// server regardless of whether the field is empty or not. This may be
29107	// used to include empty fields in Patch requests.
29108	ForceSendFields []string `json:"-"`
29109
29110	// NullFields is a list of field names (e.g. "Code") to include in API
29111	// requests with the JSON null value. By default, fields with empty
29112	// values are omitted from API requests. However, any field with an
29113	// empty value appearing in NullFields will be sent to the server as
29114	// null. It is an error if a field in this list has a non-empty value.
29115	// This may be used to include null fields in Patch requests.
29116	NullFields []string `json:"-"`
29117}
29118
29119func (s *TargetVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
29120	type NoMethod TargetVpnGatewayListWarning
29121	raw := NoMethod(*s)
29122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29123}
29124
29125type TargetVpnGatewayListWarningData struct {
29126	// Key: [Output Only] A key that provides more detail on the warning
29127	// being returned. For example, for warnings where there are no results
29128	// in a list request for a particular zone, this key might be scope and
29129	// the key value might be the zone name. Other examples might be a key
29130	// indicating a deprecated resource and a suggested replacement, or a
29131	// warning about invalid network settings (for example, if an instance
29132	// attempts to perform IP forwarding but is not enabled for IP
29133	// forwarding).
29134	Key string `json:"key,omitempty"`
29135
29136	// Value: [Output Only] A warning data value corresponding to the key.
29137	Value string `json:"value,omitempty"`
29138
29139	// ForceSendFields is a list of field names (e.g. "Key") to
29140	// unconditionally include in API requests. By default, fields with
29141	// empty values are omitted from API requests. However, any non-pointer,
29142	// non-interface field appearing in ForceSendFields will be sent to the
29143	// server regardless of whether the field is empty or not. This may be
29144	// used to include empty fields in Patch requests.
29145	ForceSendFields []string `json:"-"`
29146
29147	// NullFields is a list of field names (e.g. "Key") to include in API
29148	// requests with the JSON null value. By default, fields with empty
29149	// values are omitted from API requests. However, any field with an
29150	// empty value appearing in NullFields will be sent to the server as
29151	// null. It is an error if a field in this list has a non-empty value.
29152	// This may be used to include null fields in Patch requests.
29153	NullFields []string `json:"-"`
29154}
29155
29156func (s *TargetVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
29157	type NoMethod TargetVpnGatewayListWarningData
29158	raw := NoMethod(*s)
29159	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29160}
29161
29162type TargetVpnGatewaysScopedList struct {
29163	// TargetVpnGateways: [Output Only] A list of target VPN gateways
29164	// contained in this scope.
29165	TargetVpnGateways []*TargetVpnGateway `json:"targetVpnGateways,omitempty"`
29166
29167	// Warning: [Output Only] Informational warning which replaces the list
29168	// of addresses when the list is empty.
29169	Warning *TargetVpnGatewaysScopedListWarning `json:"warning,omitempty"`
29170
29171	// ForceSendFields is a list of field names (e.g. "TargetVpnGateways")
29172	// to unconditionally include in API requests. By default, fields with
29173	// empty values are omitted from API requests. However, any non-pointer,
29174	// non-interface field appearing in ForceSendFields will be sent to the
29175	// server regardless of whether the field is empty or not. This may be
29176	// used to include empty fields in Patch requests.
29177	ForceSendFields []string `json:"-"`
29178
29179	// NullFields is a list of field names (e.g. "TargetVpnGateways") to
29180	// include in API requests with the JSON null value. By default, fields
29181	// with empty values are omitted from API requests. However, any field
29182	// with an empty value appearing in NullFields will be sent to the
29183	// server as null. It is an error if a field in this list has a
29184	// non-empty value. This may be used to include null fields in Patch
29185	// requests.
29186	NullFields []string `json:"-"`
29187}
29188
29189func (s *TargetVpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
29190	type NoMethod TargetVpnGatewaysScopedList
29191	raw := NoMethod(*s)
29192	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29193}
29194
29195// TargetVpnGatewaysScopedListWarning: [Output Only] Informational
29196// warning which replaces the list of addresses when the list is empty.
29197type TargetVpnGatewaysScopedListWarning struct {
29198	// Code: [Output Only] A warning code, if applicable. For example,
29199	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29200	// the response.
29201	//
29202	// Possible values:
29203	//   "CLEANUP_FAILED"
29204	//   "DEPRECATED_RESOURCE_USED"
29205	//   "DEPRECATED_TYPE_USED"
29206	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29207	//   "EXPERIMENTAL_TYPE_USED"
29208	//   "EXTERNAL_API_WARNING"
29209	//   "FIELD_VALUE_OVERRIDEN"
29210	//   "INJECTED_KERNELS_DEPRECATED"
29211	//   "MISSING_TYPE_DEPENDENCY"
29212	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29213	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29214	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29215	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29216	//   "NEXT_HOP_NOT_RUNNING"
29217	//   "NOT_CRITICAL_ERROR"
29218	//   "NO_RESULTS_ON_PAGE"
29219	//   "REQUIRED_TOS_AGREEMENT"
29220	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29221	//   "RESOURCE_NOT_DELETED"
29222	//   "SCHEMA_VALIDATION_IGNORED"
29223	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29224	//   "UNDECLARED_PROPERTIES"
29225	//   "UNREACHABLE"
29226	Code string `json:"code,omitempty"`
29227
29228	// Data: [Output Only] Metadata about this warning in key: value format.
29229	// For example:
29230	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29231	Data []*TargetVpnGatewaysScopedListWarningData `json:"data,omitempty"`
29232
29233	// Message: [Output Only] A human-readable description of the warning
29234	// code.
29235	Message string `json:"message,omitempty"`
29236
29237	// ForceSendFields is a list of field names (e.g. "Code") to
29238	// unconditionally include in API requests. By default, fields with
29239	// empty values are omitted from API requests. However, any non-pointer,
29240	// non-interface field appearing in ForceSendFields will be sent to the
29241	// server regardless of whether the field is empty or not. This may be
29242	// used to include empty fields in Patch requests.
29243	ForceSendFields []string `json:"-"`
29244
29245	// NullFields is a list of field names (e.g. "Code") to include in API
29246	// requests with the JSON null value. By default, fields with empty
29247	// values are omitted from API requests. However, any field with an
29248	// empty value appearing in NullFields will be sent to the server as
29249	// null. It is an error if a field in this list has a non-empty value.
29250	// This may be used to include null fields in Patch requests.
29251	NullFields []string `json:"-"`
29252}
29253
29254func (s *TargetVpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
29255	type NoMethod TargetVpnGatewaysScopedListWarning
29256	raw := NoMethod(*s)
29257	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29258}
29259
29260type TargetVpnGatewaysScopedListWarningData struct {
29261	// Key: [Output Only] A key that provides more detail on the warning
29262	// being returned. For example, for warnings where there are no results
29263	// in a list request for a particular zone, this key might be scope and
29264	// the key value might be the zone name. Other examples might be a key
29265	// indicating a deprecated resource and a suggested replacement, or a
29266	// warning about invalid network settings (for example, if an instance
29267	// attempts to perform IP forwarding but is not enabled for IP
29268	// forwarding).
29269	Key string `json:"key,omitempty"`
29270
29271	// Value: [Output Only] A warning data value corresponding to the key.
29272	Value string `json:"value,omitempty"`
29273
29274	// ForceSendFields is a list of field names (e.g. "Key") to
29275	// unconditionally include in API requests. By default, fields with
29276	// empty values are omitted from API requests. However, any non-pointer,
29277	// non-interface field appearing in ForceSendFields will be sent to the
29278	// server regardless of whether the field is empty or not. This may be
29279	// used to include empty fields in Patch requests.
29280	ForceSendFields []string `json:"-"`
29281
29282	// NullFields is a list of field names (e.g. "Key") to include in API
29283	// requests with the JSON null value. By default, fields with empty
29284	// values are omitted from API requests. However, any field with an
29285	// empty value appearing in NullFields will be sent to the server as
29286	// null. It is an error if a field in this list has a non-empty value.
29287	// This may be used to include null fields in Patch requests.
29288	NullFields []string `json:"-"`
29289}
29290
29291func (s *TargetVpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
29292	type NoMethod TargetVpnGatewaysScopedListWarningData
29293	raw := NoMethod(*s)
29294	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29295}
29296
29297type TestFailure struct {
29298	ActualService string `json:"actualService,omitempty"`
29299
29300	ExpectedService string `json:"expectedService,omitempty"`
29301
29302	Host string `json:"host,omitempty"`
29303
29304	Path string `json:"path,omitempty"`
29305
29306	// ForceSendFields is a list of field names (e.g. "ActualService") to
29307	// unconditionally include in API requests. By default, fields with
29308	// empty values are omitted from API requests. However, any non-pointer,
29309	// non-interface field appearing in ForceSendFields will be sent to the
29310	// server regardless of whether the field is empty or not. This may be
29311	// used to include empty fields in Patch requests.
29312	ForceSendFields []string `json:"-"`
29313
29314	// NullFields is a list of field names (e.g. "ActualService") to include
29315	// in API requests with the JSON null value. By default, fields with
29316	// empty values are omitted from API requests. However, any field with
29317	// an empty value appearing in NullFields will be sent to the server as
29318	// null. It is an error if a field in this list has a non-empty value.
29319	// This may be used to include null fields in Patch requests.
29320	NullFields []string `json:"-"`
29321}
29322
29323func (s *TestFailure) MarshalJSON() ([]byte, error) {
29324	type NoMethod TestFailure
29325	raw := NoMethod(*s)
29326	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29327}
29328
29329type TestPermissionsRequest struct {
29330	// Permissions: The set of permissions to check for the 'resource'.
29331	// Permissions with wildcards (such as '*' or 'storage.*') are not
29332	// allowed.
29333	Permissions []string `json:"permissions,omitempty"`
29334
29335	// ForceSendFields is a list of field names (e.g. "Permissions") to
29336	// unconditionally include in API requests. By default, fields with
29337	// empty values are omitted from API requests. However, any non-pointer,
29338	// non-interface field appearing in ForceSendFields will be sent to the
29339	// server regardless of whether the field is empty or not. This may be
29340	// used to include empty fields in Patch requests.
29341	ForceSendFields []string `json:"-"`
29342
29343	// NullFields is a list of field names (e.g. "Permissions") to include
29344	// in API requests with the JSON null value. By default, fields with
29345	// empty values are omitted from API requests. However, any field with
29346	// an empty value appearing in NullFields will be sent to the server as
29347	// null. It is an error if a field in this list has a non-empty value.
29348	// This may be used to include null fields in Patch requests.
29349	NullFields []string `json:"-"`
29350}
29351
29352func (s *TestPermissionsRequest) MarshalJSON() ([]byte, error) {
29353	type NoMethod TestPermissionsRequest
29354	raw := NoMethod(*s)
29355	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29356}
29357
29358type TestPermissionsResponse struct {
29359	// Permissions: A subset of `TestPermissionsRequest.permissions` that
29360	// the caller is allowed.
29361	Permissions []string `json:"permissions,omitempty"`
29362
29363	// ServerResponse contains the HTTP response code and headers from the
29364	// server.
29365	googleapi.ServerResponse `json:"-"`
29366
29367	// ForceSendFields is a list of field names (e.g. "Permissions") to
29368	// unconditionally include in API requests. By default, fields with
29369	// empty values are omitted from API requests. However, any non-pointer,
29370	// non-interface field appearing in ForceSendFields will be sent to the
29371	// server regardless of whether the field is empty or not. This may be
29372	// used to include empty fields in Patch requests.
29373	ForceSendFields []string `json:"-"`
29374
29375	// NullFields is a list of field names (e.g. "Permissions") to include
29376	// in API requests with the JSON null value. By default, fields with
29377	// empty values are omitted from API requests. However, any field with
29378	// an empty value appearing in NullFields will be sent to the server as
29379	// null. It is an error if a field in this list has a non-empty value.
29380	// This may be used to include null fields in Patch requests.
29381	NullFields []string `json:"-"`
29382}
29383
29384func (s *TestPermissionsResponse) MarshalJSON() ([]byte, error) {
29385	type NoMethod TestPermissionsResponse
29386	raw := NoMethod(*s)
29387	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29388}
29389
29390// UrlMap: A UrlMap resource. This resource defines the mapping from URL
29391// to the BackendService resource, based on the "longest-match" of the
29392// URL's host and path.
29393type UrlMap struct {
29394	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
29395	// format.
29396	CreationTimestamp string `json:"creationTimestamp,omitempty"`
29397
29398	// DefaultService: The full or partial URL of the defaultService
29399	// resource to which traffic is directed if none of the hostRules match.
29400	// If defaultRouteAction is additionally specified, advanced routing
29401	// actions like URL Rewrites, etc. take effect prior to sending the
29402	// request to the backend. However, if defaultService is specified,
29403	// defaultRouteAction cannot contain any weightedBackendServices.
29404	// Conversely, if routeAction specifies any weightedBackendServices,
29405	// service must not be specified.
29406	// Only one of defaultService, defaultUrlRedirect  or
29407	// defaultRouteAction.weightedBackendService must be set.
29408	DefaultService string `json:"defaultService,omitempty"`
29409
29410	// Description: An optional description of this resource. Provide this
29411	// property when you create the resource.
29412	Description string `json:"description,omitempty"`
29413
29414	// Fingerprint: Fingerprint of this resource. A hash of the contents
29415	// stored in this object. This field is used in optimistic locking. This
29416	// field will be ignored when inserting a UrlMap. An up-to-date
29417	// fingerprint must be provided in order to update the UrlMap, otherwise
29418	// the request will fail with error 412 conditionNotMet.
29419	//
29420	// To see the latest fingerprint, make a get() request to retrieve a
29421	// UrlMap.
29422	Fingerprint string `json:"fingerprint,omitempty"`
29423
29424	// HostRules: The list of HostRules to use against the URL.
29425	HostRules []*HostRule `json:"hostRules,omitempty"`
29426
29427	// Id: [Output Only] The unique identifier for the resource. This
29428	// identifier is defined by the server.
29429	Id uint64 `json:"id,omitempty,string"`
29430
29431	// Kind: [Output Only] Type of the resource. Always compute#urlMaps for
29432	// url maps.
29433	Kind string `json:"kind,omitempty"`
29434
29435	// Name: Name of the resource. Provided by the client when the resource
29436	// is created. The name must be 1-63 characters long, and comply with
29437	// RFC1035. Specifically, the name must be 1-63 characters long and
29438	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
29439	// the first character must be a lowercase letter, and all following
29440	// characters must be a dash, lowercase letter, or digit, except the
29441	// last character, which cannot be a dash.
29442	Name string `json:"name,omitempty"`
29443
29444	// PathMatchers: The list of named PathMatchers to use against the URL.
29445	PathMatchers []*PathMatcher `json:"pathMatchers,omitempty"`
29446
29447	// SelfLink: [Output Only] Server-defined URL for the resource.
29448	SelfLink string `json:"selfLink,omitempty"`
29449
29450	// Tests: The list of expected URL mapping tests. Request to update this
29451	// UrlMap will succeed only if all of the test cases pass. You can
29452	// specify a maximum of 100 tests per UrlMap.
29453	Tests []*UrlMapTest `json:"tests,omitempty"`
29454
29455	// ServerResponse contains the HTTP response code and headers from the
29456	// server.
29457	googleapi.ServerResponse `json:"-"`
29458
29459	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
29460	// to unconditionally include in API requests. By default, fields with
29461	// empty values are omitted from API requests. However, any non-pointer,
29462	// non-interface field appearing in ForceSendFields will be sent to the
29463	// server regardless of whether the field is empty or not. This may be
29464	// used to include empty fields in Patch requests.
29465	ForceSendFields []string `json:"-"`
29466
29467	// NullFields is a list of field names (e.g. "CreationTimestamp") to
29468	// include in API requests with the JSON null value. By default, fields
29469	// with empty values are omitted from API requests. However, any field
29470	// with an empty value appearing in NullFields will be sent to the
29471	// server as null. It is an error if a field in this list has a
29472	// non-empty value. This may be used to include null fields in Patch
29473	// requests.
29474	NullFields []string `json:"-"`
29475}
29476
29477func (s *UrlMap) MarshalJSON() ([]byte, error) {
29478	type NoMethod UrlMap
29479	raw := NoMethod(*s)
29480	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29481}
29482
29483// UrlMapList: Contains a list of UrlMap resources.
29484type UrlMapList struct {
29485	// Id: [Output Only] Unique identifier for the resource; defined by the
29486	// server.
29487	Id string `json:"id,omitempty"`
29488
29489	// Items: A list of UrlMap resources.
29490	Items []*UrlMap `json:"items,omitempty"`
29491
29492	// Kind: Type of resource.
29493	Kind string `json:"kind,omitempty"`
29494
29495	// NextPageToken: [Output Only] This token allows you to get the next
29496	// page of results for list requests. If the number of results is larger
29497	// than maxResults, use the nextPageToken as a value for the query
29498	// parameter pageToken in the next list request. Subsequent list
29499	// requests will have their own nextPageToken to continue paging through
29500	// the results.
29501	NextPageToken string `json:"nextPageToken,omitempty"`
29502
29503	// SelfLink: [Output Only] Server-defined URL for this resource.
29504	SelfLink string `json:"selfLink,omitempty"`
29505
29506	// Warning: [Output Only] Informational warning message.
29507	Warning *UrlMapListWarning `json:"warning,omitempty"`
29508
29509	// ServerResponse contains the HTTP response code and headers from the
29510	// server.
29511	googleapi.ServerResponse `json:"-"`
29512
29513	// ForceSendFields is a list of field names (e.g. "Id") to
29514	// unconditionally include in API requests. By default, fields with
29515	// empty values are omitted from API requests. However, any non-pointer,
29516	// non-interface field appearing in ForceSendFields will be sent to the
29517	// server regardless of whether the field is empty or not. This may be
29518	// used to include empty fields in Patch requests.
29519	ForceSendFields []string `json:"-"`
29520
29521	// NullFields is a list of field names (e.g. "Id") to include in API
29522	// requests with the JSON null value. By default, fields with empty
29523	// values are omitted from API requests. However, any field with an
29524	// empty value appearing in NullFields will be sent to the server as
29525	// null. It is an error if a field in this list has a non-empty value.
29526	// This may be used to include null fields in Patch requests.
29527	NullFields []string `json:"-"`
29528}
29529
29530func (s *UrlMapList) MarshalJSON() ([]byte, error) {
29531	type NoMethod UrlMapList
29532	raw := NoMethod(*s)
29533	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29534}
29535
29536// UrlMapListWarning: [Output Only] Informational warning message.
29537type UrlMapListWarning struct {
29538	// Code: [Output Only] A warning code, if applicable. For example,
29539	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29540	// the response.
29541	//
29542	// Possible values:
29543	//   "CLEANUP_FAILED"
29544	//   "DEPRECATED_RESOURCE_USED"
29545	//   "DEPRECATED_TYPE_USED"
29546	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29547	//   "EXPERIMENTAL_TYPE_USED"
29548	//   "EXTERNAL_API_WARNING"
29549	//   "FIELD_VALUE_OVERRIDEN"
29550	//   "INJECTED_KERNELS_DEPRECATED"
29551	//   "MISSING_TYPE_DEPENDENCY"
29552	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29553	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29554	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29555	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29556	//   "NEXT_HOP_NOT_RUNNING"
29557	//   "NOT_CRITICAL_ERROR"
29558	//   "NO_RESULTS_ON_PAGE"
29559	//   "REQUIRED_TOS_AGREEMENT"
29560	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29561	//   "RESOURCE_NOT_DELETED"
29562	//   "SCHEMA_VALIDATION_IGNORED"
29563	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29564	//   "UNDECLARED_PROPERTIES"
29565	//   "UNREACHABLE"
29566	Code string `json:"code,omitempty"`
29567
29568	// Data: [Output Only] Metadata about this warning in key: value format.
29569	// For example:
29570	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29571	Data []*UrlMapListWarningData `json:"data,omitempty"`
29572
29573	// Message: [Output Only] A human-readable description of the warning
29574	// code.
29575	Message string `json:"message,omitempty"`
29576
29577	// ForceSendFields is a list of field names (e.g. "Code") to
29578	// unconditionally include in API requests. By default, fields with
29579	// empty values are omitted from API requests. However, any non-pointer,
29580	// non-interface field appearing in ForceSendFields will be sent to the
29581	// server regardless of whether the field is empty or not. This may be
29582	// used to include empty fields in Patch requests.
29583	ForceSendFields []string `json:"-"`
29584
29585	// NullFields is a list of field names (e.g. "Code") to include in API
29586	// requests with the JSON null value. By default, fields with empty
29587	// values are omitted from API requests. However, any field with an
29588	// empty value appearing in NullFields will be sent to the server as
29589	// null. It is an error if a field in this list has a non-empty value.
29590	// This may be used to include null fields in Patch requests.
29591	NullFields []string `json:"-"`
29592}
29593
29594func (s *UrlMapListWarning) MarshalJSON() ([]byte, error) {
29595	type NoMethod UrlMapListWarning
29596	raw := NoMethod(*s)
29597	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29598}
29599
29600type UrlMapListWarningData struct {
29601	// Key: [Output Only] A key that provides more detail on the warning
29602	// being returned. For example, for warnings where there are no results
29603	// in a list request for a particular zone, this key might be scope and
29604	// the key value might be the zone name. Other examples might be a key
29605	// indicating a deprecated resource and a suggested replacement, or a
29606	// warning about invalid network settings (for example, if an instance
29607	// attempts to perform IP forwarding but is not enabled for IP
29608	// forwarding).
29609	Key string `json:"key,omitempty"`
29610
29611	// Value: [Output Only] A warning data value corresponding to the key.
29612	Value string `json:"value,omitempty"`
29613
29614	// ForceSendFields is a list of field names (e.g. "Key") to
29615	// unconditionally include in API requests. By default, fields with
29616	// empty values are omitted from API requests. However, any non-pointer,
29617	// non-interface field appearing in ForceSendFields will be sent to the
29618	// server regardless of whether the field is empty or not. This may be
29619	// used to include empty fields in Patch requests.
29620	ForceSendFields []string `json:"-"`
29621
29622	// NullFields is a list of field names (e.g. "Key") to include in API
29623	// requests with the JSON null value. By default, fields with empty
29624	// values are omitted from API requests. However, any field with an
29625	// empty value appearing in NullFields will be sent to the server as
29626	// null. It is an error if a field in this list has a non-empty value.
29627	// This may be used to include null fields in Patch requests.
29628	NullFields []string `json:"-"`
29629}
29630
29631func (s *UrlMapListWarningData) MarshalJSON() ([]byte, error) {
29632	type NoMethod UrlMapListWarningData
29633	raw := NoMethod(*s)
29634	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29635}
29636
29637type UrlMapReference struct {
29638	UrlMap string `json:"urlMap,omitempty"`
29639
29640	// ForceSendFields is a list of field names (e.g. "UrlMap") to
29641	// unconditionally include in API requests. By default, fields with
29642	// empty values are omitted from API requests. However, any non-pointer,
29643	// non-interface field appearing in ForceSendFields will be sent to the
29644	// server regardless of whether the field is empty or not. This may be
29645	// used to include empty fields in Patch requests.
29646	ForceSendFields []string `json:"-"`
29647
29648	// NullFields is a list of field names (e.g. "UrlMap") to include in API
29649	// requests with the JSON null value. By default, fields with empty
29650	// values are omitted from API requests. However, any field with an
29651	// empty value appearing in NullFields will be sent to the server as
29652	// null. It is an error if a field in this list has a non-empty value.
29653	// This may be used to include null fields in Patch requests.
29654	NullFields []string `json:"-"`
29655}
29656
29657func (s *UrlMapReference) MarshalJSON() ([]byte, error) {
29658	type NoMethod UrlMapReference
29659	raw := NoMethod(*s)
29660	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29661}
29662
29663// UrlMapTest: Message for the expected URL mappings.
29664type UrlMapTest struct {
29665	// Description: Description of this test case.
29666	Description string `json:"description,omitempty"`
29667
29668	// Host: Host portion of the URL.
29669	Host string `json:"host,omitempty"`
29670
29671	// Path: Path portion of the URL.
29672	Path string `json:"path,omitempty"`
29673
29674	// Service: Expected BackendService resource the given URL should be
29675	// mapped to.
29676	Service string `json:"service,omitempty"`
29677
29678	// ForceSendFields is a list of field names (e.g. "Description") to
29679	// unconditionally include in API requests. By default, fields with
29680	// empty values are omitted from API requests. However, any non-pointer,
29681	// non-interface field appearing in ForceSendFields will be sent to the
29682	// server regardless of whether the field is empty or not. This may be
29683	// used to include empty fields in Patch requests.
29684	ForceSendFields []string `json:"-"`
29685
29686	// NullFields is a list of field names (e.g. "Description") to include
29687	// in API requests with the JSON null value. By default, fields with
29688	// empty values are omitted from API requests. However, any field with
29689	// an empty value appearing in NullFields will be sent to the server as
29690	// null. It is an error if a field in this list has a non-empty value.
29691	// This may be used to include null fields in Patch requests.
29692	NullFields []string `json:"-"`
29693}
29694
29695func (s *UrlMapTest) MarshalJSON() ([]byte, error) {
29696	type NoMethod UrlMapTest
29697	raw := NoMethod(*s)
29698	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29699}
29700
29701// UrlMapValidationResult: Message representing the validation result
29702// for a UrlMap.
29703type UrlMapValidationResult struct {
29704	LoadErrors []string `json:"loadErrors,omitempty"`
29705
29706	// LoadSucceeded: Whether the given UrlMap can be successfully loaded.
29707	// If false, 'loadErrors' indicates the reasons.
29708	LoadSucceeded bool `json:"loadSucceeded,omitempty"`
29709
29710	TestFailures []*TestFailure `json:"testFailures,omitempty"`
29711
29712	// TestPassed: If successfully loaded, this field indicates whether the
29713	// test passed. If false, 'testFailures's indicate the reason of
29714	// failure.
29715	TestPassed bool `json:"testPassed,omitempty"`
29716
29717	// ForceSendFields is a list of field names (e.g. "LoadErrors") to
29718	// unconditionally include in API requests. By default, fields with
29719	// empty values are omitted from API requests. However, any non-pointer,
29720	// non-interface field appearing in ForceSendFields will be sent to the
29721	// server regardless of whether the field is empty or not. This may be
29722	// used to include empty fields in Patch requests.
29723	ForceSendFields []string `json:"-"`
29724
29725	// NullFields is a list of field names (e.g. "LoadErrors") to include in
29726	// API requests with the JSON null value. By default, fields with empty
29727	// values are omitted from API requests. However, any field with an
29728	// empty value appearing in NullFields will be sent to the server as
29729	// null. It is an error if a field in this list has a non-empty value.
29730	// This may be used to include null fields in Patch requests.
29731	NullFields []string `json:"-"`
29732}
29733
29734func (s *UrlMapValidationResult) MarshalJSON() ([]byte, error) {
29735	type NoMethod UrlMapValidationResult
29736	raw := NoMethod(*s)
29737	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29738}
29739
29740type UrlMapsValidateRequest struct {
29741	// Resource: Content of the UrlMap to be validated.
29742	Resource *UrlMap `json:"resource,omitempty"`
29743
29744	// ForceSendFields is a list of field names (e.g. "Resource") to
29745	// unconditionally include in API requests. By default, fields with
29746	// empty values are omitted from API requests. However, any non-pointer,
29747	// non-interface field appearing in ForceSendFields will be sent to the
29748	// server regardless of whether the field is empty or not. This may be
29749	// used to include empty fields in Patch requests.
29750	ForceSendFields []string `json:"-"`
29751
29752	// NullFields is a list of field names (e.g. "Resource") to include in
29753	// API requests with the JSON null value. By default, fields with empty
29754	// values are omitted from API requests. However, any field with an
29755	// empty value appearing in NullFields will be sent to the server as
29756	// null. It is an error if a field in this list has a non-empty value.
29757	// This may be used to include null fields in Patch requests.
29758	NullFields []string `json:"-"`
29759}
29760
29761func (s *UrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
29762	type NoMethod UrlMapsValidateRequest
29763	raw := NoMethod(*s)
29764	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29765}
29766
29767type UrlMapsValidateResponse struct {
29768	Result *UrlMapValidationResult `json:"result,omitempty"`
29769
29770	// ServerResponse contains the HTTP response code and headers from the
29771	// server.
29772	googleapi.ServerResponse `json:"-"`
29773
29774	// ForceSendFields is a list of field names (e.g. "Result") to
29775	// unconditionally include in API requests. By default, fields with
29776	// empty values are omitted from API requests. However, any non-pointer,
29777	// non-interface field appearing in ForceSendFields will be sent to the
29778	// server regardless of whether the field is empty or not. This may be
29779	// used to include empty fields in Patch requests.
29780	ForceSendFields []string `json:"-"`
29781
29782	// NullFields is a list of field names (e.g. "Result") to include in API
29783	// requests with the JSON null value. By default, fields with empty
29784	// values are omitted from API requests. However, any field with an
29785	// empty value appearing in NullFields will be sent to the server as
29786	// null. It is an error if a field in this list has a non-empty value.
29787	// This may be used to include null fields in Patch requests.
29788	NullFields []string `json:"-"`
29789}
29790
29791func (s *UrlMapsValidateResponse) MarshalJSON() ([]byte, error) {
29792	type NoMethod UrlMapsValidateResponse
29793	raw := NoMethod(*s)
29794	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29795}
29796
29797// UsableSubnetwork: Subnetwork which the current user has
29798// compute.subnetworks.use permission on.
29799type UsableSubnetwork struct {
29800	// IpCidrRange: The range of internal addresses that are owned by this
29801	// subnetwork.
29802	IpCidrRange string `json:"ipCidrRange,omitempty"`
29803
29804	// Network: Network URL.
29805	Network string `json:"network,omitempty"`
29806
29807	// SecondaryIpRanges: Secondary IP ranges.
29808	SecondaryIpRanges []*UsableSubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
29809
29810	// Subnetwork: Subnetwork URL.
29811	Subnetwork string `json:"subnetwork,omitempty"`
29812
29813	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
29814	// unconditionally include in API requests. By default, fields with
29815	// empty values are omitted from API requests. However, any non-pointer,
29816	// non-interface field appearing in ForceSendFields will be sent to the
29817	// server regardless of whether the field is empty or not. This may be
29818	// used to include empty fields in Patch requests.
29819	ForceSendFields []string `json:"-"`
29820
29821	// NullFields is a list of field names (e.g. "IpCidrRange") to include
29822	// in API requests with the JSON null value. By default, fields with
29823	// empty values are omitted from API requests. However, any field with
29824	// an empty value appearing in NullFields will be sent to the server as
29825	// null. It is an error if a field in this list has a non-empty value.
29826	// This may be used to include null fields in Patch requests.
29827	NullFields []string `json:"-"`
29828}
29829
29830func (s *UsableSubnetwork) MarshalJSON() ([]byte, error) {
29831	type NoMethod UsableSubnetwork
29832	raw := NoMethod(*s)
29833	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29834}
29835
29836// UsableSubnetworkSecondaryRange: Secondary IP range of a usable
29837// subnetwork.
29838type UsableSubnetworkSecondaryRange struct {
29839	// IpCidrRange: The range of IP addresses belonging to this subnetwork
29840	// secondary range.
29841	IpCidrRange string `json:"ipCidrRange,omitempty"`
29842
29843	// RangeName: The name associated with this subnetwork secondary range,
29844	// used when adding an alias IP range to a VM instance. The name must be
29845	// 1-63 characters long, and comply with RFC1035. The name must be
29846	// unique within the subnetwork.
29847	RangeName string `json:"rangeName,omitempty"`
29848
29849	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
29850	// unconditionally include in API requests. By default, fields with
29851	// empty values are omitted from API requests. However, any non-pointer,
29852	// non-interface field appearing in ForceSendFields will be sent to the
29853	// server regardless of whether the field is empty or not. This may be
29854	// used to include empty fields in Patch requests.
29855	ForceSendFields []string `json:"-"`
29856
29857	// NullFields is a list of field names (e.g. "IpCidrRange") to include
29858	// in API requests with the JSON null value. By default, fields with
29859	// empty values are omitted from API requests. However, any field with
29860	// an empty value appearing in NullFields will be sent to the server as
29861	// null. It is an error if a field in this list has a non-empty value.
29862	// This may be used to include null fields in Patch requests.
29863	NullFields []string `json:"-"`
29864}
29865
29866func (s *UsableSubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
29867	type NoMethod UsableSubnetworkSecondaryRange
29868	raw := NoMethod(*s)
29869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29870}
29871
29872type UsableSubnetworksAggregatedList struct {
29873	// Id: [Output Only] The unique identifier for the resource. This
29874	// identifier is defined by the server.
29875	Id string `json:"id,omitempty"`
29876
29877	// Items: [Output] A list of usable subnetwork URLs.
29878	Items []*UsableSubnetwork `json:"items,omitempty"`
29879
29880	// Kind: [Output Only] Type of resource. Always
29881	// compute#usableSubnetworksAggregatedList for aggregated lists of
29882	// usable subnetworks.
29883	Kind string `json:"kind,omitempty"`
29884
29885	// NextPageToken: [Output Only] This token allows you to get the next
29886	// page of results for list requests. If the number of results is larger
29887	// than maxResults, use the nextPageToken as a value for the query
29888	// parameter pageToken in the next list request. Subsequent list
29889	// requests will have their own nextPageToken to continue paging through
29890	// the results.
29891	NextPageToken string `json:"nextPageToken,omitempty"`
29892
29893	// SelfLink: [Output Only] Server-defined URL for this resource.
29894	SelfLink string `json:"selfLink,omitempty"`
29895
29896	// Warning: [Output Only] Informational warning message.
29897	Warning *UsableSubnetworksAggregatedListWarning `json:"warning,omitempty"`
29898
29899	// ServerResponse contains the HTTP response code and headers from the
29900	// server.
29901	googleapi.ServerResponse `json:"-"`
29902
29903	// ForceSendFields is a list of field names (e.g. "Id") to
29904	// unconditionally include in API requests. By default, fields with
29905	// empty values are omitted from API requests. However, any non-pointer,
29906	// non-interface field appearing in ForceSendFields will be sent to the
29907	// server regardless of whether the field is empty or not. This may be
29908	// used to include empty fields in Patch requests.
29909	ForceSendFields []string `json:"-"`
29910
29911	// NullFields is a list of field names (e.g. "Id") to include in API
29912	// requests with the JSON null value. By default, fields with empty
29913	// values are omitted from API requests. However, any field with an
29914	// empty value appearing in NullFields will be sent to the server as
29915	// null. It is an error if a field in this list has a non-empty value.
29916	// This may be used to include null fields in Patch requests.
29917	NullFields []string `json:"-"`
29918}
29919
29920func (s *UsableSubnetworksAggregatedList) MarshalJSON() ([]byte, error) {
29921	type NoMethod UsableSubnetworksAggregatedList
29922	raw := NoMethod(*s)
29923	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29924}
29925
29926// UsableSubnetworksAggregatedListWarning: [Output Only] Informational
29927// warning message.
29928type UsableSubnetworksAggregatedListWarning struct {
29929	// Code: [Output Only] A warning code, if applicable. For example,
29930	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29931	// the response.
29932	//
29933	// Possible values:
29934	//   "CLEANUP_FAILED"
29935	//   "DEPRECATED_RESOURCE_USED"
29936	//   "DEPRECATED_TYPE_USED"
29937	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29938	//   "EXPERIMENTAL_TYPE_USED"
29939	//   "EXTERNAL_API_WARNING"
29940	//   "FIELD_VALUE_OVERRIDEN"
29941	//   "INJECTED_KERNELS_DEPRECATED"
29942	//   "MISSING_TYPE_DEPENDENCY"
29943	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29944	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29945	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29946	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29947	//   "NEXT_HOP_NOT_RUNNING"
29948	//   "NOT_CRITICAL_ERROR"
29949	//   "NO_RESULTS_ON_PAGE"
29950	//   "REQUIRED_TOS_AGREEMENT"
29951	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29952	//   "RESOURCE_NOT_DELETED"
29953	//   "SCHEMA_VALIDATION_IGNORED"
29954	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29955	//   "UNDECLARED_PROPERTIES"
29956	//   "UNREACHABLE"
29957	Code string `json:"code,omitempty"`
29958
29959	// Data: [Output Only] Metadata about this warning in key: value format.
29960	// For example:
29961	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29962	Data []*UsableSubnetworksAggregatedListWarningData `json:"data,omitempty"`
29963
29964	// Message: [Output Only] A human-readable description of the warning
29965	// code.
29966	Message string `json:"message,omitempty"`
29967
29968	// ForceSendFields is a list of field names (e.g. "Code") to
29969	// unconditionally include in API requests. By default, fields with
29970	// empty values are omitted from API requests. However, any non-pointer,
29971	// non-interface field appearing in ForceSendFields will be sent to the
29972	// server regardless of whether the field is empty or not. This may be
29973	// used to include empty fields in Patch requests.
29974	ForceSendFields []string `json:"-"`
29975
29976	// NullFields is a list of field names (e.g. "Code") to include in API
29977	// requests with the JSON null value. By default, fields with empty
29978	// values are omitted from API requests. However, any field with an
29979	// empty value appearing in NullFields will be sent to the server as
29980	// null. It is an error if a field in this list has a non-empty value.
29981	// This may be used to include null fields in Patch requests.
29982	NullFields []string `json:"-"`
29983}
29984
29985func (s *UsableSubnetworksAggregatedListWarning) MarshalJSON() ([]byte, error) {
29986	type NoMethod UsableSubnetworksAggregatedListWarning
29987	raw := NoMethod(*s)
29988	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29989}
29990
29991type UsableSubnetworksAggregatedListWarningData struct {
29992	// Key: [Output Only] A key that provides more detail on the warning
29993	// being returned. For example, for warnings where there are no results
29994	// in a list request for a particular zone, this key might be scope and
29995	// the key value might be the zone name. Other examples might be a key
29996	// indicating a deprecated resource and a suggested replacement, or a
29997	// warning about invalid network settings (for example, if an instance
29998	// attempts to perform IP forwarding but is not enabled for IP
29999	// forwarding).
30000	Key string `json:"key,omitempty"`
30001
30002	// Value: [Output Only] A warning data value corresponding to the key.
30003	Value string `json:"value,omitempty"`
30004
30005	// ForceSendFields is a list of field names (e.g. "Key") to
30006	// unconditionally include in API requests. By default, fields with
30007	// empty values are omitted from API requests. However, any non-pointer,
30008	// non-interface field appearing in ForceSendFields will be sent to the
30009	// server regardless of whether the field is empty or not. This may be
30010	// used to include empty fields in Patch requests.
30011	ForceSendFields []string `json:"-"`
30012
30013	// NullFields is a list of field names (e.g. "Key") to include in API
30014	// requests with the JSON null value. By default, fields with empty
30015	// values are omitted from API requests. However, any field with an
30016	// empty value appearing in NullFields will be sent to the server as
30017	// null. It is an error if a field in this list has a non-empty value.
30018	// This may be used to include null fields in Patch requests.
30019	NullFields []string `json:"-"`
30020}
30021
30022func (s *UsableSubnetworksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
30023	type NoMethod UsableSubnetworksAggregatedListWarningData
30024	raw := NoMethod(*s)
30025	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30026}
30027
30028// UsageExportLocation: The location in Cloud Storage and naming method
30029// of the daily usage report. Contains bucket_name and report_name
30030// prefix.
30031type UsageExportLocation struct {
30032	// BucketName: The name of an existing bucket in Cloud Storage where the
30033	// usage report object is stored. The Google Service Account is granted
30034	// write access to this bucket. This can either be the bucket name by
30035	// itself, such as example-bucket, or the bucket name with gs:// or
30036	// https://storage.googleapis.com/ in front of it, such as
30037	// gs://example-bucket.
30038	BucketName string `json:"bucketName,omitempty"`
30039
30040	// ReportNamePrefix: An optional prefix for the name of the usage report
30041	// object stored in bucketName. If not supplied, defaults to usage. The
30042	// report is stored as a CSV file named
30043	// report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the
30044	// usage according to Pacific Time. If you supply a prefix, it should
30045	// conform to Cloud Storage object naming conventions.
30046	ReportNamePrefix string `json:"reportNamePrefix,omitempty"`
30047
30048	// ForceSendFields is a list of field names (e.g. "BucketName") to
30049	// unconditionally include in API requests. By default, fields with
30050	// empty values are omitted from API requests. However, any non-pointer,
30051	// non-interface field appearing in ForceSendFields will be sent to the
30052	// server regardless of whether the field is empty or not. This may be
30053	// used to include empty fields in Patch requests.
30054	ForceSendFields []string `json:"-"`
30055
30056	// NullFields is a list of field names (e.g. "BucketName") to include in
30057	// API requests with the JSON null value. By default, fields with empty
30058	// values are omitted from API requests. However, any field with an
30059	// empty value appearing in NullFields will be sent to the server as
30060	// null. It is an error if a field in this list has a non-empty value.
30061	// This may be used to include null fields in Patch requests.
30062	NullFields []string `json:"-"`
30063}
30064
30065func (s *UsageExportLocation) MarshalJSON() ([]byte, error) {
30066	type NoMethod UsageExportLocation
30067	raw := NoMethod(*s)
30068	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30069}
30070
30071// VmEndpointNatMappings: Contain information of Nat mapping for a VM
30072// endpoint (i.e., NIC).
30073type VmEndpointNatMappings struct {
30074	// InstanceName: Name of the VM instance which the endpoint belongs to
30075	InstanceName string `json:"instanceName,omitempty"`
30076
30077	InterfaceNatMappings []*VmEndpointNatMappingsInterfaceNatMappings `json:"interfaceNatMappings,omitempty"`
30078
30079	// ForceSendFields is a list of field names (e.g. "InstanceName") to
30080	// unconditionally include in API requests. By default, fields with
30081	// empty values are omitted from API requests. However, any non-pointer,
30082	// non-interface field appearing in ForceSendFields will be sent to the
30083	// server regardless of whether the field is empty or not. This may be
30084	// used to include empty fields in Patch requests.
30085	ForceSendFields []string `json:"-"`
30086
30087	// NullFields is a list of field names (e.g. "InstanceName") to include
30088	// in API requests with the JSON null value. By default, fields with
30089	// empty values are omitted from API requests. However, any field with
30090	// an empty value appearing in NullFields will be sent to the server as
30091	// null. It is an error if a field in this list has a non-empty value.
30092	// This may be used to include null fields in Patch requests.
30093	NullFields []string `json:"-"`
30094}
30095
30096func (s *VmEndpointNatMappings) MarshalJSON() ([]byte, error) {
30097	type NoMethod VmEndpointNatMappings
30098	raw := NoMethod(*s)
30099	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30100}
30101
30102// VmEndpointNatMappingsInterfaceNatMappings: Contain information of Nat
30103// mapping for an interface of this endpoint.
30104type VmEndpointNatMappingsInterfaceNatMappings struct {
30105	// NatIpPortRanges: A list of all IP:port-range mappings assigned to
30106	// this interface. These ranges are inclusive, that is, both the first
30107	// and the last ports can be used for NAT. Example:
30108	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
30109	NatIpPortRanges []string `json:"natIpPortRanges,omitempty"`
30110
30111	// NumTotalNatPorts: Total number of ports across all NAT IPs allocated
30112	// to this interface. It equals to the aggregated port number in the
30113	// field nat_ip_port_ranges.
30114	NumTotalNatPorts int64 `json:"numTotalNatPorts,omitempty"`
30115
30116	// SourceAliasIpRange: Alias IP range for this interface endpoint. It
30117	// will be a private (RFC 1918) IP range. Examples: "10.33.4.55/32", or
30118	// "192.168.5.0/24".
30119	SourceAliasIpRange string `json:"sourceAliasIpRange,omitempty"`
30120
30121	// SourceVirtualIp: Primary IP of the VM for this NIC.
30122	SourceVirtualIp string `json:"sourceVirtualIp,omitempty"`
30123
30124	// ForceSendFields is a list of field names (e.g. "NatIpPortRanges") to
30125	// unconditionally include in API requests. By default, fields with
30126	// empty values are omitted from API requests. However, any non-pointer,
30127	// non-interface field appearing in ForceSendFields will be sent to the
30128	// server regardless of whether the field is empty or not. This may be
30129	// used to include empty fields in Patch requests.
30130	ForceSendFields []string `json:"-"`
30131
30132	// NullFields is a list of field names (e.g. "NatIpPortRanges") to
30133	// include in API requests with the JSON null value. By default, fields
30134	// with empty values are omitted from API requests. However, any field
30135	// with an empty value appearing in NullFields will be sent to the
30136	// server as null. It is an error if a field in this list has a
30137	// non-empty value. This may be used to include null fields in Patch
30138	// requests.
30139	NullFields []string `json:"-"`
30140}
30141
30142func (s *VmEndpointNatMappingsInterfaceNatMappings) MarshalJSON() ([]byte, error) {
30143	type NoMethod VmEndpointNatMappingsInterfaceNatMappings
30144	raw := NoMethod(*s)
30145	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30146}
30147
30148// VmEndpointNatMappingsList: Contains a list of VmEndpointNatMappings.
30149type VmEndpointNatMappingsList struct {
30150	// Id: [Output Only] The unique identifier for the resource. This
30151	// identifier is defined by the server.
30152	Id string `json:"id,omitempty"`
30153
30154	// Kind: [Output Only] Type of resource. Always
30155	// compute#vmEndpointNatMappingsList for lists of Nat mappings of VM
30156	// endpoints.
30157	Kind string `json:"kind,omitempty"`
30158
30159	// NextPageToken: [Output Only] This token allows you to get the next
30160	// page of results for list requests. If the number of results is larger
30161	// than maxResults, use the nextPageToken as a value for the query
30162	// parameter pageToken in the next list request. Subsequent list
30163	// requests will have their own nextPageToken to continue paging through
30164	// the results.
30165	NextPageToken string `json:"nextPageToken,omitempty"`
30166
30167	// Result: [Output Only] A list of Nat mapping information of VM
30168	// endpoints.
30169	Result []*VmEndpointNatMappings `json:"result,omitempty"`
30170
30171	// SelfLink: [Output Only] Server-defined URL for this resource.
30172	SelfLink string `json:"selfLink,omitempty"`
30173
30174	// Warning: [Output Only] Informational warning message.
30175	Warning *VmEndpointNatMappingsListWarning `json:"warning,omitempty"`
30176
30177	// ServerResponse contains the HTTP response code and headers from the
30178	// server.
30179	googleapi.ServerResponse `json:"-"`
30180
30181	// ForceSendFields is a list of field names (e.g. "Id") to
30182	// unconditionally include in API requests. By default, fields with
30183	// empty values are omitted from API requests. However, any non-pointer,
30184	// non-interface field appearing in ForceSendFields will be sent to the
30185	// server regardless of whether the field is empty or not. This may be
30186	// used to include empty fields in Patch requests.
30187	ForceSendFields []string `json:"-"`
30188
30189	// NullFields is a list of field names (e.g. "Id") to include in API
30190	// requests with the JSON null value. By default, fields with empty
30191	// values are omitted from API requests. However, any field with an
30192	// empty value appearing in NullFields will be sent to the server as
30193	// null. It is an error if a field in this list has a non-empty value.
30194	// This may be used to include null fields in Patch requests.
30195	NullFields []string `json:"-"`
30196}
30197
30198func (s *VmEndpointNatMappingsList) MarshalJSON() ([]byte, error) {
30199	type NoMethod VmEndpointNatMappingsList
30200	raw := NoMethod(*s)
30201	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30202}
30203
30204// VmEndpointNatMappingsListWarning: [Output Only] Informational warning
30205// message.
30206type VmEndpointNatMappingsListWarning struct {
30207	// Code: [Output Only] A warning code, if applicable. For example,
30208	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30209	// the response.
30210	//
30211	// Possible values:
30212	//   "CLEANUP_FAILED"
30213	//   "DEPRECATED_RESOURCE_USED"
30214	//   "DEPRECATED_TYPE_USED"
30215	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30216	//   "EXPERIMENTAL_TYPE_USED"
30217	//   "EXTERNAL_API_WARNING"
30218	//   "FIELD_VALUE_OVERRIDEN"
30219	//   "INJECTED_KERNELS_DEPRECATED"
30220	//   "MISSING_TYPE_DEPENDENCY"
30221	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30222	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30223	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30224	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30225	//   "NEXT_HOP_NOT_RUNNING"
30226	//   "NOT_CRITICAL_ERROR"
30227	//   "NO_RESULTS_ON_PAGE"
30228	//   "REQUIRED_TOS_AGREEMENT"
30229	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30230	//   "RESOURCE_NOT_DELETED"
30231	//   "SCHEMA_VALIDATION_IGNORED"
30232	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30233	//   "UNDECLARED_PROPERTIES"
30234	//   "UNREACHABLE"
30235	Code string `json:"code,omitempty"`
30236
30237	// Data: [Output Only] Metadata about this warning in key: value format.
30238	// For example:
30239	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30240	Data []*VmEndpointNatMappingsListWarningData `json:"data,omitempty"`
30241
30242	// Message: [Output Only] A human-readable description of the warning
30243	// code.
30244	Message string `json:"message,omitempty"`
30245
30246	// ForceSendFields is a list of field names (e.g. "Code") to
30247	// unconditionally include in API requests. By default, fields with
30248	// empty values are omitted from API requests. However, any non-pointer,
30249	// non-interface field appearing in ForceSendFields will be sent to the
30250	// server regardless of whether the field is empty or not. This may be
30251	// used to include empty fields in Patch requests.
30252	ForceSendFields []string `json:"-"`
30253
30254	// NullFields is a list of field names (e.g. "Code") to include in API
30255	// requests with the JSON null value. By default, fields with empty
30256	// values are omitted from API requests. However, any field with an
30257	// empty value appearing in NullFields will be sent to the server as
30258	// null. It is an error if a field in this list has a non-empty value.
30259	// This may be used to include null fields in Patch requests.
30260	NullFields []string `json:"-"`
30261}
30262
30263func (s *VmEndpointNatMappingsListWarning) MarshalJSON() ([]byte, error) {
30264	type NoMethod VmEndpointNatMappingsListWarning
30265	raw := NoMethod(*s)
30266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30267}
30268
30269type VmEndpointNatMappingsListWarningData struct {
30270	// Key: [Output Only] A key that provides more detail on the warning
30271	// being returned. For example, for warnings where there are no results
30272	// in a list request for a particular zone, this key might be scope and
30273	// the key value might be the zone name. Other examples might be a key
30274	// indicating a deprecated resource and a suggested replacement, or a
30275	// warning about invalid network settings (for example, if an instance
30276	// attempts to perform IP forwarding but is not enabled for IP
30277	// forwarding).
30278	Key string `json:"key,omitempty"`
30279
30280	// Value: [Output Only] A warning data value corresponding to the key.
30281	Value string `json:"value,omitempty"`
30282
30283	// ForceSendFields is a list of field names (e.g. "Key") to
30284	// unconditionally include in API requests. By default, fields with
30285	// empty values are omitted from API requests. However, any non-pointer,
30286	// non-interface field appearing in ForceSendFields will be sent to the
30287	// server regardless of whether the field is empty or not. This may be
30288	// used to include empty fields in Patch requests.
30289	ForceSendFields []string `json:"-"`
30290
30291	// NullFields is a list of field names (e.g. "Key") to include in API
30292	// requests with the JSON null value. By default, fields with empty
30293	// values are omitted from API requests. However, any field with an
30294	// empty value appearing in NullFields will be sent to the server as
30295	// null. It is an error if a field in this list has a non-empty value.
30296	// This may be used to include null fields in Patch requests.
30297	NullFields []string `json:"-"`
30298}
30299
30300func (s *VmEndpointNatMappingsListWarningData) MarshalJSON() ([]byte, error) {
30301	type NoMethod VmEndpointNatMappingsListWarningData
30302	raw := NoMethod(*s)
30303	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30304}
30305
30306// VpnTunnel: VPN tunnel resource. (== resource_for beta.vpnTunnels ==)
30307// (== resource_for v1.vpnTunnels ==)
30308type VpnTunnel struct {
30309	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
30310	// format.
30311	CreationTimestamp string `json:"creationTimestamp,omitempty"`
30312
30313	// Description: An optional description of this resource. Provide this
30314	// property when you create the resource.
30315	Description string `json:"description,omitempty"`
30316
30317	// DetailedStatus: [Output Only] Detailed status message for the VPN
30318	// tunnel.
30319	DetailedStatus string `json:"detailedStatus,omitempty"`
30320
30321	// Id: [Output Only] The unique identifier for the resource. This
30322	// identifier is defined by the server.
30323	Id uint64 `json:"id,omitempty,string"`
30324
30325	// IkeVersion: IKE protocol version to use when establishing the VPN
30326	// tunnel with the peer VPN gateway. Acceptable IKE versions are 1 or 2.
30327	// The default version is 2.
30328	IkeVersion int64 `json:"ikeVersion,omitempty"`
30329
30330	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
30331	// VPN tunnels.
30332	Kind string `json:"kind,omitempty"`
30333
30334	// LocalTrafficSelector: Local traffic selector to use when establishing
30335	// the VPN tunnel with the peer VPN gateway. The value should be a CIDR
30336	// formatted string, for example: 192.168.0.0/16. The ranges must be
30337	// disjoint. Only IPv4 is supported.
30338	LocalTrafficSelector []string `json:"localTrafficSelector,omitempty"`
30339
30340	// Name: Name of the resource. Provided by the client when the resource
30341	// is created. The name must be 1-63 characters long, and comply with
30342	// RFC1035. Specifically, the name must be 1-63 characters long and
30343	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
30344	// the first character must be a lowercase letter, and all following
30345	// characters must be a dash, lowercase letter, or digit, except the
30346	// last character, which cannot be a dash.
30347	Name string `json:"name,omitempty"`
30348
30349	// PeerIp: IP address of the peer VPN gateway. Only IPv4 is supported.
30350	PeerIp string `json:"peerIp,omitempty"`
30351
30352	// Region: [Output Only] URL of the region where the VPN tunnel resides.
30353	// You must specify this field as part of the HTTP request URL. It is
30354	// not settable as a field in the request body.
30355	Region string `json:"region,omitempty"`
30356
30357	// RemoteTrafficSelector: Remote traffic selectors to use when
30358	// establishing the VPN tunnel with the peer VPN gateway. The value
30359	// should be a CIDR formatted string, for example: 192.168.0.0/16. The
30360	// ranges should be disjoint. Only IPv4 is supported.
30361	RemoteTrafficSelector []string `json:"remoteTrafficSelector,omitempty"`
30362
30363	// Router: URL of the router resource to be used for dynamic routing.
30364	Router string `json:"router,omitempty"`
30365
30366	// SelfLink: [Output Only] Server-defined URL for the resource.
30367	SelfLink string `json:"selfLink,omitempty"`
30368
30369	// SharedSecret: Shared secret used to set the secure session between
30370	// the Cloud VPN gateway and the peer VPN gateway.
30371	SharedSecret string `json:"sharedSecret,omitempty"`
30372
30373	// SharedSecretHash: Hash of the shared secret.
30374	SharedSecretHash string `json:"sharedSecretHash,omitempty"`
30375
30376	// Status: [Output Only] The status of the VPN tunnel, which can be one
30377	// of the following:
30378	// - PROVISIONING: Resource is being allocated for the VPN tunnel.
30379	// - WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs
30380	// from the user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule,
30381	// and Route resources are needed to setup the VPN tunnel.
30382	// - FIRST_HANDSHAKE: Successful first handshake with the peer VPN.
30383	// - ESTABLISHED: Secure session is successfully established with the
30384	// peer VPN.
30385	// - NETWORK_ERROR: Deprecated, replaced by NO_INCOMING_PACKETS
30386	// - AUTHORIZATION_ERROR: Auth error (for example, bad shared secret).
30387	//
30388	// - NEGOTIATION_FAILURE: Handshake failed.
30389	// - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
30390	//
30391	// - FAILED: Tunnel creation has failed and the tunnel is not ready to
30392	// be used.
30393	//
30394	// Possible values:
30395	//   "ALLOCATING_RESOURCES"
30396	//   "AUTHORIZATION_ERROR"
30397	//   "DEPROVISIONING"
30398	//   "ESTABLISHED"
30399	//   "FAILED"
30400	//   "FIRST_HANDSHAKE"
30401	//   "NEGOTIATION_FAILURE"
30402	//   "NETWORK_ERROR"
30403	//   "NO_INCOMING_PACKETS"
30404	//   "PROVISIONING"
30405	//   "REJECTED"
30406	//   "WAITING_FOR_FULL_CONFIG"
30407	Status string `json:"status,omitempty"`
30408
30409	// TargetVpnGateway: URL of the Target VPN gateway with which this VPN
30410	// tunnel is associated. Provided by the client when the VPN tunnel is
30411	// created.
30412	TargetVpnGateway string `json:"targetVpnGateway,omitempty"`
30413
30414	// ServerResponse contains the HTTP response code and headers from the
30415	// server.
30416	googleapi.ServerResponse `json:"-"`
30417
30418	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
30419	// to unconditionally include in API requests. By default, fields with
30420	// empty values are omitted from API requests. However, any non-pointer,
30421	// non-interface field appearing in ForceSendFields will be sent to the
30422	// server regardless of whether the field is empty or not. This may be
30423	// used to include empty fields in Patch requests.
30424	ForceSendFields []string `json:"-"`
30425
30426	// NullFields is a list of field names (e.g. "CreationTimestamp") to
30427	// include in API requests with the JSON null value. By default, fields
30428	// with empty values are omitted from API requests. However, any field
30429	// with an empty value appearing in NullFields will be sent to the
30430	// server as null. It is an error if a field in this list has a
30431	// non-empty value. This may be used to include null fields in Patch
30432	// requests.
30433	NullFields []string `json:"-"`
30434}
30435
30436func (s *VpnTunnel) MarshalJSON() ([]byte, error) {
30437	type NoMethod VpnTunnel
30438	raw := NoMethod(*s)
30439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30440}
30441
30442type VpnTunnelAggregatedList struct {
30443	// Id: [Output Only] Unique identifier for the resource; defined by the
30444	// server.
30445	Id string `json:"id,omitempty"`
30446
30447	// Items: A list of VpnTunnelsScopedList resources.
30448	Items map[string]VpnTunnelsScopedList `json:"items,omitempty"`
30449
30450	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
30451	// VPN tunnels.
30452	Kind string `json:"kind,omitempty"`
30453
30454	// NextPageToken: [Output Only] This token allows you to get the next
30455	// page of results for list requests. If the number of results is larger
30456	// than maxResults, use the nextPageToken as a value for the query
30457	// parameter pageToken in the next list request. Subsequent list
30458	// requests will have their own nextPageToken to continue paging through
30459	// the results.
30460	NextPageToken string `json:"nextPageToken,omitempty"`
30461
30462	// SelfLink: [Output Only] Server-defined URL for this resource.
30463	SelfLink string `json:"selfLink,omitempty"`
30464
30465	// Warning: [Output Only] Informational warning message.
30466	Warning *VpnTunnelAggregatedListWarning `json:"warning,omitempty"`
30467
30468	// ServerResponse contains the HTTP response code and headers from the
30469	// server.
30470	googleapi.ServerResponse `json:"-"`
30471
30472	// ForceSendFields is a list of field names (e.g. "Id") to
30473	// unconditionally include in API requests. By default, fields with
30474	// empty values are omitted from API requests. However, any non-pointer,
30475	// non-interface field appearing in ForceSendFields will be sent to the
30476	// server regardless of whether the field is empty or not. This may be
30477	// used to include empty fields in Patch requests.
30478	ForceSendFields []string `json:"-"`
30479
30480	// NullFields is a list of field names (e.g. "Id") to include in API
30481	// requests with the JSON null value. By default, fields with empty
30482	// values are omitted from API requests. However, any field with an
30483	// empty value appearing in NullFields will be sent to the server as
30484	// null. It is an error if a field in this list has a non-empty value.
30485	// This may be used to include null fields in Patch requests.
30486	NullFields []string `json:"-"`
30487}
30488
30489func (s *VpnTunnelAggregatedList) MarshalJSON() ([]byte, error) {
30490	type NoMethod VpnTunnelAggregatedList
30491	raw := NoMethod(*s)
30492	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30493}
30494
30495// VpnTunnelAggregatedListWarning: [Output Only] Informational warning
30496// message.
30497type VpnTunnelAggregatedListWarning struct {
30498	// Code: [Output Only] A warning code, if applicable. For example,
30499	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30500	// the response.
30501	//
30502	// Possible values:
30503	//   "CLEANUP_FAILED"
30504	//   "DEPRECATED_RESOURCE_USED"
30505	//   "DEPRECATED_TYPE_USED"
30506	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30507	//   "EXPERIMENTAL_TYPE_USED"
30508	//   "EXTERNAL_API_WARNING"
30509	//   "FIELD_VALUE_OVERRIDEN"
30510	//   "INJECTED_KERNELS_DEPRECATED"
30511	//   "MISSING_TYPE_DEPENDENCY"
30512	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30513	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30514	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30515	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30516	//   "NEXT_HOP_NOT_RUNNING"
30517	//   "NOT_CRITICAL_ERROR"
30518	//   "NO_RESULTS_ON_PAGE"
30519	//   "REQUIRED_TOS_AGREEMENT"
30520	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30521	//   "RESOURCE_NOT_DELETED"
30522	//   "SCHEMA_VALIDATION_IGNORED"
30523	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30524	//   "UNDECLARED_PROPERTIES"
30525	//   "UNREACHABLE"
30526	Code string `json:"code,omitempty"`
30527
30528	// Data: [Output Only] Metadata about this warning in key: value format.
30529	// For example:
30530	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30531	Data []*VpnTunnelAggregatedListWarningData `json:"data,omitempty"`
30532
30533	// Message: [Output Only] A human-readable description of the warning
30534	// code.
30535	Message string `json:"message,omitempty"`
30536
30537	// ForceSendFields is a list of field names (e.g. "Code") to
30538	// unconditionally include in API requests. By default, fields with
30539	// empty values are omitted from API requests. However, any non-pointer,
30540	// non-interface field appearing in ForceSendFields will be sent to the
30541	// server regardless of whether the field is empty or not. This may be
30542	// used to include empty fields in Patch requests.
30543	ForceSendFields []string `json:"-"`
30544
30545	// NullFields is a list of field names (e.g. "Code") to include in API
30546	// requests with the JSON null value. By default, fields with empty
30547	// values are omitted from API requests. However, any field with an
30548	// empty value appearing in NullFields will be sent to the server as
30549	// null. It is an error if a field in this list has a non-empty value.
30550	// This may be used to include null fields in Patch requests.
30551	NullFields []string `json:"-"`
30552}
30553
30554func (s *VpnTunnelAggregatedListWarning) MarshalJSON() ([]byte, error) {
30555	type NoMethod VpnTunnelAggregatedListWarning
30556	raw := NoMethod(*s)
30557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30558}
30559
30560type VpnTunnelAggregatedListWarningData struct {
30561	// Key: [Output Only] A key that provides more detail on the warning
30562	// being returned. For example, for warnings where there are no results
30563	// in a list request for a particular zone, this key might be scope and
30564	// the key value might be the zone name. Other examples might be a key
30565	// indicating a deprecated resource and a suggested replacement, or a
30566	// warning about invalid network settings (for example, if an instance
30567	// attempts to perform IP forwarding but is not enabled for IP
30568	// forwarding).
30569	Key string `json:"key,omitempty"`
30570
30571	// Value: [Output Only] A warning data value corresponding to the key.
30572	Value string `json:"value,omitempty"`
30573
30574	// ForceSendFields is a list of field names (e.g. "Key") to
30575	// unconditionally include in API requests. By default, fields with
30576	// empty values are omitted from API requests. However, any non-pointer,
30577	// non-interface field appearing in ForceSendFields will be sent to the
30578	// server regardless of whether the field is empty or not. This may be
30579	// used to include empty fields in Patch requests.
30580	ForceSendFields []string `json:"-"`
30581
30582	// NullFields is a list of field names (e.g. "Key") to include in API
30583	// requests with the JSON null value. By default, fields with empty
30584	// values are omitted from API requests. However, any field with an
30585	// empty value appearing in NullFields will be sent to the server as
30586	// null. It is an error if a field in this list has a non-empty value.
30587	// This may be used to include null fields in Patch requests.
30588	NullFields []string `json:"-"`
30589}
30590
30591func (s *VpnTunnelAggregatedListWarningData) MarshalJSON() ([]byte, error) {
30592	type NoMethod VpnTunnelAggregatedListWarningData
30593	raw := NoMethod(*s)
30594	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30595}
30596
30597// VpnTunnelList: Contains a list of VpnTunnel resources.
30598type VpnTunnelList struct {
30599	// Id: [Output Only] Unique identifier for the resource; defined by the
30600	// server.
30601	Id string `json:"id,omitempty"`
30602
30603	// Items: A list of VpnTunnel resources.
30604	Items []*VpnTunnel `json:"items,omitempty"`
30605
30606	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
30607	// VPN tunnels.
30608	Kind string `json:"kind,omitempty"`
30609
30610	// NextPageToken: [Output Only] This token allows you to get the next
30611	// page of results for list requests. If the number of results is larger
30612	// than maxResults, use the nextPageToken as a value for the query
30613	// parameter pageToken in the next list request. Subsequent list
30614	// requests will have their own nextPageToken to continue paging through
30615	// the results.
30616	NextPageToken string `json:"nextPageToken,omitempty"`
30617
30618	// SelfLink: [Output Only] Server-defined URL for this resource.
30619	SelfLink string `json:"selfLink,omitempty"`
30620
30621	// Warning: [Output Only] Informational warning message.
30622	Warning *VpnTunnelListWarning `json:"warning,omitempty"`
30623
30624	// ServerResponse contains the HTTP response code and headers from the
30625	// server.
30626	googleapi.ServerResponse `json:"-"`
30627
30628	// ForceSendFields is a list of field names (e.g. "Id") to
30629	// unconditionally include in API requests. By default, fields with
30630	// empty values are omitted from API requests. However, any non-pointer,
30631	// non-interface field appearing in ForceSendFields will be sent to the
30632	// server regardless of whether the field is empty or not. This may be
30633	// used to include empty fields in Patch requests.
30634	ForceSendFields []string `json:"-"`
30635
30636	// NullFields is a list of field names (e.g. "Id") to include in API
30637	// requests with the JSON null value. By default, fields with empty
30638	// values are omitted from API requests. However, any field with an
30639	// empty value appearing in NullFields will be sent to the server as
30640	// null. It is an error if a field in this list has a non-empty value.
30641	// This may be used to include null fields in Patch requests.
30642	NullFields []string `json:"-"`
30643}
30644
30645func (s *VpnTunnelList) MarshalJSON() ([]byte, error) {
30646	type NoMethod VpnTunnelList
30647	raw := NoMethod(*s)
30648	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30649}
30650
30651// VpnTunnelListWarning: [Output Only] Informational warning message.
30652type VpnTunnelListWarning struct {
30653	// Code: [Output Only] A warning code, if applicable. For example,
30654	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30655	// the response.
30656	//
30657	// Possible values:
30658	//   "CLEANUP_FAILED"
30659	//   "DEPRECATED_RESOURCE_USED"
30660	//   "DEPRECATED_TYPE_USED"
30661	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30662	//   "EXPERIMENTAL_TYPE_USED"
30663	//   "EXTERNAL_API_WARNING"
30664	//   "FIELD_VALUE_OVERRIDEN"
30665	//   "INJECTED_KERNELS_DEPRECATED"
30666	//   "MISSING_TYPE_DEPENDENCY"
30667	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30668	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30669	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30670	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30671	//   "NEXT_HOP_NOT_RUNNING"
30672	//   "NOT_CRITICAL_ERROR"
30673	//   "NO_RESULTS_ON_PAGE"
30674	//   "REQUIRED_TOS_AGREEMENT"
30675	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30676	//   "RESOURCE_NOT_DELETED"
30677	//   "SCHEMA_VALIDATION_IGNORED"
30678	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30679	//   "UNDECLARED_PROPERTIES"
30680	//   "UNREACHABLE"
30681	Code string `json:"code,omitempty"`
30682
30683	// Data: [Output Only] Metadata about this warning in key: value format.
30684	// For example:
30685	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30686	Data []*VpnTunnelListWarningData `json:"data,omitempty"`
30687
30688	// Message: [Output Only] A human-readable description of the warning
30689	// code.
30690	Message string `json:"message,omitempty"`
30691
30692	// ForceSendFields is a list of field names (e.g. "Code") to
30693	// unconditionally include in API requests. By default, fields with
30694	// empty values are omitted from API requests. However, any non-pointer,
30695	// non-interface field appearing in ForceSendFields will be sent to the
30696	// server regardless of whether the field is empty or not. This may be
30697	// used to include empty fields in Patch requests.
30698	ForceSendFields []string `json:"-"`
30699
30700	// NullFields is a list of field names (e.g. "Code") to include in API
30701	// requests with the JSON null value. By default, fields with empty
30702	// values are omitted from API requests. However, any field with an
30703	// empty value appearing in NullFields will be sent to the server as
30704	// null. It is an error if a field in this list has a non-empty value.
30705	// This may be used to include null fields in Patch requests.
30706	NullFields []string `json:"-"`
30707}
30708
30709func (s *VpnTunnelListWarning) MarshalJSON() ([]byte, error) {
30710	type NoMethod VpnTunnelListWarning
30711	raw := NoMethod(*s)
30712	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30713}
30714
30715type VpnTunnelListWarningData struct {
30716	// Key: [Output Only] A key that provides more detail on the warning
30717	// being returned. For example, for warnings where there are no results
30718	// in a list request for a particular zone, this key might be scope and
30719	// the key value might be the zone name. Other examples might be a key
30720	// indicating a deprecated resource and a suggested replacement, or a
30721	// warning about invalid network settings (for example, if an instance
30722	// attempts to perform IP forwarding but is not enabled for IP
30723	// forwarding).
30724	Key string `json:"key,omitempty"`
30725
30726	// Value: [Output Only] A warning data value corresponding to the key.
30727	Value string `json:"value,omitempty"`
30728
30729	// ForceSendFields is a list of field names (e.g. "Key") to
30730	// unconditionally include in API requests. By default, fields with
30731	// empty values are omitted from API requests. However, any non-pointer,
30732	// non-interface field appearing in ForceSendFields will be sent to the
30733	// server regardless of whether the field is empty or not. This may be
30734	// used to include empty fields in Patch requests.
30735	ForceSendFields []string `json:"-"`
30736
30737	// NullFields is a list of field names (e.g. "Key") to include in API
30738	// requests with the JSON null value. By default, fields with empty
30739	// values are omitted from API requests. However, any field with an
30740	// empty value appearing in NullFields will be sent to the server as
30741	// null. It is an error if a field in this list has a non-empty value.
30742	// This may be used to include null fields in Patch requests.
30743	NullFields []string `json:"-"`
30744}
30745
30746func (s *VpnTunnelListWarningData) MarshalJSON() ([]byte, error) {
30747	type NoMethod VpnTunnelListWarningData
30748	raw := NoMethod(*s)
30749	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30750}
30751
30752type VpnTunnelsScopedList struct {
30753	// VpnTunnels: A list of VPN tunnels contained in this scope.
30754	VpnTunnels []*VpnTunnel `json:"vpnTunnels,omitempty"`
30755
30756	// Warning: Informational warning which replaces the list of addresses
30757	// when the list is empty.
30758	Warning *VpnTunnelsScopedListWarning `json:"warning,omitempty"`
30759
30760	// ForceSendFields is a list of field names (e.g. "VpnTunnels") to
30761	// unconditionally include in API requests. By default, fields with
30762	// empty values are omitted from API requests. However, any non-pointer,
30763	// non-interface field appearing in ForceSendFields will be sent to the
30764	// server regardless of whether the field is empty or not. This may be
30765	// used to include empty fields in Patch requests.
30766	ForceSendFields []string `json:"-"`
30767
30768	// NullFields is a list of field names (e.g. "VpnTunnels") to include in
30769	// API requests with the JSON null value. By default, fields with empty
30770	// values are omitted from API requests. However, any field with an
30771	// empty value appearing in NullFields will be sent to the server as
30772	// null. It is an error if a field in this list has a non-empty value.
30773	// This may be used to include null fields in Patch requests.
30774	NullFields []string `json:"-"`
30775}
30776
30777func (s *VpnTunnelsScopedList) MarshalJSON() ([]byte, error) {
30778	type NoMethod VpnTunnelsScopedList
30779	raw := NoMethod(*s)
30780	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30781}
30782
30783// VpnTunnelsScopedListWarning: Informational warning which replaces the
30784// list of addresses when the list is empty.
30785type VpnTunnelsScopedListWarning struct {
30786	// Code: [Output Only] A warning code, if applicable. For example,
30787	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30788	// the response.
30789	//
30790	// Possible values:
30791	//   "CLEANUP_FAILED"
30792	//   "DEPRECATED_RESOURCE_USED"
30793	//   "DEPRECATED_TYPE_USED"
30794	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30795	//   "EXPERIMENTAL_TYPE_USED"
30796	//   "EXTERNAL_API_WARNING"
30797	//   "FIELD_VALUE_OVERRIDEN"
30798	//   "INJECTED_KERNELS_DEPRECATED"
30799	//   "MISSING_TYPE_DEPENDENCY"
30800	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30801	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30802	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30803	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30804	//   "NEXT_HOP_NOT_RUNNING"
30805	//   "NOT_CRITICAL_ERROR"
30806	//   "NO_RESULTS_ON_PAGE"
30807	//   "REQUIRED_TOS_AGREEMENT"
30808	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30809	//   "RESOURCE_NOT_DELETED"
30810	//   "SCHEMA_VALIDATION_IGNORED"
30811	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30812	//   "UNDECLARED_PROPERTIES"
30813	//   "UNREACHABLE"
30814	Code string `json:"code,omitempty"`
30815
30816	// Data: [Output Only] Metadata about this warning in key: value format.
30817	// For example:
30818	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30819	Data []*VpnTunnelsScopedListWarningData `json:"data,omitempty"`
30820
30821	// Message: [Output Only] A human-readable description of the warning
30822	// code.
30823	Message string `json:"message,omitempty"`
30824
30825	// ForceSendFields is a list of field names (e.g. "Code") to
30826	// unconditionally include in API requests. By default, fields with
30827	// empty values are omitted from API requests. However, any non-pointer,
30828	// non-interface field appearing in ForceSendFields will be sent to the
30829	// server regardless of whether the field is empty or not. This may be
30830	// used to include empty fields in Patch requests.
30831	ForceSendFields []string `json:"-"`
30832
30833	// NullFields is a list of field names (e.g. "Code") to include in API
30834	// requests with the JSON null value. By default, fields with empty
30835	// values are omitted from API requests. However, any field with an
30836	// empty value appearing in NullFields will be sent to the server as
30837	// null. It is an error if a field in this list has a non-empty value.
30838	// This may be used to include null fields in Patch requests.
30839	NullFields []string `json:"-"`
30840}
30841
30842func (s *VpnTunnelsScopedListWarning) MarshalJSON() ([]byte, error) {
30843	type NoMethod VpnTunnelsScopedListWarning
30844	raw := NoMethod(*s)
30845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30846}
30847
30848type VpnTunnelsScopedListWarningData struct {
30849	// Key: [Output Only] A key that provides more detail on the warning
30850	// being returned. For example, for warnings where there are no results
30851	// in a list request for a particular zone, this key might be scope and
30852	// the key value might be the zone name. Other examples might be a key
30853	// indicating a deprecated resource and a suggested replacement, or a
30854	// warning about invalid network settings (for example, if an instance
30855	// attempts to perform IP forwarding but is not enabled for IP
30856	// forwarding).
30857	Key string `json:"key,omitempty"`
30858
30859	// Value: [Output Only] A warning data value corresponding to the key.
30860	Value string `json:"value,omitempty"`
30861
30862	// ForceSendFields is a list of field names (e.g. "Key") to
30863	// unconditionally include in API requests. By default, fields with
30864	// empty values are omitted from API requests. However, any non-pointer,
30865	// non-interface field appearing in ForceSendFields will be sent to the
30866	// server regardless of whether the field is empty or not. This may be
30867	// used to include empty fields in Patch requests.
30868	ForceSendFields []string `json:"-"`
30869
30870	// NullFields is a list of field names (e.g. "Key") to include in API
30871	// requests with the JSON null value. By default, fields with empty
30872	// values are omitted from API requests. However, any field with an
30873	// empty value appearing in NullFields will be sent to the server as
30874	// null. It is an error if a field in this list has a non-empty value.
30875	// This may be used to include null fields in Patch requests.
30876	NullFields []string `json:"-"`
30877}
30878
30879func (s *VpnTunnelsScopedListWarningData) MarshalJSON() ([]byte, error) {
30880	type NoMethod VpnTunnelsScopedListWarningData
30881	raw := NoMethod(*s)
30882	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30883}
30884
30885type XpnHostList struct {
30886	// Id: [Output Only] Unique identifier for the resource; defined by the
30887	// server.
30888	Id string `json:"id,omitempty"`
30889
30890	// Items: [Output Only] A list of shared VPC host project URLs.
30891	Items []*Project `json:"items,omitempty"`
30892
30893	// Kind: [Output Only] Type of resource. Always compute#xpnHostList for
30894	// lists of shared VPC hosts.
30895	Kind string `json:"kind,omitempty"`
30896
30897	// NextPageToken: [Output Only] This token allows you to get the next
30898	// page of results for list requests. If the number of results is larger
30899	// than maxResults, use the nextPageToken as a value for the query
30900	// parameter pageToken in the next list request. Subsequent list
30901	// requests will have their own nextPageToken to continue paging through
30902	// the results.
30903	NextPageToken string `json:"nextPageToken,omitempty"`
30904
30905	// SelfLink: [Output Only] Server-defined URL for this resource.
30906	SelfLink string `json:"selfLink,omitempty"`
30907
30908	// Warning: [Output Only] Informational warning message.
30909	Warning *XpnHostListWarning `json:"warning,omitempty"`
30910
30911	// ServerResponse contains the HTTP response code and headers from the
30912	// server.
30913	googleapi.ServerResponse `json:"-"`
30914
30915	// ForceSendFields is a list of field names (e.g. "Id") to
30916	// unconditionally include in API requests. By default, fields with
30917	// empty values are omitted from API requests. However, any non-pointer,
30918	// non-interface field appearing in ForceSendFields will be sent to the
30919	// server regardless of whether the field is empty or not. This may be
30920	// used to include empty fields in Patch requests.
30921	ForceSendFields []string `json:"-"`
30922
30923	// NullFields is a list of field names (e.g. "Id") to include in API
30924	// requests with the JSON null value. By default, fields with empty
30925	// values are omitted from API requests. However, any field with an
30926	// empty value appearing in NullFields will be sent to the server as
30927	// null. It is an error if a field in this list has a non-empty value.
30928	// This may be used to include null fields in Patch requests.
30929	NullFields []string `json:"-"`
30930}
30931
30932func (s *XpnHostList) MarshalJSON() ([]byte, error) {
30933	type NoMethod XpnHostList
30934	raw := NoMethod(*s)
30935	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30936}
30937
30938// XpnHostListWarning: [Output Only] Informational warning message.
30939type XpnHostListWarning struct {
30940	// Code: [Output Only] A warning code, if applicable. For example,
30941	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30942	// the response.
30943	//
30944	// Possible values:
30945	//   "CLEANUP_FAILED"
30946	//   "DEPRECATED_RESOURCE_USED"
30947	//   "DEPRECATED_TYPE_USED"
30948	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30949	//   "EXPERIMENTAL_TYPE_USED"
30950	//   "EXTERNAL_API_WARNING"
30951	//   "FIELD_VALUE_OVERRIDEN"
30952	//   "INJECTED_KERNELS_DEPRECATED"
30953	//   "MISSING_TYPE_DEPENDENCY"
30954	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30955	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30956	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30957	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30958	//   "NEXT_HOP_NOT_RUNNING"
30959	//   "NOT_CRITICAL_ERROR"
30960	//   "NO_RESULTS_ON_PAGE"
30961	//   "REQUIRED_TOS_AGREEMENT"
30962	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30963	//   "RESOURCE_NOT_DELETED"
30964	//   "SCHEMA_VALIDATION_IGNORED"
30965	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30966	//   "UNDECLARED_PROPERTIES"
30967	//   "UNREACHABLE"
30968	Code string `json:"code,omitempty"`
30969
30970	// Data: [Output Only] Metadata about this warning in key: value format.
30971	// For example:
30972	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30973	Data []*XpnHostListWarningData `json:"data,omitempty"`
30974
30975	// Message: [Output Only] A human-readable description of the warning
30976	// code.
30977	Message string `json:"message,omitempty"`
30978
30979	// ForceSendFields is a list of field names (e.g. "Code") to
30980	// unconditionally include in API requests. By default, fields with
30981	// empty values are omitted from API requests. However, any non-pointer,
30982	// non-interface field appearing in ForceSendFields will be sent to the
30983	// server regardless of whether the field is empty or not. This may be
30984	// used to include empty fields in Patch requests.
30985	ForceSendFields []string `json:"-"`
30986
30987	// NullFields is a list of field names (e.g. "Code") to include in API
30988	// requests with the JSON null value. By default, fields with empty
30989	// values are omitted from API requests. However, any field with an
30990	// empty value appearing in NullFields will be sent to the server as
30991	// null. It is an error if a field in this list has a non-empty value.
30992	// This may be used to include null fields in Patch requests.
30993	NullFields []string `json:"-"`
30994}
30995
30996func (s *XpnHostListWarning) MarshalJSON() ([]byte, error) {
30997	type NoMethod XpnHostListWarning
30998	raw := NoMethod(*s)
30999	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31000}
31001
31002type XpnHostListWarningData struct {
31003	// Key: [Output Only] A key that provides more detail on the warning
31004	// being returned. For example, for warnings where there are no results
31005	// in a list request for a particular zone, this key might be scope and
31006	// the key value might be the zone name. Other examples might be a key
31007	// indicating a deprecated resource and a suggested replacement, or a
31008	// warning about invalid network settings (for example, if an instance
31009	// attempts to perform IP forwarding but is not enabled for IP
31010	// forwarding).
31011	Key string `json:"key,omitempty"`
31012
31013	// Value: [Output Only] A warning data value corresponding to the key.
31014	Value string `json:"value,omitempty"`
31015
31016	// ForceSendFields is a list of field names (e.g. "Key") to
31017	// unconditionally include in API requests. By default, fields with
31018	// empty values are omitted from API requests. However, any non-pointer,
31019	// non-interface field appearing in ForceSendFields will be sent to the
31020	// server regardless of whether the field is empty or not. This may be
31021	// used to include empty fields in Patch requests.
31022	ForceSendFields []string `json:"-"`
31023
31024	// NullFields is a list of field names (e.g. "Key") to include in API
31025	// requests with the JSON null value. By default, fields with empty
31026	// values are omitted from API requests. However, any field with an
31027	// empty value appearing in NullFields will be sent to the server as
31028	// null. It is an error if a field in this list has a non-empty value.
31029	// This may be used to include null fields in Patch requests.
31030	NullFields []string `json:"-"`
31031}
31032
31033func (s *XpnHostListWarningData) MarshalJSON() ([]byte, error) {
31034	type NoMethod XpnHostListWarningData
31035	raw := NoMethod(*s)
31036	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31037}
31038
31039// XpnResourceId: Service resource (a.k.a service project) ID.
31040type XpnResourceId struct {
31041	// Id: The ID of the service resource. In the case of projects, this
31042	// field supports project id (e.g., my-project-123) and project number
31043	// (e.g. 12345678).
31044	Id string `json:"id,omitempty"`
31045
31046	// Type: The type of the service resource.
31047	//
31048	// Possible values:
31049	//   "PROJECT"
31050	//   "XPN_RESOURCE_TYPE_UNSPECIFIED"
31051	Type string `json:"type,omitempty"`
31052
31053	// ForceSendFields is a list of field names (e.g. "Id") to
31054	// unconditionally include in API requests. By default, fields with
31055	// empty values are omitted from API requests. However, any non-pointer,
31056	// non-interface field appearing in ForceSendFields will be sent to the
31057	// server regardless of whether the field is empty or not. This may be
31058	// used to include empty fields in Patch requests.
31059	ForceSendFields []string `json:"-"`
31060
31061	// NullFields is a list of field names (e.g. "Id") to include in API
31062	// requests with the JSON null value. By default, fields with empty
31063	// values are omitted from API requests. However, any field with an
31064	// empty value appearing in NullFields will be sent to the server as
31065	// null. It is an error if a field in this list has a non-empty value.
31066	// This may be used to include null fields in Patch requests.
31067	NullFields []string `json:"-"`
31068}
31069
31070func (s *XpnResourceId) MarshalJSON() ([]byte, error) {
31071	type NoMethod XpnResourceId
31072	raw := NoMethod(*s)
31073	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31074}
31075
31076// Zone: A Zone resource. (== resource_for beta.zones ==) (==
31077// resource_for v1.zones ==) Next ID: 17
31078type Zone struct {
31079	// AvailableCpuPlatforms: [Output Only] Available cpu/platform
31080	// selections for the zone.
31081	AvailableCpuPlatforms []string `json:"availableCpuPlatforms,omitempty"`
31082
31083	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
31084	// format.
31085	CreationTimestamp string `json:"creationTimestamp,omitempty"`
31086
31087	// Deprecated: [Output Only] The deprecation status associated with this
31088	// zone.
31089	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
31090
31091	// Description: [Output Only] Textual description of the resource.
31092	Description string `json:"description,omitempty"`
31093
31094	// Id: [Output Only] The unique identifier for the resource. This
31095	// identifier is defined by the server.
31096	Id uint64 `json:"id,omitempty,string"`
31097
31098	// Kind: [Output Only] Type of the resource. Always compute#zone for
31099	// zones.
31100	Kind string `json:"kind,omitempty"`
31101
31102	// Name: [Output Only] Name of the resource.
31103	Name string `json:"name,omitempty"`
31104
31105	// Region: [Output Only] Full URL reference to the region which hosts
31106	// the zone.
31107	Region string `json:"region,omitempty"`
31108
31109	// SelfLink: [Output Only] Server-defined URL for the resource.
31110	SelfLink string `json:"selfLink,omitempty"`
31111
31112	// Status: [Output Only] Status of the zone, either UP or DOWN.
31113	//
31114	// Possible values:
31115	//   "DOWN"
31116	//   "UP"
31117	Status string `json:"status,omitempty"`
31118
31119	// ServerResponse contains the HTTP response code and headers from the
31120	// server.
31121	googleapi.ServerResponse `json:"-"`
31122
31123	// ForceSendFields is a list of field names (e.g.
31124	// "AvailableCpuPlatforms") to unconditionally include in API requests.
31125	// By default, fields with empty values are omitted from API requests.
31126	// However, any non-pointer, non-interface field appearing in
31127	// ForceSendFields will be sent to the server regardless of whether the
31128	// field is empty or not. This may be used to include empty fields in
31129	// Patch requests.
31130	ForceSendFields []string `json:"-"`
31131
31132	// NullFields is a list of field names (e.g. "AvailableCpuPlatforms") to
31133	// include in API requests with the JSON null value. By default, fields
31134	// with empty values are omitted from API requests. However, any field
31135	// with an empty value appearing in NullFields will be sent to the
31136	// server as null. It is an error if a field in this list has a
31137	// non-empty value. This may be used to include null fields in Patch
31138	// requests.
31139	NullFields []string `json:"-"`
31140}
31141
31142func (s *Zone) MarshalJSON() ([]byte, error) {
31143	type NoMethod Zone
31144	raw := NoMethod(*s)
31145	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31146}
31147
31148// ZoneList: Contains a list of zone resources.
31149type ZoneList struct {
31150	// Id: [Output Only] Unique identifier for the resource; defined by the
31151	// server.
31152	Id string `json:"id,omitempty"`
31153
31154	// Items: A list of Zone resources.
31155	Items []*Zone `json:"items,omitempty"`
31156
31157	// Kind: Type of resource.
31158	Kind string `json:"kind,omitempty"`
31159
31160	// NextPageToken: [Output Only] This token allows you to get the next
31161	// page of results for list requests. If the number of results is larger
31162	// than maxResults, use the nextPageToken as a value for the query
31163	// parameter pageToken in the next list request. Subsequent list
31164	// requests will have their own nextPageToken to continue paging through
31165	// the results.
31166	NextPageToken string `json:"nextPageToken,omitempty"`
31167
31168	// SelfLink: [Output Only] Server-defined URL for this resource.
31169	SelfLink string `json:"selfLink,omitempty"`
31170
31171	// Warning: [Output Only] Informational warning message.
31172	Warning *ZoneListWarning `json:"warning,omitempty"`
31173
31174	// ServerResponse contains the HTTP response code and headers from the
31175	// server.
31176	googleapi.ServerResponse `json:"-"`
31177
31178	// ForceSendFields is a list of field names (e.g. "Id") to
31179	// unconditionally include in API requests. By default, fields with
31180	// empty values are omitted from API requests. However, any non-pointer,
31181	// non-interface field appearing in ForceSendFields will be sent to the
31182	// server regardless of whether the field is empty or not. This may be
31183	// used to include empty fields in Patch requests.
31184	ForceSendFields []string `json:"-"`
31185
31186	// NullFields is a list of field names (e.g. "Id") to include in API
31187	// requests with the JSON null value. By default, fields with empty
31188	// values are omitted from API requests. However, any field with an
31189	// empty value appearing in NullFields will be sent to the server as
31190	// null. It is an error if a field in this list has a non-empty value.
31191	// This may be used to include null fields in Patch requests.
31192	NullFields []string `json:"-"`
31193}
31194
31195func (s *ZoneList) MarshalJSON() ([]byte, error) {
31196	type NoMethod ZoneList
31197	raw := NoMethod(*s)
31198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31199}
31200
31201// ZoneListWarning: [Output Only] Informational warning message.
31202type ZoneListWarning struct {
31203	// Code: [Output Only] A warning code, if applicable. For example,
31204	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31205	// the response.
31206	//
31207	// Possible values:
31208	//   "CLEANUP_FAILED"
31209	//   "DEPRECATED_RESOURCE_USED"
31210	//   "DEPRECATED_TYPE_USED"
31211	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31212	//   "EXPERIMENTAL_TYPE_USED"
31213	//   "EXTERNAL_API_WARNING"
31214	//   "FIELD_VALUE_OVERRIDEN"
31215	//   "INJECTED_KERNELS_DEPRECATED"
31216	//   "MISSING_TYPE_DEPENDENCY"
31217	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31218	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31219	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31220	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31221	//   "NEXT_HOP_NOT_RUNNING"
31222	//   "NOT_CRITICAL_ERROR"
31223	//   "NO_RESULTS_ON_PAGE"
31224	//   "REQUIRED_TOS_AGREEMENT"
31225	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31226	//   "RESOURCE_NOT_DELETED"
31227	//   "SCHEMA_VALIDATION_IGNORED"
31228	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31229	//   "UNDECLARED_PROPERTIES"
31230	//   "UNREACHABLE"
31231	Code string `json:"code,omitempty"`
31232
31233	// Data: [Output Only] Metadata about this warning in key: value format.
31234	// For example:
31235	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31236	Data []*ZoneListWarningData `json:"data,omitempty"`
31237
31238	// Message: [Output Only] A human-readable description of the warning
31239	// code.
31240	Message string `json:"message,omitempty"`
31241
31242	// ForceSendFields is a list of field names (e.g. "Code") to
31243	// unconditionally include in API requests. By default, fields with
31244	// empty values are omitted from API requests. However, any non-pointer,
31245	// non-interface field appearing in ForceSendFields will be sent to the
31246	// server regardless of whether the field is empty or not. This may be
31247	// used to include empty fields in Patch requests.
31248	ForceSendFields []string `json:"-"`
31249
31250	// NullFields is a list of field names (e.g. "Code") to include in API
31251	// requests with the JSON null value. By default, fields with empty
31252	// values are omitted from API requests. However, any field with an
31253	// empty value appearing in NullFields will be sent to the server as
31254	// null. It is an error if a field in this list has a non-empty value.
31255	// This may be used to include null fields in Patch requests.
31256	NullFields []string `json:"-"`
31257}
31258
31259func (s *ZoneListWarning) MarshalJSON() ([]byte, error) {
31260	type NoMethod ZoneListWarning
31261	raw := NoMethod(*s)
31262	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31263}
31264
31265type ZoneListWarningData struct {
31266	// Key: [Output Only] A key that provides more detail on the warning
31267	// being returned. For example, for warnings where there are no results
31268	// in a list request for a particular zone, this key might be scope and
31269	// the key value might be the zone name. Other examples might be a key
31270	// indicating a deprecated resource and a suggested replacement, or a
31271	// warning about invalid network settings (for example, if an instance
31272	// attempts to perform IP forwarding but is not enabled for IP
31273	// forwarding).
31274	Key string `json:"key,omitempty"`
31275
31276	// Value: [Output Only] A warning data value corresponding to the key.
31277	Value string `json:"value,omitempty"`
31278
31279	// ForceSendFields is a list of field names (e.g. "Key") to
31280	// unconditionally include in API requests. By default, fields with
31281	// empty values are omitted from API requests. However, any non-pointer,
31282	// non-interface field appearing in ForceSendFields will be sent to the
31283	// server regardless of whether the field is empty or not. This may be
31284	// used to include empty fields in Patch requests.
31285	ForceSendFields []string `json:"-"`
31286
31287	// NullFields is a list of field names (e.g. "Key") to include in API
31288	// requests with the JSON null value. By default, fields with empty
31289	// values are omitted from API requests. However, any field with an
31290	// empty value appearing in NullFields will be sent to the server as
31291	// null. It is an error if a field in this list has a non-empty value.
31292	// This may be used to include null fields in Patch requests.
31293	NullFields []string `json:"-"`
31294}
31295
31296func (s *ZoneListWarningData) MarshalJSON() ([]byte, error) {
31297	type NoMethod ZoneListWarningData
31298	raw := NoMethod(*s)
31299	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31300}
31301
31302type ZoneSetLabelsRequest struct {
31303	// LabelFingerprint: The fingerprint of the previous set of labels for
31304	// this resource, used to detect conflicts. The fingerprint is initially
31305	// generated by Compute Engine and changes after every request to modify
31306	// or update labels. You must always provide an up-to-date fingerprint
31307	// hash in order to update or change labels. Make a get() request to the
31308	// resource to get the latest fingerprint.
31309	LabelFingerprint string `json:"labelFingerprint,omitempty"`
31310
31311	// Labels: The labels to set for this resource.
31312	Labels map[string]string `json:"labels,omitempty"`
31313
31314	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
31315	// unconditionally include in API requests. By default, fields with
31316	// empty values are omitted from API requests. However, any non-pointer,
31317	// non-interface field appearing in ForceSendFields will be sent to the
31318	// server regardless of whether the field is empty or not. This may be
31319	// used to include empty fields in Patch requests.
31320	ForceSendFields []string `json:"-"`
31321
31322	// NullFields is a list of field names (e.g. "LabelFingerprint") to
31323	// include in API requests with the JSON null value. By default, fields
31324	// with empty values are omitted from API requests. However, any field
31325	// with an empty value appearing in NullFields will be sent to the
31326	// server as null. It is an error if a field in this list has a
31327	// non-empty value. This may be used to include null fields in Patch
31328	// requests.
31329	NullFields []string `json:"-"`
31330}
31331
31332func (s *ZoneSetLabelsRequest) MarshalJSON() ([]byte, error) {
31333	type NoMethod ZoneSetLabelsRequest
31334	raw := NoMethod(*s)
31335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31336}
31337
31338type ZoneSetPolicyRequest struct {
31339	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
31340	// Deprecated. Use 'policy' to specify bindings.
31341	Bindings []*Binding `json:"bindings,omitempty"`
31342
31343	// Etag: Flatten Policy to create a backward compatible wire-format.
31344	// Deprecated. Use 'policy' to specify the etag.
31345	Etag string `json:"etag,omitempty"`
31346
31347	// Policy: REQUIRED: The complete policy to be applied to the
31348	// 'resource'. The size of the policy is limited to a few 10s of KB. An
31349	// empty policy is in general a valid policy but certain services (like
31350	// Projects) might reject them.
31351	Policy *Policy `json:"policy,omitempty"`
31352
31353	// ForceSendFields is a list of field names (e.g. "Bindings") to
31354	// unconditionally include in API requests. By default, fields with
31355	// empty values are omitted from API requests. However, any non-pointer,
31356	// non-interface field appearing in ForceSendFields will be sent to the
31357	// server regardless of whether the field is empty or not. This may be
31358	// used to include empty fields in Patch requests.
31359	ForceSendFields []string `json:"-"`
31360
31361	// NullFields is a list of field names (e.g. "Bindings") to include in
31362	// API requests with the JSON null value. By default, fields with empty
31363	// values are omitted from API requests. However, any field with an
31364	// empty value appearing in NullFields will be sent to the server as
31365	// null. It is an error if a field in this list has a non-empty value.
31366	// This may be used to include null fields in Patch requests.
31367	NullFields []string `json:"-"`
31368}
31369
31370func (s *ZoneSetPolicyRequest) MarshalJSON() ([]byte, error) {
31371	type NoMethod ZoneSetPolicyRequest
31372	raw := NoMethod(*s)
31373	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31374}
31375
31376// method id "compute.acceleratorTypes.aggregatedList":
31377
31378type AcceleratorTypesAggregatedListCall struct {
31379	s            *Service
31380	project      string
31381	urlParams_   gensupport.URLParams
31382	ifNoneMatch_ string
31383	ctx_         context.Context
31384	header_      http.Header
31385}
31386
31387// AggregatedList: Retrieves an aggregated list of accelerator types.
31388func (r *AcceleratorTypesService) AggregatedList(project string) *AcceleratorTypesAggregatedListCall {
31389	c := &AcceleratorTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31390	c.project = project
31391	return c
31392}
31393
31394// Filter sets the optional parameter "filter": A filter expression that
31395// filters resources listed in the response. The expression must specify
31396// the field name, a comparison operator, and the value that you want to
31397// use for filtering. The value must be a string, a number, or a
31398// boolean. The comparison operator must be either =, !=, >, or <.
31399//
31400// For example, if you are filtering Compute Engine instances, you can
31401// exclude instances named example-instance by specifying name !=
31402// example-instance.
31403//
31404// You can also filter nested fields. For example, you could specify
31405// scheduling.automaticRestart = false to include instances only if they
31406// are not scheduled for automatic restarts. You can use filtering on
31407// nested fields to filter based on resource labels.
31408//
31409// To filter on multiple expressions, provide each separate expression
31410// within parentheses. For example, (scheduling.automaticRestart = true)
31411// (cpuPlatform = "Intel Skylake"). By default, each expression is an
31412// AND expression. However, you can include AND and OR expressions
31413// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
31414// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
31415// true).
31416func (c *AcceleratorTypesAggregatedListCall) Filter(filter string) *AcceleratorTypesAggregatedListCall {
31417	c.urlParams_.Set("filter", filter)
31418	return c
31419}
31420
31421// MaxResults sets the optional parameter "maxResults": The maximum
31422// number of results per page that should be returned. If the number of
31423// available results is larger than maxResults, Compute Engine returns a
31424// nextPageToken that can be used to get the next page of results in
31425// subsequent list requests. Acceptable values are 0 to 500, inclusive.
31426// (Default: 500)
31427func (c *AcceleratorTypesAggregatedListCall) MaxResults(maxResults int64) *AcceleratorTypesAggregatedListCall {
31428	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
31429	return c
31430}
31431
31432// OrderBy sets the optional parameter "orderBy": Sorts list results by
31433// a certain order. By default, results are returned in alphanumerical
31434// order based on the resource name.
31435//
31436// You can also sort results in descending order based on the creation
31437// timestamp using orderBy="creationTimestamp desc". This sorts results
31438// based on the creationTimestamp field in reverse chronological order
31439// (newest result first). Use this to sort resources like operations so
31440// that the newest operation is returned first.
31441//
31442// Currently, only sorting by name or creationTimestamp desc is
31443// supported.
31444func (c *AcceleratorTypesAggregatedListCall) OrderBy(orderBy string) *AcceleratorTypesAggregatedListCall {
31445	c.urlParams_.Set("orderBy", orderBy)
31446	return c
31447}
31448
31449// PageToken sets the optional parameter "pageToken": Specifies a page
31450// token to use. Set pageToken to the nextPageToken returned by a
31451// previous list request to get the next page of results.
31452func (c *AcceleratorTypesAggregatedListCall) PageToken(pageToken string) *AcceleratorTypesAggregatedListCall {
31453	c.urlParams_.Set("pageToken", pageToken)
31454	return c
31455}
31456
31457// Fields allows partial responses to be retrieved. See
31458// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31459// for more information.
31460func (c *AcceleratorTypesAggregatedListCall) Fields(s ...googleapi.Field) *AcceleratorTypesAggregatedListCall {
31461	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31462	return c
31463}
31464
31465// IfNoneMatch sets the optional parameter which makes the operation
31466// fail if the object's ETag matches the given value. This is useful for
31467// getting updates only after the object has changed since the last
31468// request. Use googleapi.IsNotModified to check whether the response
31469// error from Do is the result of In-None-Match.
31470func (c *AcceleratorTypesAggregatedListCall) IfNoneMatch(entityTag string) *AcceleratorTypesAggregatedListCall {
31471	c.ifNoneMatch_ = entityTag
31472	return c
31473}
31474
31475// Context sets the context to be used in this call's Do method. Any
31476// pending HTTP request will be aborted if the provided context is
31477// canceled.
31478func (c *AcceleratorTypesAggregatedListCall) Context(ctx context.Context) *AcceleratorTypesAggregatedListCall {
31479	c.ctx_ = ctx
31480	return c
31481}
31482
31483// Header returns an http.Header that can be modified by the caller to
31484// add HTTP headers to the request.
31485func (c *AcceleratorTypesAggregatedListCall) Header() http.Header {
31486	if c.header_ == nil {
31487		c.header_ = make(http.Header)
31488	}
31489	return c.header_
31490}
31491
31492func (c *AcceleratorTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
31493	reqHeaders := make(http.Header)
31494	for k, v := range c.header_ {
31495		reqHeaders[k] = v
31496	}
31497	reqHeaders.Set("User-Agent", c.s.userAgent())
31498	if c.ifNoneMatch_ != "" {
31499		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
31500	}
31501	var body io.Reader = nil
31502	c.urlParams_.Set("alt", alt)
31503	c.urlParams_.Set("prettyPrint", "false")
31504	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/acceleratorTypes")
31505	urls += "?" + c.urlParams_.Encode()
31506	req, err := http.NewRequest("GET", urls, body)
31507	if err != nil {
31508		return nil, err
31509	}
31510	req.Header = reqHeaders
31511	googleapi.Expand(req.URL, map[string]string{
31512		"project": c.project,
31513	})
31514	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31515}
31516
31517// Do executes the "compute.acceleratorTypes.aggregatedList" call.
31518// Exactly one of *AcceleratorTypeAggregatedList or error will be
31519// non-nil. Any non-2xx status code is an error. Response headers are in
31520// either *AcceleratorTypeAggregatedList.ServerResponse.Header or (if a
31521// response was returned at all) in error.(*googleapi.Error).Header. Use
31522// googleapi.IsNotModified to check whether the returned error was
31523// because http.StatusNotModified was returned.
31524func (c *AcceleratorTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeAggregatedList, error) {
31525	gensupport.SetOptions(c.urlParams_, opts...)
31526	res, err := c.doRequest("json")
31527	if res != nil && res.StatusCode == http.StatusNotModified {
31528		if res.Body != nil {
31529			res.Body.Close()
31530		}
31531		return nil, &googleapi.Error{
31532			Code:   res.StatusCode,
31533			Header: res.Header,
31534		}
31535	}
31536	if err != nil {
31537		return nil, err
31538	}
31539	defer googleapi.CloseBody(res)
31540	if err := googleapi.CheckResponse(res); err != nil {
31541		return nil, err
31542	}
31543	ret := &AcceleratorTypeAggregatedList{
31544		ServerResponse: googleapi.ServerResponse{
31545			Header:         res.Header,
31546			HTTPStatusCode: res.StatusCode,
31547		},
31548	}
31549	target := &ret
31550	if err := gensupport.DecodeResponse(target, res); err != nil {
31551		return nil, err
31552	}
31553	return ret, nil
31554	// {
31555	//   "description": "Retrieves an aggregated list of accelerator types.",
31556	//   "httpMethod": "GET",
31557	//   "id": "compute.acceleratorTypes.aggregatedList",
31558	//   "parameterOrder": [
31559	//     "project"
31560	//   ],
31561	//   "parameters": {
31562	//     "filter": {
31563	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
31564	//       "location": "query",
31565	//       "type": "string"
31566	//     },
31567	//     "maxResults": {
31568	//       "default": "500",
31569	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
31570	//       "format": "uint32",
31571	//       "location": "query",
31572	//       "minimum": "0",
31573	//       "type": "integer"
31574	//     },
31575	//     "orderBy": {
31576	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
31577	//       "location": "query",
31578	//       "type": "string"
31579	//     },
31580	//     "pageToken": {
31581	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
31582	//       "location": "query",
31583	//       "type": "string"
31584	//     },
31585	//     "project": {
31586	//       "description": "Project ID for this request.",
31587	//       "location": "path",
31588	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
31589	//       "required": true,
31590	//       "type": "string"
31591	//     }
31592	//   },
31593	//   "path": "{project}/aggregated/acceleratorTypes",
31594	//   "response": {
31595	//     "$ref": "AcceleratorTypeAggregatedList"
31596	//   },
31597	//   "scopes": [
31598	//     "https://www.googleapis.com/auth/cloud-platform",
31599	//     "https://www.googleapis.com/auth/compute",
31600	//     "https://www.googleapis.com/auth/compute.readonly"
31601	//   ]
31602	// }
31603
31604}
31605
31606// Pages invokes f for each page of results.
31607// A non-nil error returned from f will halt the iteration.
31608// The provided context supersedes any context provided to the Context method.
31609func (c *AcceleratorTypesAggregatedListCall) Pages(ctx context.Context, f func(*AcceleratorTypeAggregatedList) error) error {
31610	c.ctx_ = ctx
31611	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
31612	for {
31613		x, err := c.Do()
31614		if err != nil {
31615			return err
31616		}
31617		if err := f(x); err != nil {
31618			return err
31619		}
31620		if x.NextPageToken == "" {
31621			return nil
31622		}
31623		c.PageToken(x.NextPageToken)
31624	}
31625}
31626
31627// method id "compute.acceleratorTypes.get":
31628
31629type AcceleratorTypesGetCall struct {
31630	s               *Service
31631	project         string
31632	zone            string
31633	acceleratorType string
31634	urlParams_      gensupport.URLParams
31635	ifNoneMatch_    string
31636	ctx_            context.Context
31637	header_         http.Header
31638}
31639
31640// Get: Returns the specified accelerator type.
31641func (r *AcceleratorTypesService) Get(project string, zone string, acceleratorType string) *AcceleratorTypesGetCall {
31642	c := &AcceleratorTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31643	c.project = project
31644	c.zone = zone
31645	c.acceleratorType = acceleratorType
31646	return c
31647}
31648
31649// Fields allows partial responses to be retrieved. See
31650// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31651// for more information.
31652func (c *AcceleratorTypesGetCall) Fields(s ...googleapi.Field) *AcceleratorTypesGetCall {
31653	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31654	return c
31655}
31656
31657// IfNoneMatch sets the optional parameter which makes the operation
31658// fail if the object's ETag matches the given value. This is useful for
31659// getting updates only after the object has changed since the last
31660// request. Use googleapi.IsNotModified to check whether the response
31661// error from Do is the result of In-None-Match.
31662func (c *AcceleratorTypesGetCall) IfNoneMatch(entityTag string) *AcceleratorTypesGetCall {
31663	c.ifNoneMatch_ = entityTag
31664	return c
31665}
31666
31667// Context sets the context to be used in this call's Do method. Any
31668// pending HTTP request will be aborted if the provided context is
31669// canceled.
31670func (c *AcceleratorTypesGetCall) Context(ctx context.Context) *AcceleratorTypesGetCall {
31671	c.ctx_ = ctx
31672	return c
31673}
31674
31675// Header returns an http.Header that can be modified by the caller to
31676// add HTTP headers to the request.
31677func (c *AcceleratorTypesGetCall) Header() http.Header {
31678	if c.header_ == nil {
31679		c.header_ = make(http.Header)
31680	}
31681	return c.header_
31682}
31683
31684func (c *AcceleratorTypesGetCall) doRequest(alt string) (*http.Response, error) {
31685	reqHeaders := make(http.Header)
31686	for k, v := range c.header_ {
31687		reqHeaders[k] = v
31688	}
31689	reqHeaders.Set("User-Agent", c.s.userAgent())
31690	if c.ifNoneMatch_ != "" {
31691		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
31692	}
31693	var body io.Reader = nil
31694	c.urlParams_.Set("alt", alt)
31695	c.urlParams_.Set("prettyPrint", "false")
31696	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/acceleratorTypes/{acceleratorType}")
31697	urls += "?" + c.urlParams_.Encode()
31698	req, err := http.NewRequest("GET", urls, body)
31699	if err != nil {
31700		return nil, err
31701	}
31702	req.Header = reqHeaders
31703	googleapi.Expand(req.URL, map[string]string{
31704		"project":         c.project,
31705		"zone":            c.zone,
31706		"acceleratorType": c.acceleratorType,
31707	})
31708	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31709}
31710
31711// Do executes the "compute.acceleratorTypes.get" call.
31712// Exactly one of *AcceleratorType or error will be non-nil. Any non-2xx
31713// status code is an error. Response headers are in either
31714// *AcceleratorType.ServerResponse.Header or (if a response was returned
31715// at all) in error.(*googleapi.Error).Header. Use
31716// googleapi.IsNotModified to check whether the returned error was
31717// because http.StatusNotModified was returned.
31718func (c *AcceleratorTypesGetCall) Do(opts ...googleapi.CallOption) (*AcceleratorType, error) {
31719	gensupport.SetOptions(c.urlParams_, opts...)
31720	res, err := c.doRequest("json")
31721	if res != nil && res.StatusCode == http.StatusNotModified {
31722		if res.Body != nil {
31723			res.Body.Close()
31724		}
31725		return nil, &googleapi.Error{
31726			Code:   res.StatusCode,
31727			Header: res.Header,
31728		}
31729	}
31730	if err != nil {
31731		return nil, err
31732	}
31733	defer googleapi.CloseBody(res)
31734	if err := googleapi.CheckResponse(res); err != nil {
31735		return nil, err
31736	}
31737	ret := &AcceleratorType{
31738		ServerResponse: googleapi.ServerResponse{
31739			Header:         res.Header,
31740			HTTPStatusCode: res.StatusCode,
31741		},
31742	}
31743	target := &ret
31744	if err := gensupport.DecodeResponse(target, res); err != nil {
31745		return nil, err
31746	}
31747	return ret, nil
31748	// {
31749	//   "description": "Returns the specified accelerator type.",
31750	//   "httpMethod": "GET",
31751	//   "id": "compute.acceleratorTypes.get",
31752	//   "parameterOrder": [
31753	//     "project",
31754	//     "zone",
31755	//     "acceleratorType"
31756	//   ],
31757	//   "parameters": {
31758	//     "acceleratorType": {
31759	//       "description": "Name of the accelerator type to return.",
31760	//       "location": "path",
31761	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
31762	//       "required": true,
31763	//       "type": "string"
31764	//     },
31765	//     "project": {
31766	//       "description": "Project ID for this request.",
31767	//       "location": "path",
31768	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
31769	//       "required": true,
31770	//       "type": "string"
31771	//     },
31772	//     "zone": {
31773	//       "description": "The name of the zone for this request.",
31774	//       "location": "path",
31775	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
31776	//       "required": true,
31777	//       "type": "string"
31778	//     }
31779	//   },
31780	//   "path": "{project}/zones/{zone}/acceleratorTypes/{acceleratorType}",
31781	//   "response": {
31782	//     "$ref": "AcceleratorType"
31783	//   },
31784	//   "scopes": [
31785	//     "https://www.googleapis.com/auth/cloud-platform",
31786	//     "https://www.googleapis.com/auth/compute",
31787	//     "https://www.googleapis.com/auth/compute.readonly"
31788	//   ]
31789	// }
31790
31791}
31792
31793// method id "compute.acceleratorTypes.list":
31794
31795type AcceleratorTypesListCall struct {
31796	s            *Service
31797	project      string
31798	zone         string
31799	urlParams_   gensupport.URLParams
31800	ifNoneMatch_ string
31801	ctx_         context.Context
31802	header_      http.Header
31803}
31804
31805// List: Retrieves a list of accelerator types available to the
31806// specified project.
31807func (r *AcceleratorTypesService) List(project string, zone string) *AcceleratorTypesListCall {
31808	c := &AcceleratorTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31809	c.project = project
31810	c.zone = zone
31811	return c
31812}
31813
31814// Filter sets the optional parameter "filter": A filter expression that
31815// filters resources listed in the response. The expression must specify
31816// the field name, a comparison operator, and the value that you want to
31817// use for filtering. The value must be a string, a number, or a
31818// boolean. The comparison operator must be either =, !=, >, or <.
31819//
31820// For example, if you are filtering Compute Engine instances, you can
31821// exclude instances named example-instance by specifying name !=
31822// example-instance.
31823//
31824// You can also filter nested fields. For example, you could specify
31825// scheduling.automaticRestart = false to include instances only if they
31826// are not scheduled for automatic restarts. You can use filtering on
31827// nested fields to filter based on resource labels.
31828//
31829// To filter on multiple expressions, provide each separate expression
31830// within parentheses. For example, (scheduling.automaticRestart = true)
31831// (cpuPlatform = "Intel Skylake"). By default, each expression is an
31832// AND expression. However, you can include AND and OR expressions
31833// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
31834// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
31835// true).
31836func (c *AcceleratorTypesListCall) Filter(filter string) *AcceleratorTypesListCall {
31837	c.urlParams_.Set("filter", filter)
31838	return c
31839}
31840
31841// MaxResults sets the optional parameter "maxResults": The maximum
31842// number of results per page that should be returned. If the number of
31843// available results is larger than maxResults, Compute Engine returns a
31844// nextPageToken that can be used to get the next page of results in
31845// subsequent list requests. Acceptable values are 0 to 500, inclusive.
31846// (Default: 500)
31847func (c *AcceleratorTypesListCall) MaxResults(maxResults int64) *AcceleratorTypesListCall {
31848	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
31849	return c
31850}
31851
31852// OrderBy sets the optional parameter "orderBy": Sorts list results by
31853// a certain order. By default, results are returned in alphanumerical
31854// order based on the resource name.
31855//
31856// You can also sort results in descending order based on the creation
31857// timestamp using orderBy="creationTimestamp desc". This sorts results
31858// based on the creationTimestamp field in reverse chronological order
31859// (newest result first). Use this to sort resources like operations so
31860// that the newest operation is returned first.
31861//
31862// Currently, only sorting by name or creationTimestamp desc is
31863// supported.
31864func (c *AcceleratorTypesListCall) OrderBy(orderBy string) *AcceleratorTypesListCall {
31865	c.urlParams_.Set("orderBy", orderBy)
31866	return c
31867}
31868
31869// PageToken sets the optional parameter "pageToken": Specifies a page
31870// token to use. Set pageToken to the nextPageToken returned by a
31871// previous list request to get the next page of results.
31872func (c *AcceleratorTypesListCall) PageToken(pageToken string) *AcceleratorTypesListCall {
31873	c.urlParams_.Set("pageToken", pageToken)
31874	return c
31875}
31876
31877// Fields allows partial responses to be retrieved. See
31878// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31879// for more information.
31880func (c *AcceleratorTypesListCall) Fields(s ...googleapi.Field) *AcceleratorTypesListCall {
31881	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31882	return c
31883}
31884
31885// IfNoneMatch sets the optional parameter which makes the operation
31886// fail if the object's ETag matches the given value. This is useful for
31887// getting updates only after the object has changed since the last
31888// request. Use googleapi.IsNotModified to check whether the response
31889// error from Do is the result of In-None-Match.
31890func (c *AcceleratorTypesListCall) IfNoneMatch(entityTag string) *AcceleratorTypesListCall {
31891	c.ifNoneMatch_ = entityTag
31892	return c
31893}
31894
31895// Context sets the context to be used in this call's Do method. Any
31896// pending HTTP request will be aborted if the provided context is
31897// canceled.
31898func (c *AcceleratorTypesListCall) Context(ctx context.Context) *AcceleratorTypesListCall {
31899	c.ctx_ = ctx
31900	return c
31901}
31902
31903// Header returns an http.Header that can be modified by the caller to
31904// add HTTP headers to the request.
31905func (c *AcceleratorTypesListCall) Header() http.Header {
31906	if c.header_ == nil {
31907		c.header_ = make(http.Header)
31908	}
31909	return c.header_
31910}
31911
31912func (c *AcceleratorTypesListCall) doRequest(alt string) (*http.Response, error) {
31913	reqHeaders := make(http.Header)
31914	for k, v := range c.header_ {
31915		reqHeaders[k] = v
31916	}
31917	reqHeaders.Set("User-Agent", c.s.userAgent())
31918	if c.ifNoneMatch_ != "" {
31919		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
31920	}
31921	var body io.Reader = nil
31922	c.urlParams_.Set("alt", alt)
31923	c.urlParams_.Set("prettyPrint", "false")
31924	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/acceleratorTypes")
31925	urls += "?" + c.urlParams_.Encode()
31926	req, err := http.NewRequest("GET", urls, body)
31927	if err != nil {
31928		return nil, err
31929	}
31930	req.Header = reqHeaders
31931	googleapi.Expand(req.URL, map[string]string{
31932		"project": c.project,
31933		"zone":    c.zone,
31934	})
31935	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31936}
31937
31938// Do executes the "compute.acceleratorTypes.list" call.
31939// Exactly one of *AcceleratorTypeList or error will be non-nil. Any
31940// non-2xx status code is an error. Response headers are in either
31941// *AcceleratorTypeList.ServerResponse.Header or (if a response was
31942// returned at all) in error.(*googleapi.Error).Header. Use
31943// googleapi.IsNotModified to check whether the returned error was
31944// because http.StatusNotModified was returned.
31945func (c *AcceleratorTypesListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeList, error) {
31946	gensupport.SetOptions(c.urlParams_, opts...)
31947	res, err := c.doRequest("json")
31948	if res != nil && res.StatusCode == http.StatusNotModified {
31949		if res.Body != nil {
31950			res.Body.Close()
31951		}
31952		return nil, &googleapi.Error{
31953			Code:   res.StatusCode,
31954			Header: res.Header,
31955		}
31956	}
31957	if err != nil {
31958		return nil, err
31959	}
31960	defer googleapi.CloseBody(res)
31961	if err := googleapi.CheckResponse(res); err != nil {
31962		return nil, err
31963	}
31964	ret := &AcceleratorTypeList{
31965		ServerResponse: googleapi.ServerResponse{
31966			Header:         res.Header,
31967			HTTPStatusCode: res.StatusCode,
31968		},
31969	}
31970	target := &ret
31971	if err := gensupport.DecodeResponse(target, res); err != nil {
31972		return nil, err
31973	}
31974	return ret, nil
31975	// {
31976	//   "description": "Retrieves a list of accelerator types available to the specified project.",
31977	//   "httpMethod": "GET",
31978	//   "id": "compute.acceleratorTypes.list",
31979	//   "parameterOrder": [
31980	//     "project",
31981	//     "zone"
31982	//   ],
31983	//   "parameters": {
31984	//     "filter": {
31985	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
31986	//       "location": "query",
31987	//       "type": "string"
31988	//     },
31989	//     "maxResults": {
31990	//       "default": "500",
31991	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
31992	//       "format": "uint32",
31993	//       "location": "query",
31994	//       "minimum": "0",
31995	//       "type": "integer"
31996	//     },
31997	//     "orderBy": {
31998	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
31999	//       "location": "query",
32000	//       "type": "string"
32001	//     },
32002	//     "pageToken": {
32003	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
32004	//       "location": "query",
32005	//       "type": "string"
32006	//     },
32007	//     "project": {
32008	//       "description": "Project ID for this request.",
32009	//       "location": "path",
32010	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
32011	//       "required": true,
32012	//       "type": "string"
32013	//     },
32014	//     "zone": {
32015	//       "description": "The name of the zone for this request.",
32016	//       "location": "path",
32017	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
32018	//       "required": true,
32019	//       "type": "string"
32020	//     }
32021	//   },
32022	//   "path": "{project}/zones/{zone}/acceleratorTypes",
32023	//   "response": {
32024	//     "$ref": "AcceleratorTypeList"
32025	//   },
32026	//   "scopes": [
32027	//     "https://www.googleapis.com/auth/cloud-platform",
32028	//     "https://www.googleapis.com/auth/compute",
32029	//     "https://www.googleapis.com/auth/compute.readonly"
32030	//   ]
32031	// }
32032
32033}
32034
32035// Pages invokes f for each page of results.
32036// A non-nil error returned from f will halt the iteration.
32037// The provided context supersedes any context provided to the Context method.
32038func (c *AcceleratorTypesListCall) Pages(ctx context.Context, f func(*AcceleratorTypeList) error) error {
32039	c.ctx_ = ctx
32040	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
32041	for {
32042		x, err := c.Do()
32043		if err != nil {
32044			return err
32045		}
32046		if err := f(x); err != nil {
32047			return err
32048		}
32049		if x.NextPageToken == "" {
32050			return nil
32051		}
32052		c.PageToken(x.NextPageToken)
32053	}
32054}
32055
32056// method id "compute.addresses.aggregatedList":
32057
32058type AddressesAggregatedListCall struct {
32059	s            *Service
32060	project      string
32061	urlParams_   gensupport.URLParams
32062	ifNoneMatch_ string
32063	ctx_         context.Context
32064	header_      http.Header
32065}
32066
32067// AggregatedList: Retrieves an aggregated list of addresses.
32068// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/aggregatedList
32069func (r *AddressesService) AggregatedList(project string) *AddressesAggregatedListCall {
32070	c := &AddressesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32071	c.project = project
32072	return c
32073}
32074
32075// Filter sets the optional parameter "filter": A filter expression that
32076// filters resources listed in the response. The expression must specify
32077// the field name, a comparison operator, and the value that you want to
32078// use for filtering. The value must be a string, a number, or a
32079// boolean. The comparison operator must be either =, !=, >, or <.
32080//
32081// For example, if you are filtering Compute Engine instances, you can
32082// exclude instances named example-instance by specifying name !=
32083// example-instance.
32084//
32085// You can also filter nested fields. For example, you could specify
32086// scheduling.automaticRestart = false to include instances only if they
32087// are not scheduled for automatic restarts. You can use filtering on
32088// nested fields to filter based on resource labels.
32089//
32090// To filter on multiple expressions, provide each separate expression
32091// within parentheses. For example, (scheduling.automaticRestart = true)
32092// (cpuPlatform = "Intel Skylake"). By default, each expression is an
32093// AND expression. However, you can include AND and OR expressions
32094// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
32095// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
32096// true).
32097func (c *AddressesAggregatedListCall) Filter(filter string) *AddressesAggregatedListCall {
32098	c.urlParams_.Set("filter", filter)
32099	return c
32100}
32101
32102// MaxResults sets the optional parameter "maxResults": The maximum
32103// number of results per page that should be returned. If the number of
32104// available results is larger than maxResults, Compute Engine returns a
32105// nextPageToken that can be used to get the next page of results in
32106// subsequent list requests. Acceptable values are 0 to 500, inclusive.
32107// (Default: 500)
32108func (c *AddressesAggregatedListCall) MaxResults(maxResults int64) *AddressesAggregatedListCall {
32109	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
32110	return c
32111}
32112
32113// OrderBy sets the optional parameter "orderBy": Sorts list results by
32114// a certain order. By default, results are returned in alphanumerical
32115// order based on the resource name.
32116//
32117// You can also sort results in descending order based on the creation
32118// timestamp using orderBy="creationTimestamp desc". This sorts results
32119// based on the creationTimestamp field in reverse chronological order
32120// (newest result first). Use this to sort resources like operations so
32121// that the newest operation is returned first.
32122//
32123// Currently, only sorting by name or creationTimestamp desc is
32124// supported.
32125func (c *AddressesAggregatedListCall) OrderBy(orderBy string) *AddressesAggregatedListCall {
32126	c.urlParams_.Set("orderBy", orderBy)
32127	return c
32128}
32129
32130// PageToken sets the optional parameter "pageToken": Specifies a page
32131// token to use. Set pageToken to the nextPageToken returned by a
32132// previous list request to get the next page of results.
32133func (c *AddressesAggregatedListCall) PageToken(pageToken string) *AddressesAggregatedListCall {
32134	c.urlParams_.Set("pageToken", pageToken)
32135	return c
32136}
32137
32138// Fields allows partial responses to be retrieved. See
32139// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32140// for more information.
32141func (c *AddressesAggregatedListCall) Fields(s ...googleapi.Field) *AddressesAggregatedListCall {
32142	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32143	return c
32144}
32145
32146// IfNoneMatch sets the optional parameter which makes the operation
32147// fail if the object's ETag matches the given value. This is useful for
32148// getting updates only after the object has changed since the last
32149// request. Use googleapi.IsNotModified to check whether the response
32150// error from Do is the result of In-None-Match.
32151func (c *AddressesAggregatedListCall) IfNoneMatch(entityTag string) *AddressesAggregatedListCall {
32152	c.ifNoneMatch_ = entityTag
32153	return c
32154}
32155
32156// Context sets the context to be used in this call's Do method. Any
32157// pending HTTP request will be aborted if the provided context is
32158// canceled.
32159func (c *AddressesAggregatedListCall) Context(ctx context.Context) *AddressesAggregatedListCall {
32160	c.ctx_ = ctx
32161	return c
32162}
32163
32164// Header returns an http.Header that can be modified by the caller to
32165// add HTTP headers to the request.
32166func (c *AddressesAggregatedListCall) Header() http.Header {
32167	if c.header_ == nil {
32168		c.header_ = make(http.Header)
32169	}
32170	return c.header_
32171}
32172
32173func (c *AddressesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
32174	reqHeaders := make(http.Header)
32175	for k, v := range c.header_ {
32176		reqHeaders[k] = v
32177	}
32178	reqHeaders.Set("User-Agent", c.s.userAgent())
32179	if c.ifNoneMatch_ != "" {
32180		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
32181	}
32182	var body io.Reader = nil
32183	c.urlParams_.Set("alt", alt)
32184	c.urlParams_.Set("prettyPrint", "false")
32185	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/addresses")
32186	urls += "?" + c.urlParams_.Encode()
32187	req, err := http.NewRequest("GET", urls, body)
32188	if err != nil {
32189		return nil, err
32190	}
32191	req.Header = reqHeaders
32192	googleapi.Expand(req.URL, map[string]string{
32193		"project": c.project,
32194	})
32195	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32196}
32197
32198// Do executes the "compute.addresses.aggregatedList" call.
32199// Exactly one of *AddressAggregatedList or error will be non-nil. Any
32200// non-2xx status code is an error. Response headers are in either
32201// *AddressAggregatedList.ServerResponse.Header or (if a response was
32202// returned at all) in error.(*googleapi.Error).Header. Use
32203// googleapi.IsNotModified to check whether the returned error was
32204// because http.StatusNotModified was returned.
32205func (c *AddressesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AddressAggregatedList, error) {
32206	gensupport.SetOptions(c.urlParams_, opts...)
32207	res, err := c.doRequest("json")
32208	if res != nil && res.StatusCode == http.StatusNotModified {
32209		if res.Body != nil {
32210			res.Body.Close()
32211		}
32212		return nil, &googleapi.Error{
32213			Code:   res.StatusCode,
32214			Header: res.Header,
32215		}
32216	}
32217	if err != nil {
32218		return nil, err
32219	}
32220	defer googleapi.CloseBody(res)
32221	if err := googleapi.CheckResponse(res); err != nil {
32222		return nil, err
32223	}
32224	ret := &AddressAggregatedList{
32225		ServerResponse: googleapi.ServerResponse{
32226			Header:         res.Header,
32227			HTTPStatusCode: res.StatusCode,
32228		},
32229	}
32230	target := &ret
32231	if err := gensupport.DecodeResponse(target, res); err != nil {
32232		return nil, err
32233	}
32234	return ret, nil
32235	// {
32236	//   "description": "Retrieves an aggregated list of addresses.",
32237	//   "httpMethod": "GET",
32238	//   "id": "compute.addresses.aggregatedList",
32239	//   "parameterOrder": [
32240	//     "project"
32241	//   ],
32242	//   "parameters": {
32243	//     "filter": {
32244	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
32245	//       "location": "query",
32246	//       "type": "string"
32247	//     },
32248	//     "maxResults": {
32249	//       "default": "500",
32250	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
32251	//       "format": "uint32",
32252	//       "location": "query",
32253	//       "minimum": "0",
32254	//       "type": "integer"
32255	//     },
32256	//     "orderBy": {
32257	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
32258	//       "location": "query",
32259	//       "type": "string"
32260	//     },
32261	//     "pageToken": {
32262	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
32263	//       "location": "query",
32264	//       "type": "string"
32265	//     },
32266	//     "project": {
32267	//       "description": "Project ID for this request.",
32268	//       "location": "path",
32269	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
32270	//       "required": true,
32271	//       "type": "string"
32272	//     }
32273	//   },
32274	//   "path": "{project}/aggregated/addresses",
32275	//   "response": {
32276	//     "$ref": "AddressAggregatedList"
32277	//   },
32278	//   "scopes": [
32279	//     "https://www.googleapis.com/auth/cloud-platform",
32280	//     "https://www.googleapis.com/auth/compute",
32281	//     "https://www.googleapis.com/auth/compute.readonly"
32282	//   ]
32283	// }
32284
32285}
32286
32287// Pages invokes f for each page of results.
32288// A non-nil error returned from f will halt the iteration.
32289// The provided context supersedes any context provided to the Context method.
32290func (c *AddressesAggregatedListCall) Pages(ctx context.Context, f func(*AddressAggregatedList) error) error {
32291	c.ctx_ = ctx
32292	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
32293	for {
32294		x, err := c.Do()
32295		if err != nil {
32296			return err
32297		}
32298		if err := f(x); err != nil {
32299			return err
32300		}
32301		if x.NextPageToken == "" {
32302			return nil
32303		}
32304		c.PageToken(x.NextPageToken)
32305	}
32306}
32307
32308// method id "compute.addresses.delete":
32309
32310type AddressesDeleteCall struct {
32311	s          *Service
32312	project    string
32313	region     string
32314	address    string
32315	urlParams_ gensupport.URLParams
32316	ctx_       context.Context
32317	header_    http.Header
32318}
32319
32320// Delete: Deletes the specified address resource.
32321// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/delete
32322func (r *AddressesService) Delete(project string, region string, address string) *AddressesDeleteCall {
32323	c := &AddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32324	c.project = project
32325	c.region = region
32326	c.address = address
32327	return c
32328}
32329
32330// RequestId sets the optional parameter "requestId": An optional
32331// request ID to identify requests. Specify a unique request ID so that
32332// if you must retry your request, the server will know to ignore the
32333// request if it has already been completed.
32334//
32335// For example, consider a situation where you make an initial request
32336// and the request times out. If you make the request again with the
32337// same request ID, the server can check if original operation with the
32338// same request ID was received, and if so, will ignore the second
32339// request. This prevents clients from accidentally creating duplicate
32340// commitments.
32341//
32342// The request ID must be a valid UUID with the exception that zero UUID
32343// is not supported (00000000-0000-0000-0000-000000000000).
32344func (c *AddressesDeleteCall) RequestId(requestId string) *AddressesDeleteCall {
32345	c.urlParams_.Set("requestId", requestId)
32346	return c
32347}
32348
32349// Fields allows partial responses to be retrieved. See
32350// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32351// for more information.
32352func (c *AddressesDeleteCall) Fields(s ...googleapi.Field) *AddressesDeleteCall {
32353	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32354	return c
32355}
32356
32357// Context sets the context to be used in this call's Do method. Any
32358// pending HTTP request will be aborted if the provided context is
32359// canceled.
32360func (c *AddressesDeleteCall) Context(ctx context.Context) *AddressesDeleteCall {
32361	c.ctx_ = ctx
32362	return c
32363}
32364
32365// Header returns an http.Header that can be modified by the caller to
32366// add HTTP headers to the request.
32367func (c *AddressesDeleteCall) Header() http.Header {
32368	if c.header_ == nil {
32369		c.header_ = make(http.Header)
32370	}
32371	return c.header_
32372}
32373
32374func (c *AddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
32375	reqHeaders := make(http.Header)
32376	for k, v := range c.header_ {
32377		reqHeaders[k] = v
32378	}
32379	reqHeaders.Set("User-Agent", c.s.userAgent())
32380	var body io.Reader = nil
32381	c.urlParams_.Set("alt", alt)
32382	c.urlParams_.Set("prettyPrint", "false")
32383	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{address}")
32384	urls += "?" + c.urlParams_.Encode()
32385	req, err := http.NewRequest("DELETE", urls, body)
32386	if err != nil {
32387		return nil, err
32388	}
32389	req.Header = reqHeaders
32390	googleapi.Expand(req.URL, map[string]string{
32391		"project": c.project,
32392		"region":  c.region,
32393		"address": c.address,
32394	})
32395	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32396}
32397
32398// Do executes the "compute.addresses.delete" call.
32399// Exactly one of *Operation or error will be non-nil. Any non-2xx
32400// status code is an error. Response headers are in either
32401// *Operation.ServerResponse.Header or (if a response was returned at
32402// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
32403// to check whether the returned error was because
32404// http.StatusNotModified was returned.
32405func (c *AddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
32406	gensupport.SetOptions(c.urlParams_, opts...)
32407	res, err := c.doRequest("json")
32408	if res != nil && res.StatusCode == http.StatusNotModified {
32409		if res.Body != nil {
32410			res.Body.Close()
32411		}
32412		return nil, &googleapi.Error{
32413			Code:   res.StatusCode,
32414			Header: res.Header,
32415		}
32416	}
32417	if err != nil {
32418		return nil, err
32419	}
32420	defer googleapi.CloseBody(res)
32421	if err := googleapi.CheckResponse(res); err != nil {
32422		return nil, err
32423	}
32424	ret := &Operation{
32425		ServerResponse: googleapi.ServerResponse{
32426			Header:         res.Header,
32427			HTTPStatusCode: res.StatusCode,
32428		},
32429	}
32430	target := &ret
32431	if err := gensupport.DecodeResponse(target, res); err != nil {
32432		return nil, err
32433	}
32434	return ret, nil
32435	// {
32436	//   "description": "Deletes the specified address resource.",
32437	//   "httpMethod": "DELETE",
32438	//   "id": "compute.addresses.delete",
32439	//   "parameterOrder": [
32440	//     "project",
32441	//     "region",
32442	//     "address"
32443	//   ],
32444	//   "parameters": {
32445	//     "address": {
32446	//       "description": "Name of the address resource to delete.",
32447	//       "location": "path",
32448	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
32449	//       "required": true,
32450	//       "type": "string"
32451	//     },
32452	//     "project": {
32453	//       "description": "Project ID for this request.",
32454	//       "location": "path",
32455	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
32456	//       "required": true,
32457	//       "type": "string"
32458	//     },
32459	//     "region": {
32460	//       "description": "Name of the region for this request.",
32461	//       "location": "path",
32462	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
32463	//       "required": true,
32464	//       "type": "string"
32465	//     },
32466	//     "requestId": {
32467	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
32468	//       "location": "query",
32469	//       "type": "string"
32470	//     }
32471	//   },
32472	//   "path": "{project}/regions/{region}/addresses/{address}",
32473	//   "response": {
32474	//     "$ref": "Operation"
32475	//   },
32476	//   "scopes": [
32477	//     "https://www.googleapis.com/auth/cloud-platform",
32478	//     "https://www.googleapis.com/auth/compute"
32479	//   ]
32480	// }
32481
32482}
32483
32484// method id "compute.addresses.get":
32485
32486type AddressesGetCall struct {
32487	s            *Service
32488	project      string
32489	region       string
32490	address      string
32491	urlParams_   gensupport.URLParams
32492	ifNoneMatch_ string
32493	ctx_         context.Context
32494	header_      http.Header
32495}
32496
32497// Get: Returns the specified address resource.
32498// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/get
32499func (r *AddressesService) Get(project string, region string, address string) *AddressesGetCall {
32500	c := &AddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32501	c.project = project
32502	c.region = region
32503	c.address = address
32504	return c
32505}
32506
32507// Fields allows partial responses to be retrieved. See
32508// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32509// for more information.
32510func (c *AddressesGetCall) Fields(s ...googleapi.Field) *AddressesGetCall {
32511	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32512	return c
32513}
32514
32515// IfNoneMatch sets the optional parameter which makes the operation
32516// fail if the object's ETag matches the given value. This is useful for
32517// getting updates only after the object has changed since the last
32518// request. Use googleapi.IsNotModified to check whether the response
32519// error from Do is the result of In-None-Match.
32520func (c *AddressesGetCall) IfNoneMatch(entityTag string) *AddressesGetCall {
32521	c.ifNoneMatch_ = entityTag
32522	return c
32523}
32524
32525// Context sets the context to be used in this call's Do method. Any
32526// pending HTTP request will be aborted if the provided context is
32527// canceled.
32528func (c *AddressesGetCall) Context(ctx context.Context) *AddressesGetCall {
32529	c.ctx_ = ctx
32530	return c
32531}
32532
32533// Header returns an http.Header that can be modified by the caller to
32534// add HTTP headers to the request.
32535func (c *AddressesGetCall) Header() http.Header {
32536	if c.header_ == nil {
32537		c.header_ = make(http.Header)
32538	}
32539	return c.header_
32540}
32541
32542func (c *AddressesGetCall) doRequest(alt string) (*http.Response, error) {
32543	reqHeaders := make(http.Header)
32544	for k, v := range c.header_ {
32545		reqHeaders[k] = v
32546	}
32547	reqHeaders.Set("User-Agent", c.s.userAgent())
32548	if c.ifNoneMatch_ != "" {
32549		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
32550	}
32551	var body io.Reader = nil
32552	c.urlParams_.Set("alt", alt)
32553	c.urlParams_.Set("prettyPrint", "false")
32554	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{address}")
32555	urls += "?" + c.urlParams_.Encode()
32556	req, err := http.NewRequest("GET", urls, body)
32557	if err != nil {
32558		return nil, err
32559	}
32560	req.Header = reqHeaders
32561	googleapi.Expand(req.URL, map[string]string{
32562		"project": c.project,
32563		"region":  c.region,
32564		"address": c.address,
32565	})
32566	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32567}
32568
32569// Do executes the "compute.addresses.get" call.
32570// Exactly one of *Address or error will be non-nil. Any non-2xx status
32571// code is an error. Response headers are in either
32572// *Address.ServerResponse.Header or (if a response was returned at all)
32573// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
32574// check whether the returned error was because http.StatusNotModified
32575// was returned.
32576func (c *AddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
32577	gensupport.SetOptions(c.urlParams_, opts...)
32578	res, err := c.doRequest("json")
32579	if res != nil && res.StatusCode == http.StatusNotModified {
32580		if res.Body != nil {
32581			res.Body.Close()
32582		}
32583		return nil, &googleapi.Error{
32584			Code:   res.StatusCode,
32585			Header: res.Header,
32586		}
32587	}
32588	if err != nil {
32589		return nil, err
32590	}
32591	defer googleapi.CloseBody(res)
32592	if err := googleapi.CheckResponse(res); err != nil {
32593		return nil, err
32594	}
32595	ret := &Address{
32596		ServerResponse: googleapi.ServerResponse{
32597			Header:         res.Header,
32598			HTTPStatusCode: res.StatusCode,
32599		},
32600	}
32601	target := &ret
32602	if err := gensupport.DecodeResponse(target, res); err != nil {
32603		return nil, err
32604	}
32605	return ret, nil
32606	// {
32607	//   "description": "Returns the specified address resource.",
32608	//   "httpMethod": "GET",
32609	//   "id": "compute.addresses.get",
32610	//   "parameterOrder": [
32611	//     "project",
32612	//     "region",
32613	//     "address"
32614	//   ],
32615	//   "parameters": {
32616	//     "address": {
32617	//       "description": "Name of the address resource to return.",
32618	//       "location": "path",
32619	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
32620	//       "required": true,
32621	//       "type": "string"
32622	//     },
32623	//     "project": {
32624	//       "description": "Project ID for this request.",
32625	//       "location": "path",
32626	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
32627	//       "required": true,
32628	//       "type": "string"
32629	//     },
32630	//     "region": {
32631	//       "description": "Name of the region for this request.",
32632	//       "location": "path",
32633	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
32634	//       "required": true,
32635	//       "type": "string"
32636	//     }
32637	//   },
32638	//   "path": "{project}/regions/{region}/addresses/{address}",
32639	//   "response": {
32640	//     "$ref": "Address"
32641	//   },
32642	//   "scopes": [
32643	//     "https://www.googleapis.com/auth/cloud-platform",
32644	//     "https://www.googleapis.com/auth/compute",
32645	//     "https://www.googleapis.com/auth/compute.readonly"
32646	//   ]
32647	// }
32648
32649}
32650
32651// method id "compute.addresses.insert":
32652
32653type AddressesInsertCall struct {
32654	s          *Service
32655	project    string
32656	region     string
32657	address    *Address
32658	urlParams_ gensupport.URLParams
32659	ctx_       context.Context
32660	header_    http.Header
32661}
32662
32663// Insert: Creates an address resource in the specified project using
32664// the data included in the request.
32665// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/insert
32666func (r *AddressesService) Insert(project string, region string, address *Address) *AddressesInsertCall {
32667	c := &AddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32668	c.project = project
32669	c.region = region
32670	c.address = address
32671	return c
32672}
32673
32674// RequestId sets the optional parameter "requestId": An optional
32675// request ID to identify requests. Specify a unique request ID so that
32676// if you must retry your request, the server will know to ignore the
32677// request if it has already been completed.
32678//
32679// For example, consider a situation where you make an initial request
32680// and the request times out. If you make the request again with the
32681// same request ID, the server can check if original operation with the
32682// same request ID was received, and if so, will ignore the second
32683// request. This prevents clients from accidentally creating duplicate
32684// commitments.
32685//
32686// The request ID must be a valid UUID with the exception that zero UUID
32687// is not supported (00000000-0000-0000-0000-000000000000).
32688func (c *AddressesInsertCall) RequestId(requestId string) *AddressesInsertCall {
32689	c.urlParams_.Set("requestId", requestId)
32690	return c
32691}
32692
32693// Fields allows partial responses to be retrieved. See
32694// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32695// for more information.
32696func (c *AddressesInsertCall) Fields(s ...googleapi.Field) *AddressesInsertCall {
32697	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32698	return c
32699}
32700
32701// Context sets the context to be used in this call's Do method. Any
32702// pending HTTP request will be aborted if the provided context is
32703// canceled.
32704func (c *AddressesInsertCall) Context(ctx context.Context) *AddressesInsertCall {
32705	c.ctx_ = ctx
32706	return c
32707}
32708
32709// Header returns an http.Header that can be modified by the caller to
32710// add HTTP headers to the request.
32711func (c *AddressesInsertCall) Header() http.Header {
32712	if c.header_ == nil {
32713		c.header_ = make(http.Header)
32714	}
32715	return c.header_
32716}
32717
32718func (c *AddressesInsertCall) doRequest(alt string) (*http.Response, error) {
32719	reqHeaders := make(http.Header)
32720	for k, v := range c.header_ {
32721		reqHeaders[k] = v
32722	}
32723	reqHeaders.Set("User-Agent", c.s.userAgent())
32724	var body io.Reader = nil
32725	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
32726	if err != nil {
32727		return nil, err
32728	}
32729	reqHeaders.Set("Content-Type", "application/json")
32730	c.urlParams_.Set("alt", alt)
32731	c.urlParams_.Set("prettyPrint", "false")
32732	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses")
32733	urls += "?" + c.urlParams_.Encode()
32734	req, err := http.NewRequest("POST", urls, body)
32735	if err != nil {
32736		return nil, err
32737	}
32738	req.Header = reqHeaders
32739	googleapi.Expand(req.URL, map[string]string{
32740		"project": c.project,
32741		"region":  c.region,
32742	})
32743	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32744}
32745
32746// Do executes the "compute.addresses.insert" call.
32747// Exactly one of *Operation or error will be non-nil. Any non-2xx
32748// status code is an error. Response headers are in either
32749// *Operation.ServerResponse.Header or (if a response was returned at
32750// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
32751// to check whether the returned error was because
32752// http.StatusNotModified was returned.
32753func (c *AddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
32754	gensupport.SetOptions(c.urlParams_, opts...)
32755	res, err := c.doRequest("json")
32756	if res != nil && res.StatusCode == http.StatusNotModified {
32757		if res.Body != nil {
32758			res.Body.Close()
32759		}
32760		return nil, &googleapi.Error{
32761			Code:   res.StatusCode,
32762			Header: res.Header,
32763		}
32764	}
32765	if err != nil {
32766		return nil, err
32767	}
32768	defer googleapi.CloseBody(res)
32769	if err := googleapi.CheckResponse(res); err != nil {
32770		return nil, err
32771	}
32772	ret := &Operation{
32773		ServerResponse: googleapi.ServerResponse{
32774			Header:         res.Header,
32775			HTTPStatusCode: res.StatusCode,
32776		},
32777	}
32778	target := &ret
32779	if err := gensupport.DecodeResponse(target, res); err != nil {
32780		return nil, err
32781	}
32782	return ret, nil
32783	// {
32784	//   "description": "Creates an address resource in the specified project using the data included in the request.",
32785	//   "httpMethod": "POST",
32786	//   "id": "compute.addresses.insert",
32787	//   "parameterOrder": [
32788	//     "project",
32789	//     "region"
32790	//   ],
32791	//   "parameters": {
32792	//     "project": {
32793	//       "description": "Project ID for this request.",
32794	//       "location": "path",
32795	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
32796	//       "required": true,
32797	//       "type": "string"
32798	//     },
32799	//     "region": {
32800	//       "description": "Name of the region for this request.",
32801	//       "location": "path",
32802	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
32803	//       "required": true,
32804	//       "type": "string"
32805	//     },
32806	//     "requestId": {
32807	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
32808	//       "location": "query",
32809	//       "type": "string"
32810	//     }
32811	//   },
32812	//   "path": "{project}/regions/{region}/addresses",
32813	//   "request": {
32814	//     "$ref": "Address"
32815	//   },
32816	//   "response": {
32817	//     "$ref": "Operation"
32818	//   },
32819	//   "scopes": [
32820	//     "https://www.googleapis.com/auth/cloud-platform",
32821	//     "https://www.googleapis.com/auth/compute"
32822	//   ]
32823	// }
32824
32825}
32826
32827// method id "compute.addresses.list":
32828
32829type AddressesListCall struct {
32830	s            *Service
32831	project      string
32832	region       string
32833	urlParams_   gensupport.URLParams
32834	ifNoneMatch_ string
32835	ctx_         context.Context
32836	header_      http.Header
32837}
32838
32839// List: Retrieves a list of addresses contained within the specified
32840// region.
32841// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/list
32842func (r *AddressesService) List(project string, region string) *AddressesListCall {
32843	c := &AddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32844	c.project = project
32845	c.region = region
32846	return c
32847}
32848
32849// Filter sets the optional parameter "filter": A filter expression that
32850// filters resources listed in the response. The expression must specify
32851// the field name, a comparison operator, and the value that you want to
32852// use for filtering. The value must be a string, a number, or a
32853// boolean. The comparison operator must be either =, !=, >, or <.
32854//
32855// For example, if you are filtering Compute Engine instances, you can
32856// exclude instances named example-instance by specifying name !=
32857// example-instance.
32858//
32859// You can also filter nested fields. For example, you could specify
32860// scheduling.automaticRestart = false to include instances only if they
32861// are not scheduled for automatic restarts. You can use filtering on
32862// nested fields to filter based on resource labels.
32863//
32864// To filter on multiple expressions, provide each separate expression
32865// within parentheses. For example, (scheduling.automaticRestart = true)
32866// (cpuPlatform = "Intel Skylake"). By default, each expression is an
32867// AND expression. However, you can include AND and OR expressions
32868// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
32869// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
32870// true).
32871func (c *AddressesListCall) Filter(filter string) *AddressesListCall {
32872	c.urlParams_.Set("filter", filter)
32873	return c
32874}
32875
32876// MaxResults sets the optional parameter "maxResults": The maximum
32877// number of results per page that should be returned. If the number of
32878// available results is larger than maxResults, Compute Engine returns a
32879// nextPageToken that can be used to get the next page of results in
32880// subsequent list requests. Acceptable values are 0 to 500, inclusive.
32881// (Default: 500)
32882func (c *AddressesListCall) MaxResults(maxResults int64) *AddressesListCall {
32883	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
32884	return c
32885}
32886
32887// OrderBy sets the optional parameter "orderBy": Sorts list results by
32888// a certain order. By default, results are returned in alphanumerical
32889// order based on the resource name.
32890//
32891// You can also sort results in descending order based on the creation
32892// timestamp using orderBy="creationTimestamp desc". This sorts results
32893// based on the creationTimestamp field in reverse chronological order
32894// (newest result first). Use this to sort resources like operations so
32895// that the newest operation is returned first.
32896//
32897// Currently, only sorting by name or creationTimestamp desc is
32898// supported.
32899func (c *AddressesListCall) OrderBy(orderBy string) *AddressesListCall {
32900	c.urlParams_.Set("orderBy", orderBy)
32901	return c
32902}
32903
32904// PageToken sets the optional parameter "pageToken": Specifies a page
32905// token to use. Set pageToken to the nextPageToken returned by a
32906// previous list request to get the next page of results.
32907func (c *AddressesListCall) PageToken(pageToken string) *AddressesListCall {
32908	c.urlParams_.Set("pageToken", pageToken)
32909	return c
32910}
32911
32912// Fields allows partial responses to be retrieved. See
32913// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32914// for more information.
32915func (c *AddressesListCall) Fields(s ...googleapi.Field) *AddressesListCall {
32916	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32917	return c
32918}
32919
32920// IfNoneMatch sets the optional parameter which makes the operation
32921// fail if the object's ETag matches the given value. This is useful for
32922// getting updates only after the object has changed since the last
32923// request. Use googleapi.IsNotModified to check whether the response
32924// error from Do is the result of In-None-Match.
32925func (c *AddressesListCall) IfNoneMatch(entityTag string) *AddressesListCall {
32926	c.ifNoneMatch_ = entityTag
32927	return c
32928}
32929
32930// Context sets the context to be used in this call's Do method. Any
32931// pending HTTP request will be aborted if the provided context is
32932// canceled.
32933func (c *AddressesListCall) Context(ctx context.Context) *AddressesListCall {
32934	c.ctx_ = ctx
32935	return c
32936}
32937
32938// Header returns an http.Header that can be modified by the caller to
32939// add HTTP headers to the request.
32940func (c *AddressesListCall) Header() http.Header {
32941	if c.header_ == nil {
32942		c.header_ = make(http.Header)
32943	}
32944	return c.header_
32945}
32946
32947func (c *AddressesListCall) doRequest(alt string) (*http.Response, error) {
32948	reqHeaders := make(http.Header)
32949	for k, v := range c.header_ {
32950		reqHeaders[k] = v
32951	}
32952	reqHeaders.Set("User-Agent", c.s.userAgent())
32953	if c.ifNoneMatch_ != "" {
32954		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
32955	}
32956	var body io.Reader = nil
32957	c.urlParams_.Set("alt", alt)
32958	c.urlParams_.Set("prettyPrint", "false")
32959	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses")
32960	urls += "?" + c.urlParams_.Encode()
32961	req, err := http.NewRequest("GET", urls, body)
32962	if err != nil {
32963		return nil, err
32964	}
32965	req.Header = reqHeaders
32966	googleapi.Expand(req.URL, map[string]string{
32967		"project": c.project,
32968		"region":  c.region,
32969	})
32970	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32971}
32972
32973// Do executes the "compute.addresses.list" call.
32974// Exactly one of *AddressList or error will be non-nil. Any non-2xx
32975// status code is an error. Response headers are in either
32976// *AddressList.ServerResponse.Header or (if a response was returned at
32977// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
32978// to check whether the returned error was because
32979// http.StatusNotModified was returned.
32980func (c *AddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
32981	gensupport.SetOptions(c.urlParams_, opts...)
32982	res, err := c.doRequest("json")
32983	if res != nil && res.StatusCode == http.StatusNotModified {
32984		if res.Body != nil {
32985			res.Body.Close()
32986		}
32987		return nil, &googleapi.Error{
32988			Code:   res.StatusCode,
32989			Header: res.Header,
32990		}
32991	}
32992	if err != nil {
32993		return nil, err
32994	}
32995	defer googleapi.CloseBody(res)
32996	if err := googleapi.CheckResponse(res); err != nil {
32997		return nil, err
32998	}
32999	ret := &AddressList{
33000		ServerResponse: googleapi.ServerResponse{
33001			Header:         res.Header,
33002			HTTPStatusCode: res.StatusCode,
33003		},
33004	}
33005	target := &ret
33006	if err := gensupport.DecodeResponse(target, res); err != nil {
33007		return nil, err
33008	}
33009	return ret, nil
33010	// {
33011	//   "description": "Retrieves a list of addresses contained within the specified region.",
33012	//   "httpMethod": "GET",
33013	//   "id": "compute.addresses.list",
33014	//   "parameterOrder": [
33015	//     "project",
33016	//     "region"
33017	//   ],
33018	//   "parameters": {
33019	//     "filter": {
33020	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
33021	//       "location": "query",
33022	//       "type": "string"
33023	//     },
33024	//     "maxResults": {
33025	//       "default": "500",
33026	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
33027	//       "format": "uint32",
33028	//       "location": "query",
33029	//       "minimum": "0",
33030	//       "type": "integer"
33031	//     },
33032	//     "orderBy": {
33033	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
33034	//       "location": "query",
33035	//       "type": "string"
33036	//     },
33037	//     "pageToken": {
33038	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
33039	//       "location": "query",
33040	//       "type": "string"
33041	//     },
33042	//     "project": {
33043	//       "description": "Project ID for this request.",
33044	//       "location": "path",
33045	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
33046	//       "required": true,
33047	//       "type": "string"
33048	//     },
33049	//     "region": {
33050	//       "description": "Name of the region for this request.",
33051	//       "location": "path",
33052	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
33053	//       "required": true,
33054	//       "type": "string"
33055	//     }
33056	//   },
33057	//   "path": "{project}/regions/{region}/addresses",
33058	//   "response": {
33059	//     "$ref": "AddressList"
33060	//   },
33061	//   "scopes": [
33062	//     "https://www.googleapis.com/auth/cloud-platform",
33063	//     "https://www.googleapis.com/auth/compute",
33064	//     "https://www.googleapis.com/auth/compute.readonly"
33065	//   ]
33066	// }
33067
33068}
33069
33070// Pages invokes f for each page of results.
33071// A non-nil error returned from f will halt the iteration.
33072// The provided context supersedes any context provided to the Context method.
33073func (c *AddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
33074	c.ctx_ = ctx
33075	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
33076	for {
33077		x, err := c.Do()
33078		if err != nil {
33079			return err
33080		}
33081		if err := f(x); err != nil {
33082			return err
33083		}
33084		if x.NextPageToken == "" {
33085			return nil
33086		}
33087		c.PageToken(x.NextPageToken)
33088	}
33089}
33090
33091// method id "compute.autoscalers.aggregatedList":
33092
33093type AutoscalersAggregatedListCall struct {
33094	s            *Service
33095	project      string
33096	urlParams_   gensupport.URLParams
33097	ifNoneMatch_ string
33098	ctx_         context.Context
33099	header_      http.Header
33100}
33101
33102// AggregatedList: Retrieves an aggregated list of autoscalers.
33103func (r *AutoscalersService) AggregatedList(project string) *AutoscalersAggregatedListCall {
33104	c := &AutoscalersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33105	c.project = project
33106	return c
33107}
33108
33109// Filter sets the optional parameter "filter": A filter expression that
33110// filters resources listed in the response. The expression must specify
33111// the field name, a comparison operator, and the value that you want to
33112// use for filtering. The value must be a string, a number, or a
33113// boolean. The comparison operator must be either =, !=, >, or <.
33114//
33115// For example, if you are filtering Compute Engine instances, you can
33116// exclude instances named example-instance by specifying name !=
33117// example-instance.
33118//
33119// You can also filter nested fields. For example, you could specify
33120// scheduling.automaticRestart = false to include instances only if they
33121// are not scheduled for automatic restarts. You can use filtering on
33122// nested fields to filter based on resource labels.
33123//
33124// To filter on multiple expressions, provide each separate expression
33125// within parentheses. For example, (scheduling.automaticRestart = true)
33126// (cpuPlatform = "Intel Skylake"). By default, each expression is an
33127// AND expression. However, you can include AND and OR expressions
33128// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
33129// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
33130// true).
33131func (c *AutoscalersAggregatedListCall) Filter(filter string) *AutoscalersAggregatedListCall {
33132	c.urlParams_.Set("filter", filter)
33133	return c
33134}
33135
33136// MaxResults sets the optional parameter "maxResults": The maximum
33137// number of results per page that should be returned. If the number of
33138// available results is larger than maxResults, Compute Engine returns a
33139// nextPageToken that can be used to get the next page of results in
33140// subsequent list requests. Acceptable values are 0 to 500, inclusive.
33141// (Default: 500)
33142func (c *AutoscalersAggregatedListCall) MaxResults(maxResults int64) *AutoscalersAggregatedListCall {
33143	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
33144	return c
33145}
33146
33147// OrderBy sets the optional parameter "orderBy": Sorts list results by
33148// a certain order. By default, results are returned in alphanumerical
33149// order based on the resource name.
33150//
33151// You can also sort results in descending order based on the creation
33152// timestamp using orderBy="creationTimestamp desc". This sorts results
33153// based on the creationTimestamp field in reverse chronological order
33154// (newest result first). Use this to sort resources like operations so
33155// that the newest operation is returned first.
33156//
33157// Currently, only sorting by name or creationTimestamp desc is
33158// supported.
33159func (c *AutoscalersAggregatedListCall) OrderBy(orderBy string) *AutoscalersAggregatedListCall {
33160	c.urlParams_.Set("orderBy", orderBy)
33161	return c
33162}
33163
33164// PageToken sets the optional parameter "pageToken": Specifies a page
33165// token to use. Set pageToken to the nextPageToken returned by a
33166// previous list request to get the next page of results.
33167func (c *AutoscalersAggregatedListCall) PageToken(pageToken string) *AutoscalersAggregatedListCall {
33168	c.urlParams_.Set("pageToken", pageToken)
33169	return c
33170}
33171
33172// Fields allows partial responses to be retrieved. See
33173// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33174// for more information.
33175func (c *AutoscalersAggregatedListCall) Fields(s ...googleapi.Field) *AutoscalersAggregatedListCall {
33176	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33177	return c
33178}
33179
33180// IfNoneMatch sets the optional parameter which makes the operation
33181// fail if the object's ETag matches the given value. This is useful for
33182// getting updates only after the object has changed since the last
33183// request. Use googleapi.IsNotModified to check whether the response
33184// error from Do is the result of In-None-Match.
33185func (c *AutoscalersAggregatedListCall) IfNoneMatch(entityTag string) *AutoscalersAggregatedListCall {
33186	c.ifNoneMatch_ = entityTag
33187	return c
33188}
33189
33190// Context sets the context to be used in this call's Do method. Any
33191// pending HTTP request will be aborted if the provided context is
33192// canceled.
33193func (c *AutoscalersAggregatedListCall) Context(ctx context.Context) *AutoscalersAggregatedListCall {
33194	c.ctx_ = ctx
33195	return c
33196}
33197
33198// Header returns an http.Header that can be modified by the caller to
33199// add HTTP headers to the request.
33200func (c *AutoscalersAggregatedListCall) Header() http.Header {
33201	if c.header_ == nil {
33202		c.header_ = make(http.Header)
33203	}
33204	return c.header_
33205}
33206
33207func (c *AutoscalersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
33208	reqHeaders := make(http.Header)
33209	for k, v := range c.header_ {
33210		reqHeaders[k] = v
33211	}
33212	reqHeaders.Set("User-Agent", c.s.userAgent())
33213	if c.ifNoneMatch_ != "" {
33214		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
33215	}
33216	var body io.Reader = nil
33217	c.urlParams_.Set("alt", alt)
33218	c.urlParams_.Set("prettyPrint", "false")
33219	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/autoscalers")
33220	urls += "?" + c.urlParams_.Encode()
33221	req, err := http.NewRequest("GET", urls, body)
33222	if err != nil {
33223		return nil, err
33224	}
33225	req.Header = reqHeaders
33226	googleapi.Expand(req.URL, map[string]string{
33227		"project": c.project,
33228	})
33229	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33230}
33231
33232// Do executes the "compute.autoscalers.aggregatedList" call.
33233// Exactly one of *AutoscalerAggregatedList or error will be non-nil.
33234// Any non-2xx status code is an error. Response headers are in either
33235// *AutoscalerAggregatedList.ServerResponse.Header or (if a response was
33236// returned at all) in error.(*googleapi.Error).Header. Use
33237// googleapi.IsNotModified to check whether the returned error was
33238// because http.StatusNotModified was returned.
33239func (c *AutoscalersAggregatedListCall) Do(opts ...googleapi.CallOption) (*AutoscalerAggregatedList, error) {
33240	gensupport.SetOptions(c.urlParams_, opts...)
33241	res, err := c.doRequest("json")
33242	if res != nil && res.StatusCode == http.StatusNotModified {
33243		if res.Body != nil {
33244			res.Body.Close()
33245		}
33246		return nil, &googleapi.Error{
33247			Code:   res.StatusCode,
33248			Header: res.Header,
33249		}
33250	}
33251	if err != nil {
33252		return nil, err
33253	}
33254	defer googleapi.CloseBody(res)
33255	if err := googleapi.CheckResponse(res); err != nil {
33256		return nil, err
33257	}
33258	ret := &AutoscalerAggregatedList{
33259		ServerResponse: googleapi.ServerResponse{
33260			Header:         res.Header,
33261			HTTPStatusCode: res.StatusCode,
33262		},
33263	}
33264	target := &ret
33265	if err := gensupport.DecodeResponse(target, res); err != nil {
33266		return nil, err
33267	}
33268	return ret, nil
33269	// {
33270	//   "description": "Retrieves an aggregated list of autoscalers.",
33271	//   "httpMethod": "GET",
33272	//   "id": "compute.autoscalers.aggregatedList",
33273	//   "parameterOrder": [
33274	//     "project"
33275	//   ],
33276	//   "parameters": {
33277	//     "filter": {
33278	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
33279	//       "location": "query",
33280	//       "type": "string"
33281	//     },
33282	//     "maxResults": {
33283	//       "default": "500",
33284	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
33285	//       "format": "uint32",
33286	//       "location": "query",
33287	//       "minimum": "0",
33288	//       "type": "integer"
33289	//     },
33290	//     "orderBy": {
33291	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
33292	//       "location": "query",
33293	//       "type": "string"
33294	//     },
33295	//     "pageToken": {
33296	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
33297	//       "location": "query",
33298	//       "type": "string"
33299	//     },
33300	//     "project": {
33301	//       "description": "Project ID for this request.",
33302	//       "location": "path",
33303	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
33304	//       "required": true,
33305	//       "type": "string"
33306	//     }
33307	//   },
33308	//   "path": "{project}/aggregated/autoscalers",
33309	//   "response": {
33310	//     "$ref": "AutoscalerAggregatedList"
33311	//   },
33312	//   "scopes": [
33313	//     "https://www.googleapis.com/auth/cloud-platform",
33314	//     "https://www.googleapis.com/auth/compute",
33315	//     "https://www.googleapis.com/auth/compute.readonly"
33316	//   ]
33317	// }
33318
33319}
33320
33321// Pages invokes f for each page of results.
33322// A non-nil error returned from f will halt the iteration.
33323// The provided context supersedes any context provided to the Context method.
33324func (c *AutoscalersAggregatedListCall) Pages(ctx context.Context, f func(*AutoscalerAggregatedList) error) error {
33325	c.ctx_ = ctx
33326	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
33327	for {
33328		x, err := c.Do()
33329		if err != nil {
33330			return err
33331		}
33332		if err := f(x); err != nil {
33333			return err
33334		}
33335		if x.NextPageToken == "" {
33336			return nil
33337		}
33338		c.PageToken(x.NextPageToken)
33339	}
33340}
33341
33342// method id "compute.autoscalers.delete":
33343
33344type AutoscalersDeleteCall struct {
33345	s          *Service
33346	project    string
33347	zone       string
33348	autoscaler string
33349	urlParams_ gensupport.URLParams
33350	ctx_       context.Context
33351	header_    http.Header
33352}
33353
33354// Delete: Deletes the specified autoscaler.
33355func (r *AutoscalersService) Delete(project string, zone string, autoscaler string) *AutoscalersDeleteCall {
33356	c := &AutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33357	c.project = project
33358	c.zone = zone
33359	c.autoscaler = autoscaler
33360	return c
33361}
33362
33363// RequestId sets the optional parameter "requestId": An optional
33364// request ID to identify requests. Specify a unique request ID so that
33365// if you must retry your request, the server will know to ignore the
33366// request if it has already been completed.
33367//
33368// For example, consider a situation where you make an initial request
33369// and the request times out. If you make the request again with the
33370// same request ID, the server can check if original operation with the
33371// same request ID was received, and if so, will ignore the second
33372// request. This prevents clients from accidentally creating duplicate
33373// commitments.
33374//
33375// The request ID must be a valid UUID with the exception that zero UUID
33376// is not supported (00000000-0000-0000-0000-000000000000).
33377func (c *AutoscalersDeleteCall) RequestId(requestId string) *AutoscalersDeleteCall {
33378	c.urlParams_.Set("requestId", requestId)
33379	return c
33380}
33381
33382// Fields allows partial responses to be retrieved. See
33383// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33384// for more information.
33385func (c *AutoscalersDeleteCall) Fields(s ...googleapi.Field) *AutoscalersDeleteCall {
33386	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33387	return c
33388}
33389
33390// Context sets the context to be used in this call's Do method. Any
33391// pending HTTP request will be aborted if the provided context is
33392// canceled.
33393func (c *AutoscalersDeleteCall) Context(ctx context.Context) *AutoscalersDeleteCall {
33394	c.ctx_ = ctx
33395	return c
33396}
33397
33398// Header returns an http.Header that can be modified by the caller to
33399// add HTTP headers to the request.
33400func (c *AutoscalersDeleteCall) Header() http.Header {
33401	if c.header_ == nil {
33402		c.header_ = make(http.Header)
33403	}
33404	return c.header_
33405}
33406
33407func (c *AutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
33408	reqHeaders := make(http.Header)
33409	for k, v := range c.header_ {
33410		reqHeaders[k] = v
33411	}
33412	reqHeaders.Set("User-Agent", c.s.userAgent())
33413	var body io.Reader = nil
33414	c.urlParams_.Set("alt", alt)
33415	c.urlParams_.Set("prettyPrint", "false")
33416	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{autoscaler}")
33417	urls += "?" + c.urlParams_.Encode()
33418	req, err := http.NewRequest("DELETE", urls, body)
33419	if err != nil {
33420		return nil, err
33421	}
33422	req.Header = reqHeaders
33423	googleapi.Expand(req.URL, map[string]string{
33424		"project":    c.project,
33425		"zone":       c.zone,
33426		"autoscaler": c.autoscaler,
33427	})
33428	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33429}
33430
33431// Do executes the "compute.autoscalers.delete" call.
33432// Exactly one of *Operation or error will be non-nil. Any non-2xx
33433// status code is an error. Response headers are in either
33434// *Operation.ServerResponse.Header or (if a response was returned at
33435// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
33436// to check whether the returned error was because
33437// http.StatusNotModified was returned.
33438func (c *AutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
33439	gensupport.SetOptions(c.urlParams_, opts...)
33440	res, err := c.doRequest("json")
33441	if res != nil && res.StatusCode == http.StatusNotModified {
33442		if res.Body != nil {
33443			res.Body.Close()
33444		}
33445		return nil, &googleapi.Error{
33446			Code:   res.StatusCode,
33447			Header: res.Header,
33448		}
33449	}
33450	if err != nil {
33451		return nil, err
33452	}
33453	defer googleapi.CloseBody(res)
33454	if err := googleapi.CheckResponse(res); err != nil {
33455		return nil, err
33456	}
33457	ret := &Operation{
33458		ServerResponse: googleapi.ServerResponse{
33459			Header:         res.Header,
33460			HTTPStatusCode: res.StatusCode,
33461		},
33462	}
33463	target := &ret
33464	if err := gensupport.DecodeResponse(target, res); err != nil {
33465		return nil, err
33466	}
33467	return ret, nil
33468	// {
33469	//   "description": "Deletes the specified autoscaler.",
33470	//   "httpMethod": "DELETE",
33471	//   "id": "compute.autoscalers.delete",
33472	//   "parameterOrder": [
33473	//     "project",
33474	//     "zone",
33475	//     "autoscaler"
33476	//   ],
33477	//   "parameters": {
33478	//     "autoscaler": {
33479	//       "description": "Name of the autoscaler to delete.",
33480	//       "location": "path",
33481	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
33482	//       "required": true,
33483	//       "type": "string"
33484	//     },
33485	//     "project": {
33486	//       "description": "Project ID for this request.",
33487	//       "location": "path",
33488	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
33489	//       "required": true,
33490	//       "type": "string"
33491	//     },
33492	//     "requestId": {
33493	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
33494	//       "location": "query",
33495	//       "type": "string"
33496	//     },
33497	//     "zone": {
33498	//       "description": "Name of the zone for this request.",
33499	//       "location": "path",
33500	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
33501	//       "required": true,
33502	//       "type": "string"
33503	//     }
33504	//   },
33505	//   "path": "{project}/zones/{zone}/autoscalers/{autoscaler}",
33506	//   "response": {
33507	//     "$ref": "Operation"
33508	//   },
33509	//   "scopes": [
33510	//     "https://www.googleapis.com/auth/cloud-platform",
33511	//     "https://www.googleapis.com/auth/compute"
33512	//   ]
33513	// }
33514
33515}
33516
33517// method id "compute.autoscalers.get":
33518
33519type AutoscalersGetCall struct {
33520	s            *Service
33521	project      string
33522	zone         string
33523	autoscaler   string
33524	urlParams_   gensupport.URLParams
33525	ifNoneMatch_ string
33526	ctx_         context.Context
33527	header_      http.Header
33528}
33529
33530// Get: Returns the specified autoscaler resource. Gets a list of
33531// available autoscalers by making a list() request.
33532func (r *AutoscalersService) Get(project string, zone string, autoscaler string) *AutoscalersGetCall {
33533	c := &AutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33534	c.project = project
33535	c.zone = zone
33536	c.autoscaler = autoscaler
33537	return c
33538}
33539
33540// Fields allows partial responses to be retrieved. See
33541// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33542// for more information.
33543func (c *AutoscalersGetCall) Fields(s ...googleapi.Field) *AutoscalersGetCall {
33544	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33545	return c
33546}
33547
33548// IfNoneMatch sets the optional parameter which makes the operation
33549// fail if the object's ETag matches the given value. This is useful for
33550// getting updates only after the object has changed since the last
33551// request. Use googleapi.IsNotModified to check whether the response
33552// error from Do is the result of In-None-Match.
33553func (c *AutoscalersGetCall) IfNoneMatch(entityTag string) *AutoscalersGetCall {
33554	c.ifNoneMatch_ = entityTag
33555	return c
33556}
33557
33558// Context sets the context to be used in this call's Do method. Any
33559// pending HTTP request will be aborted if the provided context is
33560// canceled.
33561func (c *AutoscalersGetCall) Context(ctx context.Context) *AutoscalersGetCall {
33562	c.ctx_ = ctx
33563	return c
33564}
33565
33566// Header returns an http.Header that can be modified by the caller to
33567// add HTTP headers to the request.
33568func (c *AutoscalersGetCall) Header() http.Header {
33569	if c.header_ == nil {
33570		c.header_ = make(http.Header)
33571	}
33572	return c.header_
33573}
33574
33575func (c *AutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
33576	reqHeaders := make(http.Header)
33577	for k, v := range c.header_ {
33578		reqHeaders[k] = v
33579	}
33580	reqHeaders.Set("User-Agent", c.s.userAgent())
33581	if c.ifNoneMatch_ != "" {
33582		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
33583	}
33584	var body io.Reader = nil
33585	c.urlParams_.Set("alt", alt)
33586	c.urlParams_.Set("prettyPrint", "false")
33587	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{autoscaler}")
33588	urls += "?" + c.urlParams_.Encode()
33589	req, err := http.NewRequest("GET", urls, body)
33590	if err != nil {
33591		return nil, err
33592	}
33593	req.Header = reqHeaders
33594	googleapi.Expand(req.URL, map[string]string{
33595		"project":    c.project,
33596		"zone":       c.zone,
33597		"autoscaler": c.autoscaler,
33598	})
33599	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33600}
33601
33602// Do executes the "compute.autoscalers.get" call.
33603// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
33604// status code is an error. Response headers are in either
33605// *Autoscaler.ServerResponse.Header or (if a response was returned at
33606// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
33607// to check whether the returned error was because
33608// http.StatusNotModified was returned.
33609func (c *AutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
33610	gensupport.SetOptions(c.urlParams_, opts...)
33611	res, err := c.doRequest("json")
33612	if res != nil && res.StatusCode == http.StatusNotModified {
33613		if res.Body != nil {
33614			res.Body.Close()
33615		}
33616		return nil, &googleapi.Error{
33617			Code:   res.StatusCode,
33618			Header: res.Header,
33619		}
33620	}
33621	if err != nil {
33622		return nil, err
33623	}
33624	defer googleapi.CloseBody(res)
33625	if err := googleapi.CheckResponse(res); err != nil {
33626		return nil, err
33627	}
33628	ret := &Autoscaler{
33629		ServerResponse: googleapi.ServerResponse{
33630			Header:         res.Header,
33631			HTTPStatusCode: res.StatusCode,
33632		},
33633	}
33634	target := &ret
33635	if err := gensupport.DecodeResponse(target, res); err != nil {
33636		return nil, err
33637	}
33638	return ret, nil
33639	// {
33640	//   "description": "Returns the specified autoscaler resource. Gets a list of available autoscalers by making a list() request.",
33641	//   "httpMethod": "GET",
33642	//   "id": "compute.autoscalers.get",
33643	//   "parameterOrder": [
33644	//     "project",
33645	//     "zone",
33646	//     "autoscaler"
33647	//   ],
33648	//   "parameters": {
33649	//     "autoscaler": {
33650	//       "description": "Name of the autoscaler to return.",
33651	//       "location": "path",
33652	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
33653	//       "required": true,
33654	//       "type": "string"
33655	//     },
33656	//     "project": {
33657	//       "description": "Project ID for this request.",
33658	//       "location": "path",
33659	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
33660	//       "required": true,
33661	//       "type": "string"
33662	//     },
33663	//     "zone": {
33664	//       "description": "Name of the zone for this request.",
33665	//       "location": "path",
33666	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
33667	//       "required": true,
33668	//       "type": "string"
33669	//     }
33670	//   },
33671	//   "path": "{project}/zones/{zone}/autoscalers/{autoscaler}",
33672	//   "response": {
33673	//     "$ref": "Autoscaler"
33674	//   },
33675	//   "scopes": [
33676	//     "https://www.googleapis.com/auth/cloud-platform",
33677	//     "https://www.googleapis.com/auth/compute",
33678	//     "https://www.googleapis.com/auth/compute.readonly"
33679	//   ]
33680	// }
33681
33682}
33683
33684// method id "compute.autoscalers.insert":
33685
33686type AutoscalersInsertCall struct {
33687	s          *Service
33688	project    string
33689	zone       string
33690	autoscaler *Autoscaler
33691	urlParams_ gensupport.URLParams
33692	ctx_       context.Context
33693	header_    http.Header
33694}
33695
33696// Insert: Creates an autoscaler in the specified project using the data
33697// included in the request.
33698func (r *AutoscalersService) Insert(project string, zone string, autoscaler *Autoscaler) *AutoscalersInsertCall {
33699	c := &AutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33700	c.project = project
33701	c.zone = zone
33702	c.autoscaler = autoscaler
33703	return c
33704}
33705
33706// RequestId sets the optional parameter "requestId": An optional
33707// request ID to identify requests. Specify a unique request ID so that
33708// if you must retry your request, the server will know to ignore the
33709// request if it has already been completed.
33710//
33711// For example, consider a situation where you make an initial request
33712// and the request times out. If you make the request again with the
33713// same request ID, the server can check if original operation with the
33714// same request ID was received, and if so, will ignore the second
33715// request. This prevents clients from accidentally creating duplicate
33716// commitments.
33717//
33718// The request ID must be a valid UUID with the exception that zero UUID
33719// is not supported (00000000-0000-0000-0000-000000000000).
33720func (c *AutoscalersInsertCall) RequestId(requestId string) *AutoscalersInsertCall {
33721	c.urlParams_.Set("requestId", requestId)
33722	return c
33723}
33724
33725// Fields allows partial responses to be retrieved. See
33726// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33727// for more information.
33728func (c *AutoscalersInsertCall) Fields(s ...googleapi.Field) *AutoscalersInsertCall {
33729	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33730	return c
33731}
33732
33733// Context sets the context to be used in this call's Do method. Any
33734// pending HTTP request will be aborted if the provided context is
33735// canceled.
33736func (c *AutoscalersInsertCall) Context(ctx context.Context) *AutoscalersInsertCall {
33737	c.ctx_ = ctx
33738	return c
33739}
33740
33741// Header returns an http.Header that can be modified by the caller to
33742// add HTTP headers to the request.
33743func (c *AutoscalersInsertCall) Header() http.Header {
33744	if c.header_ == nil {
33745		c.header_ = make(http.Header)
33746	}
33747	return c.header_
33748}
33749
33750func (c *AutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
33751	reqHeaders := make(http.Header)
33752	for k, v := range c.header_ {
33753		reqHeaders[k] = v
33754	}
33755	reqHeaders.Set("User-Agent", c.s.userAgent())
33756	var body io.Reader = nil
33757	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
33758	if err != nil {
33759		return nil, err
33760	}
33761	reqHeaders.Set("Content-Type", "application/json")
33762	c.urlParams_.Set("alt", alt)
33763	c.urlParams_.Set("prettyPrint", "false")
33764	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
33765	urls += "?" + c.urlParams_.Encode()
33766	req, err := http.NewRequest("POST", urls, body)
33767	if err != nil {
33768		return nil, err
33769	}
33770	req.Header = reqHeaders
33771	googleapi.Expand(req.URL, map[string]string{
33772		"project": c.project,
33773		"zone":    c.zone,
33774	})
33775	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33776}
33777
33778// Do executes the "compute.autoscalers.insert" call.
33779// Exactly one of *Operation or error will be non-nil. Any non-2xx
33780// status code is an error. Response headers are in either
33781// *Operation.ServerResponse.Header or (if a response was returned at
33782// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
33783// to check whether the returned error was because
33784// http.StatusNotModified was returned.
33785func (c *AutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
33786	gensupport.SetOptions(c.urlParams_, opts...)
33787	res, err := c.doRequest("json")
33788	if res != nil && res.StatusCode == http.StatusNotModified {
33789		if res.Body != nil {
33790			res.Body.Close()
33791		}
33792		return nil, &googleapi.Error{
33793			Code:   res.StatusCode,
33794			Header: res.Header,
33795		}
33796	}
33797	if err != nil {
33798		return nil, err
33799	}
33800	defer googleapi.CloseBody(res)
33801	if err := googleapi.CheckResponse(res); err != nil {
33802		return nil, err
33803	}
33804	ret := &Operation{
33805		ServerResponse: googleapi.ServerResponse{
33806			Header:         res.Header,
33807			HTTPStatusCode: res.StatusCode,
33808		},
33809	}
33810	target := &ret
33811	if err := gensupport.DecodeResponse(target, res); err != nil {
33812		return nil, err
33813	}
33814	return ret, nil
33815	// {
33816	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
33817	//   "httpMethod": "POST",
33818	//   "id": "compute.autoscalers.insert",
33819	//   "parameterOrder": [
33820	//     "project",
33821	//     "zone"
33822	//   ],
33823	//   "parameters": {
33824	//     "project": {
33825	//       "description": "Project ID for this request.",
33826	//       "location": "path",
33827	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
33828	//       "required": true,
33829	//       "type": "string"
33830	//     },
33831	//     "requestId": {
33832	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
33833	//       "location": "query",
33834	//       "type": "string"
33835	//     },
33836	//     "zone": {
33837	//       "description": "Name of the zone for this request.",
33838	//       "location": "path",
33839	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
33840	//       "required": true,
33841	//       "type": "string"
33842	//     }
33843	//   },
33844	//   "path": "{project}/zones/{zone}/autoscalers",
33845	//   "request": {
33846	//     "$ref": "Autoscaler"
33847	//   },
33848	//   "response": {
33849	//     "$ref": "Operation"
33850	//   },
33851	//   "scopes": [
33852	//     "https://www.googleapis.com/auth/cloud-platform",
33853	//     "https://www.googleapis.com/auth/compute"
33854	//   ]
33855	// }
33856
33857}
33858
33859// method id "compute.autoscalers.list":
33860
33861type AutoscalersListCall struct {
33862	s            *Service
33863	project      string
33864	zone         string
33865	urlParams_   gensupport.URLParams
33866	ifNoneMatch_ string
33867	ctx_         context.Context
33868	header_      http.Header
33869}
33870
33871// List: Retrieves a list of autoscalers contained within the specified
33872// zone.
33873func (r *AutoscalersService) List(project string, zone string) *AutoscalersListCall {
33874	c := &AutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33875	c.project = project
33876	c.zone = zone
33877	return c
33878}
33879
33880// Filter sets the optional parameter "filter": A filter expression that
33881// filters resources listed in the response. The expression must specify
33882// the field name, a comparison operator, and the value that you want to
33883// use for filtering. The value must be a string, a number, or a
33884// boolean. The comparison operator must be either =, !=, >, or <.
33885//
33886// For example, if you are filtering Compute Engine instances, you can
33887// exclude instances named example-instance by specifying name !=
33888// example-instance.
33889//
33890// You can also filter nested fields. For example, you could specify
33891// scheduling.automaticRestart = false to include instances only if they
33892// are not scheduled for automatic restarts. You can use filtering on
33893// nested fields to filter based on resource labels.
33894//
33895// To filter on multiple expressions, provide each separate expression
33896// within parentheses. For example, (scheduling.automaticRestart = true)
33897// (cpuPlatform = "Intel Skylake"). By default, each expression is an
33898// AND expression. However, you can include AND and OR expressions
33899// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
33900// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
33901// true).
33902func (c *AutoscalersListCall) Filter(filter string) *AutoscalersListCall {
33903	c.urlParams_.Set("filter", filter)
33904	return c
33905}
33906
33907// MaxResults sets the optional parameter "maxResults": The maximum
33908// number of results per page that should be returned. If the number of
33909// available results is larger than maxResults, Compute Engine returns a
33910// nextPageToken that can be used to get the next page of results in
33911// subsequent list requests. Acceptable values are 0 to 500, inclusive.
33912// (Default: 500)
33913func (c *AutoscalersListCall) MaxResults(maxResults int64) *AutoscalersListCall {
33914	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
33915	return c
33916}
33917
33918// OrderBy sets the optional parameter "orderBy": Sorts list results by
33919// a certain order. By default, results are returned in alphanumerical
33920// order based on the resource name.
33921//
33922// You can also sort results in descending order based on the creation
33923// timestamp using orderBy="creationTimestamp desc". This sorts results
33924// based on the creationTimestamp field in reverse chronological order
33925// (newest result first). Use this to sort resources like operations so
33926// that the newest operation is returned first.
33927//
33928// Currently, only sorting by name or creationTimestamp desc is
33929// supported.
33930func (c *AutoscalersListCall) OrderBy(orderBy string) *AutoscalersListCall {
33931	c.urlParams_.Set("orderBy", orderBy)
33932	return c
33933}
33934
33935// PageToken sets the optional parameter "pageToken": Specifies a page
33936// token to use. Set pageToken to the nextPageToken returned by a
33937// previous list request to get the next page of results.
33938func (c *AutoscalersListCall) PageToken(pageToken string) *AutoscalersListCall {
33939	c.urlParams_.Set("pageToken", pageToken)
33940	return c
33941}
33942
33943// Fields allows partial responses to be retrieved. See
33944// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33945// for more information.
33946func (c *AutoscalersListCall) Fields(s ...googleapi.Field) *AutoscalersListCall {
33947	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33948	return c
33949}
33950
33951// IfNoneMatch sets the optional parameter which makes the operation
33952// fail if the object's ETag matches the given value. This is useful for
33953// getting updates only after the object has changed since the last
33954// request. Use googleapi.IsNotModified to check whether the response
33955// error from Do is the result of In-None-Match.
33956func (c *AutoscalersListCall) IfNoneMatch(entityTag string) *AutoscalersListCall {
33957	c.ifNoneMatch_ = entityTag
33958	return c
33959}
33960
33961// Context sets the context to be used in this call's Do method. Any
33962// pending HTTP request will be aborted if the provided context is
33963// canceled.
33964func (c *AutoscalersListCall) Context(ctx context.Context) *AutoscalersListCall {
33965	c.ctx_ = ctx
33966	return c
33967}
33968
33969// Header returns an http.Header that can be modified by the caller to
33970// add HTTP headers to the request.
33971func (c *AutoscalersListCall) Header() http.Header {
33972	if c.header_ == nil {
33973		c.header_ = make(http.Header)
33974	}
33975	return c.header_
33976}
33977
33978func (c *AutoscalersListCall) doRequest(alt string) (*http.Response, error) {
33979	reqHeaders := make(http.Header)
33980	for k, v := range c.header_ {
33981		reqHeaders[k] = v
33982	}
33983	reqHeaders.Set("User-Agent", c.s.userAgent())
33984	if c.ifNoneMatch_ != "" {
33985		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
33986	}
33987	var body io.Reader = nil
33988	c.urlParams_.Set("alt", alt)
33989	c.urlParams_.Set("prettyPrint", "false")
33990	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
33991	urls += "?" + c.urlParams_.Encode()
33992	req, err := http.NewRequest("GET", urls, body)
33993	if err != nil {
33994		return nil, err
33995	}
33996	req.Header = reqHeaders
33997	googleapi.Expand(req.URL, map[string]string{
33998		"project": c.project,
33999		"zone":    c.zone,
34000	})
34001	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34002}
34003
34004// Do executes the "compute.autoscalers.list" call.
34005// Exactly one of *AutoscalerList or error will be non-nil. Any non-2xx
34006// status code is an error. Response headers are in either
34007// *AutoscalerList.ServerResponse.Header or (if a response was returned
34008// at all) in error.(*googleapi.Error).Header. Use
34009// googleapi.IsNotModified to check whether the returned error was
34010// because http.StatusNotModified was returned.
34011func (c *AutoscalersListCall) Do(opts ...googleapi.CallOption) (*AutoscalerList, error) {
34012	gensupport.SetOptions(c.urlParams_, opts...)
34013	res, err := c.doRequest("json")
34014	if res != nil && res.StatusCode == http.StatusNotModified {
34015		if res.Body != nil {
34016			res.Body.Close()
34017		}
34018		return nil, &googleapi.Error{
34019			Code:   res.StatusCode,
34020			Header: res.Header,
34021		}
34022	}
34023	if err != nil {
34024		return nil, err
34025	}
34026	defer googleapi.CloseBody(res)
34027	if err := googleapi.CheckResponse(res); err != nil {
34028		return nil, err
34029	}
34030	ret := &AutoscalerList{
34031		ServerResponse: googleapi.ServerResponse{
34032			Header:         res.Header,
34033			HTTPStatusCode: res.StatusCode,
34034		},
34035	}
34036	target := &ret
34037	if err := gensupport.DecodeResponse(target, res); err != nil {
34038		return nil, err
34039	}
34040	return ret, nil
34041	// {
34042	//   "description": "Retrieves a list of autoscalers contained within the specified zone.",
34043	//   "httpMethod": "GET",
34044	//   "id": "compute.autoscalers.list",
34045	//   "parameterOrder": [
34046	//     "project",
34047	//     "zone"
34048	//   ],
34049	//   "parameters": {
34050	//     "filter": {
34051	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
34052	//       "location": "query",
34053	//       "type": "string"
34054	//     },
34055	//     "maxResults": {
34056	//       "default": "500",
34057	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
34058	//       "format": "uint32",
34059	//       "location": "query",
34060	//       "minimum": "0",
34061	//       "type": "integer"
34062	//     },
34063	//     "orderBy": {
34064	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
34065	//       "location": "query",
34066	//       "type": "string"
34067	//     },
34068	//     "pageToken": {
34069	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
34070	//       "location": "query",
34071	//       "type": "string"
34072	//     },
34073	//     "project": {
34074	//       "description": "Project ID for this request.",
34075	//       "location": "path",
34076	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
34077	//       "required": true,
34078	//       "type": "string"
34079	//     },
34080	//     "zone": {
34081	//       "description": "Name of the zone for this request.",
34082	//       "location": "path",
34083	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
34084	//       "required": true,
34085	//       "type": "string"
34086	//     }
34087	//   },
34088	//   "path": "{project}/zones/{zone}/autoscalers",
34089	//   "response": {
34090	//     "$ref": "AutoscalerList"
34091	//   },
34092	//   "scopes": [
34093	//     "https://www.googleapis.com/auth/cloud-platform",
34094	//     "https://www.googleapis.com/auth/compute",
34095	//     "https://www.googleapis.com/auth/compute.readonly"
34096	//   ]
34097	// }
34098
34099}
34100
34101// Pages invokes f for each page of results.
34102// A non-nil error returned from f will halt the iteration.
34103// The provided context supersedes any context provided to the Context method.
34104func (c *AutoscalersListCall) Pages(ctx context.Context, f func(*AutoscalerList) error) error {
34105	c.ctx_ = ctx
34106	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
34107	for {
34108		x, err := c.Do()
34109		if err != nil {
34110			return err
34111		}
34112		if err := f(x); err != nil {
34113			return err
34114		}
34115		if x.NextPageToken == "" {
34116			return nil
34117		}
34118		c.PageToken(x.NextPageToken)
34119	}
34120}
34121
34122// method id "compute.autoscalers.patch":
34123
34124type AutoscalersPatchCall struct {
34125	s          *Service
34126	project    string
34127	zone       string
34128	autoscaler *Autoscaler
34129	urlParams_ gensupport.URLParams
34130	ctx_       context.Context
34131	header_    http.Header
34132}
34133
34134// Patch: Updates an autoscaler in the specified project using the data
34135// included in the request. This method supports PATCH semantics and
34136// uses the JSON merge patch format and processing rules.
34137func (r *AutoscalersService) Patch(project string, zone string, autoscaler *Autoscaler) *AutoscalersPatchCall {
34138	c := &AutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34139	c.project = project
34140	c.zone = zone
34141	c.autoscaler = autoscaler
34142	return c
34143}
34144
34145// Autoscaler sets the optional parameter "autoscaler": Name of the
34146// autoscaler to patch.
34147func (c *AutoscalersPatchCall) Autoscaler(autoscaler string) *AutoscalersPatchCall {
34148	c.urlParams_.Set("autoscaler", autoscaler)
34149	return c
34150}
34151
34152// RequestId sets the optional parameter "requestId": An optional
34153// request ID to identify requests. Specify a unique request ID so that
34154// if you must retry your request, the server will know to ignore the
34155// request if it has already been completed.
34156//
34157// For example, consider a situation where you make an initial request
34158// and the request times out. If you make the request again with the
34159// same request ID, the server can check if original operation with the
34160// same request ID was received, and if so, will ignore the second
34161// request. This prevents clients from accidentally creating duplicate
34162// commitments.
34163//
34164// The request ID must be a valid UUID with the exception that zero UUID
34165// is not supported (00000000-0000-0000-0000-000000000000).
34166func (c *AutoscalersPatchCall) RequestId(requestId string) *AutoscalersPatchCall {
34167	c.urlParams_.Set("requestId", requestId)
34168	return c
34169}
34170
34171// Fields allows partial responses to be retrieved. See
34172// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34173// for more information.
34174func (c *AutoscalersPatchCall) Fields(s ...googleapi.Field) *AutoscalersPatchCall {
34175	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34176	return c
34177}
34178
34179// Context sets the context to be used in this call's Do method. Any
34180// pending HTTP request will be aborted if the provided context is
34181// canceled.
34182func (c *AutoscalersPatchCall) Context(ctx context.Context) *AutoscalersPatchCall {
34183	c.ctx_ = ctx
34184	return c
34185}
34186
34187// Header returns an http.Header that can be modified by the caller to
34188// add HTTP headers to the request.
34189func (c *AutoscalersPatchCall) Header() http.Header {
34190	if c.header_ == nil {
34191		c.header_ = make(http.Header)
34192	}
34193	return c.header_
34194}
34195
34196func (c *AutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
34197	reqHeaders := make(http.Header)
34198	for k, v := range c.header_ {
34199		reqHeaders[k] = v
34200	}
34201	reqHeaders.Set("User-Agent", c.s.userAgent())
34202	var body io.Reader = nil
34203	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
34204	if err != nil {
34205		return nil, err
34206	}
34207	reqHeaders.Set("Content-Type", "application/json")
34208	c.urlParams_.Set("alt", alt)
34209	c.urlParams_.Set("prettyPrint", "false")
34210	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
34211	urls += "?" + c.urlParams_.Encode()
34212	req, err := http.NewRequest("PATCH", urls, body)
34213	if err != nil {
34214		return nil, err
34215	}
34216	req.Header = reqHeaders
34217	googleapi.Expand(req.URL, map[string]string{
34218		"project": c.project,
34219		"zone":    c.zone,
34220	})
34221	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34222}
34223
34224// Do executes the "compute.autoscalers.patch" call.
34225// Exactly one of *Operation or error will be non-nil. Any non-2xx
34226// status code is an error. Response headers are in either
34227// *Operation.ServerResponse.Header or (if a response was returned at
34228// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
34229// to check whether the returned error was because
34230// http.StatusNotModified was returned.
34231func (c *AutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
34232	gensupport.SetOptions(c.urlParams_, opts...)
34233	res, err := c.doRequest("json")
34234	if res != nil && res.StatusCode == http.StatusNotModified {
34235		if res.Body != nil {
34236			res.Body.Close()
34237		}
34238		return nil, &googleapi.Error{
34239			Code:   res.StatusCode,
34240			Header: res.Header,
34241		}
34242	}
34243	if err != nil {
34244		return nil, err
34245	}
34246	defer googleapi.CloseBody(res)
34247	if err := googleapi.CheckResponse(res); err != nil {
34248		return nil, err
34249	}
34250	ret := &Operation{
34251		ServerResponse: googleapi.ServerResponse{
34252			Header:         res.Header,
34253			HTTPStatusCode: res.StatusCode,
34254		},
34255	}
34256	target := &ret
34257	if err := gensupport.DecodeResponse(target, res); err != nil {
34258		return nil, err
34259	}
34260	return ret, nil
34261	// {
34262	//   "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.",
34263	//   "httpMethod": "PATCH",
34264	//   "id": "compute.autoscalers.patch",
34265	//   "parameterOrder": [
34266	//     "project",
34267	//     "zone"
34268	//   ],
34269	//   "parameters": {
34270	//     "autoscaler": {
34271	//       "description": "Name of the autoscaler to patch.",
34272	//       "location": "query",
34273	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
34274	//       "type": "string"
34275	//     },
34276	//     "project": {
34277	//       "description": "Project ID for this request.",
34278	//       "location": "path",
34279	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
34280	//       "required": true,
34281	//       "type": "string"
34282	//     },
34283	//     "requestId": {
34284	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
34285	//       "location": "query",
34286	//       "type": "string"
34287	//     },
34288	//     "zone": {
34289	//       "description": "Name of the zone for this request.",
34290	//       "location": "path",
34291	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
34292	//       "required": true,
34293	//       "type": "string"
34294	//     }
34295	//   },
34296	//   "path": "{project}/zones/{zone}/autoscalers",
34297	//   "request": {
34298	//     "$ref": "Autoscaler"
34299	//   },
34300	//   "response": {
34301	//     "$ref": "Operation"
34302	//   },
34303	//   "scopes": [
34304	//     "https://www.googleapis.com/auth/cloud-platform",
34305	//     "https://www.googleapis.com/auth/compute"
34306	//   ]
34307	// }
34308
34309}
34310
34311// method id "compute.autoscalers.update":
34312
34313type AutoscalersUpdateCall struct {
34314	s          *Service
34315	project    string
34316	zone       string
34317	autoscaler *Autoscaler
34318	urlParams_ gensupport.URLParams
34319	ctx_       context.Context
34320	header_    http.Header
34321}
34322
34323// Update: Updates an autoscaler in the specified project using the data
34324// included in the request.
34325func (r *AutoscalersService) Update(project string, zone string, autoscaler *Autoscaler) *AutoscalersUpdateCall {
34326	c := &AutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34327	c.project = project
34328	c.zone = zone
34329	c.autoscaler = autoscaler
34330	return c
34331}
34332
34333// Autoscaler sets the optional parameter "autoscaler": Name of the
34334// autoscaler to update.
34335func (c *AutoscalersUpdateCall) Autoscaler(autoscaler string) *AutoscalersUpdateCall {
34336	c.urlParams_.Set("autoscaler", autoscaler)
34337	return c
34338}
34339
34340// RequestId sets the optional parameter "requestId": An optional
34341// request ID to identify requests. Specify a unique request ID so that
34342// if you must retry your request, the server will know to ignore the
34343// request if it has already been completed.
34344//
34345// For example, consider a situation where you make an initial request
34346// and the request times out. If you make the request again with the
34347// same request ID, the server can check if original operation with the
34348// same request ID was received, and if so, will ignore the second
34349// request. This prevents clients from accidentally creating duplicate
34350// commitments.
34351//
34352// The request ID must be a valid UUID with the exception that zero UUID
34353// is not supported (00000000-0000-0000-0000-000000000000).
34354func (c *AutoscalersUpdateCall) RequestId(requestId string) *AutoscalersUpdateCall {
34355	c.urlParams_.Set("requestId", requestId)
34356	return c
34357}
34358
34359// Fields allows partial responses to be retrieved. See
34360// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34361// for more information.
34362func (c *AutoscalersUpdateCall) Fields(s ...googleapi.Field) *AutoscalersUpdateCall {
34363	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34364	return c
34365}
34366
34367// Context sets the context to be used in this call's Do method. Any
34368// pending HTTP request will be aborted if the provided context is
34369// canceled.
34370func (c *AutoscalersUpdateCall) Context(ctx context.Context) *AutoscalersUpdateCall {
34371	c.ctx_ = ctx
34372	return c
34373}
34374
34375// Header returns an http.Header that can be modified by the caller to
34376// add HTTP headers to the request.
34377func (c *AutoscalersUpdateCall) Header() http.Header {
34378	if c.header_ == nil {
34379		c.header_ = make(http.Header)
34380	}
34381	return c.header_
34382}
34383
34384func (c *AutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
34385	reqHeaders := make(http.Header)
34386	for k, v := range c.header_ {
34387		reqHeaders[k] = v
34388	}
34389	reqHeaders.Set("User-Agent", c.s.userAgent())
34390	var body io.Reader = nil
34391	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
34392	if err != nil {
34393		return nil, err
34394	}
34395	reqHeaders.Set("Content-Type", "application/json")
34396	c.urlParams_.Set("alt", alt)
34397	c.urlParams_.Set("prettyPrint", "false")
34398	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
34399	urls += "?" + c.urlParams_.Encode()
34400	req, err := http.NewRequest("PUT", urls, body)
34401	if err != nil {
34402		return nil, err
34403	}
34404	req.Header = reqHeaders
34405	googleapi.Expand(req.URL, map[string]string{
34406		"project": c.project,
34407		"zone":    c.zone,
34408	})
34409	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34410}
34411
34412// Do executes the "compute.autoscalers.update" call.
34413// Exactly one of *Operation or error will be non-nil. Any non-2xx
34414// status code is an error. Response headers are in either
34415// *Operation.ServerResponse.Header or (if a response was returned at
34416// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
34417// to check whether the returned error was because
34418// http.StatusNotModified was returned.
34419func (c *AutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
34420	gensupport.SetOptions(c.urlParams_, opts...)
34421	res, err := c.doRequest("json")
34422	if res != nil && res.StatusCode == http.StatusNotModified {
34423		if res.Body != nil {
34424			res.Body.Close()
34425		}
34426		return nil, &googleapi.Error{
34427			Code:   res.StatusCode,
34428			Header: res.Header,
34429		}
34430	}
34431	if err != nil {
34432		return nil, err
34433	}
34434	defer googleapi.CloseBody(res)
34435	if err := googleapi.CheckResponse(res); err != nil {
34436		return nil, err
34437	}
34438	ret := &Operation{
34439		ServerResponse: googleapi.ServerResponse{
34440			Header:         res.Header,
34441			HTTPStatusCode: res.StatusCode,
34442		},
34443	}
34444	target := &ret
34445	if err := gensupport.DecodeResponse(target, res); err != nil {
34446		return nil, err
34447	}
34448	return ret, nil
34449	// {
34450	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
34451	//   "httpMethod": "PUT",
34452	//   "id": "compute.autoscalers.update",
34453	//   "parameterOrder": [
34454	//     "project",
34455	//     "zone"
34456	//   ],
34457	//   "parameters": {
34458	//     "autoscaler": {
34459	//       "description": "Name of the autoscaler to update.",
34460	//       "location": "query",
34461	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
34462	//       "type": "string"
34463	//     },
34464	//     "project": {
34465	//       "description": "Project ID for this request.",
34466	//       "location": "path",
34467	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
34468	//       "required": true,
34469	//       "type": "string"
34470	//     },
34471	//     "requestId": {
34472	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
34473	//       "location": "query",
34474	//       "type": "string"
34475	//     },
34476	//     "zone": {
34477	//       "description": "Name of the zone for this request.",
34478	//       "location": "path",
34479	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
34480	//       "required": true,
34481	//       "type": "string"
34482	//     }
34483	//   },
34484	//   "path": "{project}/zones/{zone}/autoscalers",
34485	//   "request": {
34486	//     "$ref": "Autoscaler"
34487	//   },
34488	//   "response": {
34489	//     "$ref": "Operation"
34490	//   },
34491	//   "scopes": [
34492	//     "https://www.googleapis.com/auth/cloud-platform",
34493	//     "https://www.googleapis.com/auth/compute"
34494	//   ]
34495	// }
34496
34497}
34498
34499// method id "compute.backendBuckets.addSignedUrlKey":
34500
34501type BackendBucketsAddSignedUrlKeyCall struct {
34502	s             *Service
34503	project       string
34504	backendBucket string
34505	signedurlkey  *SignedUrlKey
34506	urlParams_    gensupport.URLParams
34507	ctx_          context.Context
34508	header_       http.Header
34509}
34510
34511// AddSignedUrlKey: Adds a key for validating requests with signed URLs
34512// for this backend bucket.
34513func (r *BackendBucketsService) AddSignedUrlKey(project string, backendBucket string, signedurlkey *SignedUrlKey) *BackendBucketsAddSignedUrlKeyCall {
34514	c := &BackendBucketsAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34515	c.project = project
34516	c.backendBucket = backendBucket
34517	c.signedurlkey = signedurlkey
34518	return c
34519}
34520
34521// RequestId sets the optional parameter "requestId": An optional
34522// request ID to identify requests. Specify a unique request ID so that
34523// if you must retry your request, the server will know to ignore the
34524// request if it has already been completed.
34525//
34526// For example, consider a situation where you make an initial request
34527// and the request times out. If you make the request again with the
34528// same request ID, the server can check if original operation with the
34529// same request ID was received, and if so, will ignore the second
34530// request. This prevents clients from accidentally creating duplicate
34531// commitments.
34532//
34533// The request ID must be a valid UUID with the exception that zero UUID
34534// is not supported (00000000-0000-0000-0000-000000000000).
34535func (c *BackendBucketsAddSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsAddSignedUrlKeyCall {
34536	c.urlParams_.Set("requestId", requestId)
34537	return c
34538}
34539
34540// Fields allows partial responses to be retrieved. See
34541// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34542// for more information.
34543func (c *BackendBucketsAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsAddSignedUrlKeyCall {
34544	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34545	return c
34546}
34547
34548// Context sets the context to be used in this call's Do method. Any
34549// pending HTTP request will be aborted if the provided context is
34550// canceled.
34551func (c *BackendBucketsAddSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsAddSignedUrlKeyCall {
34552	c.ctx_ = ctx
34553	return c
34554}
34555
34556// Header returns an http.Header that can be modified by the caller to
34557// add HTTP headers to the request.
34558func (c *BackendBucketsAddSignedUrlKeyCall) Header() http.Header {
34559	if c.header_ == nil {
34560		c.header_ = make(http.Header)
34561	}
34562	return c.header_
34563}
34564
34565func (c *BackendBucketsAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
34566	reqHeaders := make(http.Header)
34567	for k, v := range c.header_ {
34568		reqHeaders[k] = v
34569	}
34570	reqHeaders.Set("User-Agent", c.s.userAgent())
34571	var body io.Reader = nil
34572	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
34573	if err != nil {
34574		return nil, err
34575	}
34576	reqHeaders.Set("Content-Type", "application/json")
34577	c.urlParams_.Set("alt", alt)
34578	c.urlParams_.Set("prettyPrint", "false")
34579	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey")
34580	urls += "?" + c.urlParams_.Encode()
34581	req, err := http.NewRequest("POST", urls, body)
34582	if err != nil {
34583		return nil, err
34584	}
34585	req.Header = reqHeaders
34586	googleapi.Expand(req.URL, map[string]string{
34587		"project":       c.project,
34588		"backendBucket": c.backendBucket,
34589	})
34590	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34591}
34592
34593// Do executes the "compute.backendBuckets.addSignedUrlKey" call.
34594// Exactly one of *Operation or error will be non-nil. Any non-2xx
34595// status code is an error. Response headers are in either
34596// *Operation.ServerResponse.Header or (if a response was returned at
34597// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
34598// to check whether the returned error was because
34599// http.StatusNotModified was returned.
34600func (c *BackendBucketsAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
34601	gensupport.SetOptions(c.urlParams_, opts...)
34602	res, err := c.doRequest("json")
34603	if res != nil && res.StatusCode == http.StatusNotModified {
34604		if res.Body != nil {
34605			res.Body.Close()
34606		}
34607		return nil, &googleapi.Error{
34608			Code:   res.StatusCode,
34609			Header: res.Header,
34610		}
34611	}
34612	if err != nil {
34613		return nil, err
34614	}
34615	defer googleapi.CloseBody(res)
34616	if err := googleapi.CheckResponse(res); err != nil {
34617		return nil, err
34618	}
34619	ret := &Operation{
34620		ServerResponse: googleapi.ServerResponse{
34621			Header:         res.Header,
34622			HTTPStatusCode: res.StatusCode,
34623		},
34624	}
34625	target := &ret
34626	if err := gensupport.DecodeResponse(target, res); err != nil {
34627		return nil, err
34628	}
34629	return ret, nil
34630	// {
34631	//   "description": "Adds a key for validating requests with signed URLs for this backend bucket.",
34632	//   "httpMethod": "POST",
34633	//   "id": "compute.backendBuckets.addSignedUrlKey",
34634	//   "parameterOrder": [
34635	//     "project",
34636	//     "backendBucket"
34637	//   ],
34638	//   "parameters": {
34639	//     "backendBucket": {
34640	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
34641	//       "location": "path",
34642	//       "required": true,
34643	//       "type": "string"
34644	//     },
34645	//     "project": {
34646	//       "description": "Project ID for this request.",
34647	//       "location": "path",
34648	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
34649	//       "required": true,
34650	//       "type": "string"
34651	//     },
34652	//     "requestId": {
34653	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
34654	//       "location": "query",
34655	//       "type": "string"
34656	//     }
34657	//   },
34658	//   "path": "{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey",
34659	//   "request": {
34660	//     "$ref": "SignedUrlKey"
34661	//   },
34662	//   "response": {
34663	//     "$ref": "Operation"
34664	//   },
34665	//   "scopes": [
34666	//     "https://www.googleapis.com/auth/cloud-platform",
34667	//     "https://www.googleapis.com/auth/compute"
34668	//   ]
34669	// }
34670
34671}
34672
34673// method id "compute.backendBuckets.delete":
34674
34675type BackendBucketsDeleteCall struct {
34676	s             *Service
34677	project       string
34678	backendBucket string
34679	urlParams_    gensupport.URLParams
34680	ctx_          context.Context
34681	header_       http.Header
34682}
34683
34684// Delete: Deletes the specified BackendBucket resource.
34685func (r *BackendBucketsService) Delete(project string, backendBucket string) *BackendBucketsDeleteCall {
34686	c := &BackendBucketsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34687	c.project = project
34688	c.backendBucket = backendBucket
34689	return c
34690}
34691
34692// RequestId sets the optional parameter "requestId": An optional
34693// request ID to identify requests. Specify a unique request ID so that
34694// if you must retry your request, the server will know to ignore the
34695// request if it has already been completed.
34696//
34697// For example, consider a situation where you make an initial request
34698// and the request times out. If you make the request again with the
34699// same request ID, the server can check if original operation with the
34700// same request ID was received, and if so, will ignore the second
34701// request. This prevents clients from accidentally creating duplicate
34702// commitments.
34703//
34704// The request ID must be a valid UUID with the exception that zero UUID
34705// is not supported (00000000-0000-0000-0000-000000000000).
34706func (c *BackendBucketsDeleteCall) RequestId(requestId string) *BackendBucketsDeleteCall {
34707	c.urlParams_.Set("requestId", requestId)
34708	return c
34709}
34710
34711// Fields allows partial responses to be retrieved. See
34712// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34713// for more information.
34714func (c *BackendBucketsDeleteCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteCall {
34715	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34716	return c
34717}
34718
34719// Context sets the context to be used in this call's Do method. Any
34720// pending HTTP request will be aborted if the provided context is
34721// canceled.
34722func (c *BackendBucketsDeleteCall) Context(ctx context.Context) *BackendBucketsDeleteCall {
34723	c.ctx_ = ctx
34724	return c
34725}
34726
34727// Header returns an http.Header that can be modified by the caller to
34728// add HTTP headers to the request.
34729func (c *BackendBucketsDeleteCall) Header() http.Header {
34730	if c.header_ == nil {
34731		c.header_ = make(http.Header)
34732	}
34733	return c.header_
34734}
34735
34736func (c *BackendBucketsDeleteCall) doRequest(alt string) (*http.Response, error) {
34737	reqHeaders := make(http.Header)
34738	for k, v := range c.header_ {
34739		reqHeaders[k] = v
34740	}
34741	reqHeaders.Set("User-Agent", c.s.userAgent())
34742	var body io.Reader = nil
34743	c.urlParams_.Set("alt", alt)
34744	c.urlParams_.Set("prettyPrint", "false")
34745	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
34746	urls += "?" + c.urlParams_.Encode()
34747	req, err := http.NewRequest("DELETE", urls, body)
34748	if err != nil {
34749		return nil, err
34750	}
34751	req.Header = reqHeaders
34752	googleapi.Expand(req.URL, map[string]string{
34753		"project":       c.project,
34754		"backendBucket": c.backendBucket,
34755	})
34756	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34757}
34758
34759// Do executes the "compute.backendBuckets.delete" call.
34760// Exactly one of *Operation or error will be non-nil. Any non-2xx
34761// status code is an error. Response headers are in either
34762// *Operation.ServerResponse.Header or (if a response was returned at
34763// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
34764// to check whether the returned error was because
34765// http.StatusNotModified was returned.
34766func (c *BackendBucketsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
34767	gensupport.SetOptions(c.urlParams_, opts...)
34768	res, err := c.doRequest("json")
34769	if res != nil && res.StatusCode == http.StatusNotModified {
34770		if res.Body != nil {
34771			res.Body.Close()
34772		}
34773		return nil, &googleapi.Error{
34774			Code:   res.StatusCode,
34775			Header: res.Header,
34776		}
34777	}
34778	if err != nil {
34779		return nil, err
34780	}
34781	defer googleapi.CloseBody(res)
34782	if err := googleapi.CheckResponse(res); err != nil {
34783		return nil, err
34784	}
34785	ret := &Operation{
34786		ServerResponse: googleapi.ServerResponse{
34787			Header:         res.Header,
34788			HTTPStatusCode: res.StatusCode,
34789		},
34790	}
34791	target := &ret
34792	if err := gensupport.DecodeResponse(target, res); err != nil {
34793		return nil, err
34794	}
34795	return ret, nil
34796	// {
34797	//   "description": "Deletes the specified BackendBucket resource.",
34798	//   "httpMethod": "DELETE",
34799	//   "id": "compute.backendBuckets.delete",
34800	//   "parameterOrder": [
34801	//     "project",
34802	//     "backendBucket"
34803	//   ],
34804	//   "parameters": {
34805	//     "backendBucket": {
34806	//       "description": "Name of the BackendBucket resource to delete.",
34807	//       "location": "path",
34808	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
34809	//       "required": true,
34810	//       "type": "string"
34811	//     },
34812	//     "project": {
34813	//       "description": "Project ID for this request.",
34814	//       "location": "path",
34815	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
34816	//       "required": true,
34817	//       "type": "string"
34818	//     },
34819	//     "requestId": {
34820	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
34821	//       "location": "query",
34822	//       "type": "string"
34823	//     }
34824	//   },
34825	//   "path": "{project}/global/backendBuckets/{backendBucket}",
34826	//   "response": {
34827	//     "$ref": "Operation"
34828	//   },
34829	//   "scopes": [
34830	//     "https://www.googleapis.com/auth/cloud-platform",
34831	//     "https://www.googleapis.com/auth/compute"
34832	//   ]
34833	// }
34834
34835}
34836
34837// method id "compute.backendBuckets.deleteSignedUrlKey":
34838
34839type BackendBucketsDeleteSignedUrlKeyCall struct {
34840	s             *Service
34841	project       string
34842	backendBucket string
34843	urlParams_    gensupport.URLParams
34844	ctx_          context.Context
34845	header_       http.Header
34846}
34847
34848// DeleteSignedUrlKey: Deletes a key for validating requests with signed
34849// URLs for this backend bucket.
34850func (r *BackendBucketsService) DeleteSignedUrlKey(project string, backendBucket string, keyName string) *BackendBucketsDeleteSignedUrlKeyCall {
34851	c := &BackendBucketsDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34852	c.project = project
34853	c.backendBucket = backendBucket
34854	c.urlParams_.Set("keyName", keyName)
34855	return c
34856}
34857
34858// RequestId sets the optional parameter "requestId": An optional
34859// request ID to identify requests. Specify a unique request ID so that
34860// if you must retry your request, the server will know to ignore the
34861// request if it has already been completed.
34862//
34863// For example, consider a situation where you make an initial request
34864// and the request times out. If you make the request again with the
34865// same request ID, the server can check if original operation with the
34866// same request ID was received, and if so, will ignore the second
34867// request. This prevents clients from accidentally creating duplicate
34868// commitments.
34869//
34870// The request ID must be a valid UUID with the exception that zero UUID
34871// is not supported (00000000-0000-0000-0000-000000000000).
34872func (c *BackendBucketsDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsDeleteSignedUrlKeyCall {
34873	c.urlParams_.Set("requestId", requestId)
34874	return c
34875}
34876
34877// Fields allows partial responses to be retrieved. See
34878// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34879// for more information.
34880func (c *BackendBucketsDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteSignedUrlKeyCall {
34881	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34882	return c
34883}
34884
34885// Context sets the context to be used in this call's Do method. Any
34886// pending HTTP request will be aborted if the provided context is
34887// canceled.
34888func (c *BackendBucketsDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsDeleteSignedUrlKeyCall {
34889	c.ctx_ = ctx
34890	return c
34891}
34892
34893// Header returns an http.Header that can be modified by the caller to
34894// add HTTP headers to the request.
34895func (c *BackendBucketsDeleteSignedUrlKeyCall) Header() http.Header {
34896	if c.header_ == nil {
34897		c.header_ = make(http.Header)
34898	}
34899	return c.header_
34900}
34901
34902func (c *BackendBucketsDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
34903	reqHeaders := make(http.Header)
34904	for k, v := range c.header_ {
34905		reqHeaders[k] = v
34906	}
34907	reqHeaders.Set("User-Agent", c.s.userAgent())
34908	var body io.Reader = nil
34909	c.urlParams_.Set("alt", alt)
34910	c.urlParams_.Set("prettyPrint", "false")
34911	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey")
34912	urls += "?" + c.urlParams_.Encode()
34913	req, err := http.NewRequest("POST", urls, body)
34914	if err != nil {
34915		return nil, err
34916	}
34917	req.Header = reqHeaders
34918	googleapi.Expand(req.URL, map[string]string{
34919		"project":       c.project,
34920		"backendBucket": c.backendBucket,
34921	})
34922	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34923}
34924
34925// Do executes the "compute.backendBuckets.deleteSignedUrlKey" call.
34926// Exactly one of *Operation or error will be non-nil. Any non-2xx
34927// status code is an error. Response headers are in either
34928// *Operation.ServerResponse.Header or (if a response was returned at
34929// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
34930// to check whether the returned error was because
34931// http.StatusNotModified was returned.
34932func (c *BackendBucketsDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
34933	gensupport.SetOptions(c.urlParams_, opts...)
34934	res, err := c.doRequest("json")
34935	if res != nil && res.StatusCode == http.StatusNotModified {
34936		if res.Body != nil {
34937			res.Body.Close()
34938		}
34939		return nil, &googleapi.Error{
34940			Code:   res.StatusCode,
34941			Header: res.Header,
34942		}
34943	}
34944	if err != nil {
34945		return nil, err
34946	}
34947	defer googleapi.CloseBody(res)
34948	if err := googleapi.CheckResponse(res); err != nil {
34949		return nil, err
34950	}
34951	ret := &Operation{
34952		ServerResponse: googleapi.ServerResponse{
34953			Header:         res.Header,
34954			HTTPStatusCode: res.StatusCode,
34955		},
34956	}
34957	target := &ret
34958	if err := gensupport.DecodeResponse(target, res); err != nil {
34959		return nil, err
34960	}
34961	return ret, nil
34962	// {
34963	//   "description": "Deletes a key for validating requests with signed URLs for this backend bucket.",
34964	//   "httpMethod": "POST",
34965	//   "id": "compute.backendBuckets.deleteSignedUrlKey",
34966	//   "parameterOrder": [
34967	//     "project",
34968	//     "backendBucket",
34969	//     "keyName"
34970	//   ],
34971	//   "parameters": {
34972	//     "backendBucket": {
34973	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
34974	//       "location": "path",
34975	//       "required": true,
34976	//       "type": "string"
34977	//     },
34978	//     "keyName": {
34979	//       "description": "The name of the Signed URL Key to delete.",
34980	//       "location": "query",
34981	//       "required": true,
34982	//       "type": "string"
34983	//     },
34984	//     "project": {
34985	//       "description": "Project ID for this request.",
34986	//       "location": "path",
34987	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
34988	//       "required": true,
34989	//       "type": "string"
34990	//     },
34991	//     "requestId": {
34992	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
34993	//       "location": "query",
34994	//       "type": "string"
34995	//     }
34996	//   },
34997	//   "path": "{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey",
34998	//   "response": {
34999	//     "$ref": "Operation"
35000	//   },
35001	//   "scopes": [
35002	//     "https://www.googleapis.com/auth/cloud-platform",
35003	//     "https://www.googleapis.com/auth/compute"
35004	//   ]
35005	// }
35006
35007}
35008
35009// method id "compute.backendBuckets.get":
35010
35011type BackendBucketsGetCall struct {
35012	s             *Service
35013	project       string
35014	backendBucket string
35015	urlParams_    gensupport.URLParams
35016	ifNoneMatch_  string
35017	ctx_          context.Context
35018	header_       http.Header
35019}
35020
35021// Get: Returns the specified BackendBucket resource. Gets a list of
35022// available backend buckets by making a list() request.
35023func (r *BackendBucketsService) Get(project string, backendBucket string) *BackendBucketsGetCall {
35024	c := &BackendBucketsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35025	c.project = project
35026	c.backendBucket = backendBucket
35027	return c
35028}
35029
35030// Fields allows partial responses to be retrieved. See
35031// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35032// for more information.
35033func (c *BackendBucketsGetCall) Fields(s ...googleapi.Field) *BackendBucketsGetCall {
35034	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35035	return c
35036}
35037
35038// IfNoneMatch sets the optional parameter which makes the operation
35039// fail if the object's ETag matches the given value. This is useful for
35040// getting updates only after the object has changed since the last
35041// request. Use googleapi.IsNotModified to check whether the response
35042// error from Do is the result of In-None-Match.
35043func (c *BackendBucketsGetCall) IfNoneMatch(entityTag string) *BackendBucketsGetCall {
35044	c.ifNoneMatch_ = entityTag
35045	return c
35046}
35047
35048// Context sets the context to be used in this call's Do method. Any
35049// pending HTTP request will be aborted if the provided context is
35050// canceled.
35051func (c *BackendBucketsGetCall) Context(ctx context.Context) *BackendBucketsGetCall {
35052	c.ctx_ = ctx
35053	return c
35054}
35055
35056// Header returns an http.Header that can be modified by the caller to
35057// add HTTP headers to the request.
35058func (c *BackendBucketsGetCall) Header() http.Header {
35059	if c.header_ == nil {
35060		c.header_ = make(http.Header)
35061	}
35062	return c.header_
35063}
35064
35065func (c *BackendBucketsGetCall) doRequest(alt string) (*http.Response, error) {
35066	reqHeaders := make(http.Header)
35067	for k, v := range c.header_ {
35068		reqHeaders[k] = v
35069	}
35070	reqHeaders.Set("User-Agent", c.s.userAgent())
35071	if c.ifNoneMatch_ != "" {
35072		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
35073	}
35074	var body io.Reader = nil
35075	c.urlParams_.Set("alt", alt)
35076	c.urlParams_.Set("prettyPrint", "false")
35077	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
35078	urls += "?" + c.urlParams_.Encode()
35079	req, err := http.NewRequest("GET", urls, body)
35080	if err != nil {
35081		return nil, err
35082	}
35083	req.Header = reqHeaders
35084	googleapi.Expand(req.URL, map[string]string{
35085		"project":       c.project,
35086		"backendBucket": c.backendBucket,
35087	})
35088	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35089}
35090
35091// Do executes the "compute.backendBuckets.get" call.
35092// Exactly one of *BackendBucket or error will be non-nil. Any non-2xx
35093// status code is an error. Response headers are in either
35094// *BackendBucket.ServerResponse.Header or (if a response was returned
35095// at all) in error.(*googleapi.Error).Header. Use
35096// googleapi.IsNotModified to check whether the returned error was
35097// because http.StatusNotModified was returned.
35098func (c *BackendBucketsGetCall) Do(opts ...googleapi.CallOption) (*BackendBucket, error) {
35099	gensupport.SetOptions(c.urlParams_, opts...)
35100	res, err := c.doRequest("json")
35101	if res != nil && res.StatusCode == http.StatusNotModified {
35102		if res.Body != nil {
35103			res.Body.Close()
35104		}
35105		return nil, &googleapi.Error{
35106			Code:   res.StatusCode,
35107			Header: res.Header,
35108		}
35109	}
35110	if err != nil {
35111		return nil, err
35112	}
35113	defer googleapi.CloseBody(res)
35114	if err := googleapi.CheckResponse(res); err != nil {
35115		return nil, err
35116	}
35117	ret := &BackendBucket{
35118		ServerResponse: googleapi.ServerResponse{
35119			Header:         res.Header,
35120			HTTPStatusCode: res.StatusCode,
35121		},
35122	}
35123	target := &ret
35124	if err := gensupport.DecodeResponse(target, res); err != nil {
35125		return nil, err
35126	}
35127	return ret, nil
35128	// {
35129	//   "description": "Returns the specified BackendBucket resource. Gets a list of available backend buckets by making a list() request.",
35130	//   "httpMethod": "GET",
35131	//   "id": "compute.backendBuckets.get",
35132	//   "parameterOrder": [
35133	//     "project",
35134	//     "backendBucket"
35135	//   ],
35136	//   "parameters": {
35137	//     "backendBucket": {
35138	//       "description": "Name of the BackendBucket resource to return.",
35139	//       "location": "path",
35140	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
35141	//       "required": true,
35142	//       "type": "string"
35143	//     },
35144	//     "project": {
35145	//       "description": "Project ID for this request.",
35146	//       "location": "path",
35147	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
35148	//       "required": true,
35149	//       "type": "string"
35150	//     }
35151	//   },
35152	//   "path": "{project}/global/backendBuckets/{backendBucket}",
35153	//   "response": {
35154	//     "$ref": "BackendBucket"
35155	//   },
35156	//   "scopes": [
35157	//     "https://www.googleapis.com/auth/cloud-platform",
35158	//     "https://www.googleapis.com/auth/compute",
35159	//     "https://www.googleapis.com/auth/compute.readonly"
35160	//   ]
35161	// }
35162
35163}
35164
35165// method id "compute.backendBuckets.insert":
35166
35167type BackendBucketsInsertCall struct {
35168	s             *Service
35169	project       string
35170	backendbucket *BackendBucket
35171	urlParams_    gensupport.URLParams
35172	ctx_          context.Context
35173	header_       http.Header
35174}
35175
35176// Insert: Creates a BackendBucket resource in the specified project
35177// using the data included in the request.
35178func (r *BackendBucketsService) Insert(project string, backendbucket *BackendBucket) *BackendBucketsInsertCall {
35179	c := &BackendBucketsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35180	c.project = project
35181	c.backendbucket = backendbucket
35182	return c
35183}
35184
35185// RequestId sets the optional parameter "requestId": An optional
35186// request ID to identify requests. Specify a unique request ID so that
35187// if you must retry your request, the server will know to ignore the
35188// request if it has already been completed.
35189//
35190// For example, consider a situation where you make an initial request
35191// and the request times out. If you make the request again with the
35192// same request ID, the server can check if original operation with the
35193// same request ID was received, and if so, will ignore the second
35194// request. This prevents clients from accidentally creating duplicate
35195// commitments.
35196//
35197// The request ID must be a valid UUID with the exception that zero UUID
35198// is not supported (00000000-0000-0000-0000-000000000000).
35199func (c *BackendBucketsInsertCall) RequestId(requestId string) *BackendBucketsInsertCall {
35200	c.urlParams_.Set("requestId", requestId)
35201	return c
35202}
35203
35204// Fields allows partial responses to be retrieved. See
35205// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35206// for more information.
35207func (c *BackendBucketsInsertCall) Fields(s ...googleapi.Field) *BackendBucketsInsertCall {
35208	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35209	return c
35210}
35211
35212// Context sets the context to be used in this call's Do method. Any
35213// pending HTTP request will be aborted if the provided context is
35214// canceled.
35215func (c *BackendBucketsInsertCall) Context(ctx context.Context) *BackendBucketsInsertCall {
35216	c.ctx_ = ctx
35217	return c
35218}
35219
35220// Header returns an http.Header that can be modified by the caller to
35221// add HTTP headers to the request.
35222func (c *BackendBucketsInsertCall) Header() http.Header {
35223	if c.header_ == nil {
35224		c.header_ = make(http.Header)
35225	}
35226	return c.header_
35227}
35228
35229func (c *BackendBucketsInsertCall) doRequest(alt string) (*http.Response, error) {
35230	reqHeaders := make(http.Header)
35231	for k, v := range c.header_ {
35232		reqHeaders[k] = v
35233	}
35234	reqHeaders.Set("User-Agent", c.s.userAgent())
35235	var body io.Reader = nil
35236	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
35237	if err != nil {
35238		return nil, err
35239	}
35240	reqHeaders.Set("Content-Type", "application/json")
35241	c.urlParams_.Set("alt", alt)
35242	c.urlParams_.Set("prettyPrint", "false")
35243	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets")
35244	urls += "?" + c.urlParams_.Encode()
35245	req, err := http.NewRequest("POST", urls, body)
35246	if err != nil {
35247		return nil, err
35248	}
35249	req.Header = reqHeaders
35250	googleapi.Expand(req.URL, map[string]string{
35251		"project": c.project,
35252	})
35253	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35254}
35255
35256// Do executes the "compute.backendBuckets.insert" call.
35257// Exactly one of *Operation or error will be non-nil. Any non-2xx
35258// status code is an error. Response headers are in either
35259// *Operation.ServerResponse.Header or (if a response was returned at
35260// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
35261// to check whether the returned error was because
35262// http.StatusNotModified was returned.
35263func (c *BackendBucketsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
35264	gensupport.SetOptions(c.urlParams_, opts...)
35265	res, err := c.doRequest("json")
35266	if res != nil && res.StatusCode == http.StatusNotModified {
35267		if res.Body != nil {
35268			res.Body.Close()
35269		}
35270		return nil, &googleapi.Error{
35271			Code:   res.StatusCode,
35272			Header: res.Header,
35273		}
35274	}
35275	if err != nil {
35276		return nil, err
35277	}
35278	defer googleapi.CloseBody(res)
35279	if err := googleapi.CheckResponse(res); err != nil {
35280		return nil, err
35281	}
35282	ret := &Operation{
35283		ServerResponse: googleapi.ServerResponse{
35284			Header:         res.Header,
35285			HTTPStatusCode: res.StatusCode,
35286		},
35287	}
35288	target := &ret
35289	if err := gensupport.DecodeResponse(target, res); err != nil {
35290		return nil, err
35291	}
35292	return ret, nil
35293	// {
35294	//   "description": "Creates a BackendBucket resource in the specified project using the data included in the request.",
35295	//   "httpMethod": "POST",
35296	//   "id": "compute.backendBuckets.insert",
35297	//   "parameterOrder": [
35298	//     "project"
35299	//   ],
35300	//   "parameters": {
35301	//     "project": {
35302	//       "description": "Project ID for this request.",
35303	//       "location": "path",
35304	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
35305	//       "required": true,
35306	//       "type": "string"
35307	//     },
35308	//     "requestId": {
35309	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
35310	//       "location": "query",
35311	//       "type": "string"
35312	//     }
35313	//   },
35314	//   "path": "{project}/global/backendBuckets",
35315	//   "request": {
35316	//     "$ref": "BackendBucket"
35317	//   },
35318	//   "response": {
35319	//     "$ref": "Operation"
35320	//   },
35321	//   "scopes": [
35322	//     "https://www.googleapis.com/auth/cloud-platform",
35323	//     "https://www.googleapis.com/auth/compute"
35324	//   ]
35325	// }
35326
35327}
35328
35329// method id "compute.backendBuckets.list":
35330
35331type BackendBucketsListCall struct {
35332	s            *Service
35333	project      string
35334	urlParams_   gensupport.URLParams
35335	ifNoneMatch_ string
35336	ctx_         context.Context
35337	header_      http.Header
35338}
35339
35340// List: Retrieves the list of BackendBucket resources available to the
35341// specified project.
35342func (r *BackendBucketsService) List(project string) *BackendBucketsListCall {
35343	c := &BackendBucketsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35344	c.project = project
35345	return c
35346}
35347
35348// Filter sets the optional parameter "filter": A filter expression that
35349// filters resources listed in the response. The expression must specify
35350// the field name, a comparison operator, and the value that you want to
35351// use for filtering. The value must be a string, a number, or a
35352// boolean. The comparison operator must be either =, !=, >, or <.
35353//
35354// For example, if you are filtering Compute Engine instances, you can
35355// exclude instances named example-instance by specifying name !=
35356// example-instance.
35357//
35358// You can also filter nested fields. For example, you could specify
35359// scheduling.automaticRestart = false to include instances only if they
35360// are not scheduled for automatic restarts. You can use filtering on
35361// nested fields to filter based on resource labels.
35362//
35363// To filter on multiple expressions, provide each separate expression
35364// within parentheses. For example, (scheduling.automaticRestart = true)
35365// (cpuPlatform = "Intel Skylake"). By default, each expression is an
35366// AND expression. However, you can include AND and OR expressions
35367// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
35368// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
35369// true).
35370func (c *BackendBucketsListCall) Filter(filter string) *BackendBucketsListCall {
35371	c.urlParams_.Set("filter", filter)
35372	return c
35373}
35374
35375// MaxResults sets the optional parameter "maxResults": The maximum
35376// number of results per page that should be returned. If the number of
35377// available results is larger than maxResults, Compute Engine returns a
35378// nextPageToken that can be used to get the next page of results in
35379// subsequent list requests. Acceptable values are 0 to 500, inclusive.
35380// (Default: 500)
35381func (c *BackendBucketsListCall) MaxResults(maxResults int64) *BackendBucketsListCall {
35382	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
35383	return c
35384}
35385
35386// OrderBy sets the optional parameter "orderBy": Sorts list results by
35387// a certain order. By default, results are returned in alphanumerical
35388// order based on the resource name.
35389//
35390// You can also sort results in descending order based on the creation
35391// timestamp using orderBy="creationTimestamp desc". This sorts results
35392// based on the creationTimestamp field in reverse chronological order
35393// (newest result first). Use this to sort resources like operations so
35394// that the newest operation is returned first.
35395//
35396// Currently, only sorting by name or creationTimestamp desc is
35397// supported.
35398func (c *BackendBucketsListCall) OrderBy(orderBy string) *BackendBucketsListCall {
35399	c.urlParams_.Set("orderBy", orderBy)
35400	return c
35401}
35402
35403// PageToken sets the optional parameter "pageToken": Specifies a page
35404// token to use. Set pageToken to the nextPageToken returned by a
35405// previous list request to get the next page of results.
35406func (c *BackendBucketsListCall) PageToken(pageToken string) *BackendBucketsListCall {
35407	c.urlParams_.Set("pageToken", pageToken)
35408	return c
35409}
35410
35411// Fields allows partial responses to be retrieved. See
35412// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35413// for more information.
35414func (c *BackendBucketsListCall) Fields(s ...googleapi.Field) *BackendBucketsListCall {
35415	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35416	return c
35417}
35418
35419// IfNoneMatch sets the optional parameter which makes the operation
35420// fail if the object's ETag matches the given value. This is useful for
35421// getting updates only after the object has changed since the last
35422// request. Use googleapi.IsNotModified to check whether the response
35423// error from Do is the result of In-None-Match.
35424func (c *BackendBucketsListCall) IfNoneMatch(entityTag string) *BackendBucketsListCall {
35425	c.ifNoneMatch_ = entityTag
35426	return c
35427}
35428
35429// Context sets the context to be used in this call's Do method. Any
35430// pending HTTP request will be aborted if the provided context is
35431// canceled.
35432func (c *BackendBucketsListCall) Context(ctx context.Context) *BackendBucketsListCall {
35433	c.ctx_ = ctx
35434	return c
35435}
35436
35437// Header returns an http.Header that can be modified by the caller to
35438// add HTTP headers to the request.
35439func (c *BackendBucketsListCall) Header() http.Header {
35440	if c.header_ == nil {
35441		c.header_ = make(http.Header)
35442	}
35443	return c.header_
35444}
35445
35446func (c *BackendBucketsListCall) doRequest(alt string) (*http.Response, error) {
35447	reqHeaders := make(http.Header)
35448	for k, v := range c.header_ {
35449		reqHeaders[k] = v
35450	}
35451	reqHeaders.Set("User-Agent", c.s.userAgent())
35452	if c.ifNoneMatch_ != "" {
35453		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
35454	}
35455	var body io.Reader = nil
35456	c.urlParams_.Set("alt", alt)
35457	c.urlParams_.Set("prettyPrint", "false")
35458	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets")
35459	urls += "?" + c.urlParams_.Encode()
35460	req, err := http.NewRequest("GET", urls, body)
35461	if err != nil {
35462		return nil, err
35463	}
35464	req.Header = reqHeaders
35465	googleapi.Expand(req.URL, map[string]string{
35466		"project": c.project,
35467	})
35468	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35469}
35470
35471// Do executes the "compute.backendBuckets.list" call.
35472// Exactly one of *BackendBucketList or error will be non-nil. Any
35473// non-2xx status code is an error. Response headers are in either
35474// *BackendBucketList.ServerResponse.Header or (if a response was
35475// returned at all) in error.(*googleapi.Error).Header. Use
35476// googleapi.IsNotModified to check whether the returned error was
35477// because http.StatusNotModified was returned.
35478func (c *BackendBucketsListCall) Do(opts ...googleapi.CallOption) (*BackendBucketList, error) {
35479	gensupport.SetOptions(c.urlParams_, opts...)
35480	res, err := c.doRequest("json")
35481	if res != nil && res.StatusCode == http.StatusNotModified {
35482		if res.Body != nil {
35483			res.Body.Close()
35484		}
35485		return nil, &googleapi.Error{
35486			Code:   res.StatusCode,
35487			Header: res.Header,
35488		}
35489	}
35490	if err != nil {
35491		return nil, err
35492	}
35493	defer googleapi.CloseBody(res)
35494	if err := googleapi.CheckResponse(res); err != nil {
35495		return nil, err
35496	}
35497	ret := &BackendBucketList{
35498		ServerResponse: googleapi.ServerResponse{
35499			Header:         res.Header,
35500			HTTPStatusCode: res.StatusCode,
35501		},
35502	}
35503	target := &ret
35504	if err := gensupport.DecodeResponse(target, res); err != nil {
35505		return nil, err
35506	}
35507	return ret, nil
35508	// {
35509	//   "description": "Retrieves the list of BackendBucket resources available to the specified project.",
35510	//   "httpMethod": "GET",
35511	//   "id": "compute.backendBuckets.list",
35512	//   "parameterOrder": [
35513	//     "project"
35514	//   ],
35515	//   "parameters": {
35516	//     "filter": {
35517	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
35518	//       "location": "query",
35519	//       "type": "string"
35520	//     },
35521	//     "maxResults": {
35522	//       "default": "500",
35523	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
35524	//       "format": "uint32",
35525	//       "location": "query",
35526	//       "minimum": "0",
35527	//       "type": "integer"
35528	//     },
35529	//     "orderBy": {
35530	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
35531	//       "location": "query",
35532	//       "type": "string"
35533	//     },
35534	//     "pageToken": {
35535	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
35536	//       "location": "query",
35537	//       "type": "string"
35538	//     },
35539	//     "project": {
35540	//       "description": "Project ID for this request.",
35541	//       "location": "path",
35542	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
35543	//       "required": true,
35544	//       "type": "string"
35545	//     }
35546	//   },
35547	//   "path": "{project}/global/backendBuckets",
35548	//   "response": {
35549	//     "$ref": "BackendBucketList"
35550	//   },
35551	//   "scopes": [
35552	//     "https://www.googleapis.com/auth/cloud-platform",
35553	//     "https://www.googleapis.com/auth/compute",
35554	//     "https://www.googleapis.com/auth/compute.readonly"
35555	//   ]
35556	// }
35557
35558}
35559
35560// Pages invokes f for each page of results.
35561// A non-nil error returned from f will halt the iteration.
35562// The provided context supersedes any context provided to the Context method.
35563func (c *BackendBucketsListCall) Pages(ctx context.Context, f func(*BackendBucketList) error) error {
35564	c.ctx_ = ctx
35565	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
35566	for {
35567		x, err := c.Do()
35568		if err != nil {
35569			return err
35570		}
35571		if err := f(x); err != nil {
35572			return err
35573		}
35574		if x.NextPageToken == "" {
35575			return nil
35576		}
35577		c.PageToken(x.NextPageToken)
35578	}
35579}
35580
35581// method id "compute.backendBuckets.patch":
35582
35583type BackendBucketsPatchCall struct {
35584	s             *Service
35585	project       string
35586	backendBucket string
35587	backendbucket *BackendBucket
35588	urlParams_    gensupport.URLParams
35589	ctx_          context.Context
35590	header_       http.Header
35591}
35592
35593// Patch: Updates the specified BackendBucket resource with the data
35594// included in the request. This method supports PATCH semantics and
35595// uses the JSON merge patch format and processing rules.
35596func (r *BackendBucketsService) Patch(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsPatchCall {
35597	c := &BackendBucketsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35598	c.project = project
35599	c.backendBucket = backendBucket
35600	c.backendbucket = backendbucket
35601	return c
35602}
35603
35604// RequestId sets the optional parameter "requestId": An optional
35605// request ID to identify requests. Specify a unique request ID so that
35606// if you must retry your request, the server will know to ignore the
35607// request if it has already been completed.
35608//
35609// For example, consider a situation where you make an initial request
35610// and the request times out. If you make the request again with the
35611// same request ID, the server can check if original operation with the
35612// same request ID was received, and if so, will ignore the second
35613// request. This prevents clients from accidentally creating duplicate
35614// commitments.
35615//
35616// The request ID must be a valid UUID with the exception that zero UUID
35617// is not supported (00000000-0000-0000-0000-000000000000).
35618func (c *BackendBucketsPatchCall) RequestId(requestId string) *BackendBucketsPatchCall {
35619	c.urlParams_.Set("requestId", requestId)
35620	return c
35621}
35622
35623// Fields allows partial responses to be retrieved. See
35624// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35625// for more information.
35626func (c *BackendBucketsPatchCall) Fields(s ...googleapi.Field) *BackendBucketsPatchCall {
35627	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35628	return c
35629}
35630
35631// Context sets the context to be used in this call's Do method. Any
35632// pending HTTP request will be aborted if the provided context is
35633// canceled.
35634func (c *BackendBucketsPatchCall) Context(ctx context.Context) *BackendBucketsPatchCall {
35635	c.ctx_ = ctx
35636	return c
35637}
35638
35639// Header returns an http.Header that can be modified by the caller to
35640// add HTTP headers to the request.
35641func (c *BackendBucketsPatchCall) Header() http.Header {
35642	if c.header_ == nil {
35643		c.header_ = make(http.Header)
35644	}
35645	return c.header_
35646}
35647
35648func (c *BackendBucketsPatchCall) doRequest(alt string) (*http.Response, error) {
35649	reqHeaders := make(http.Header)
35650	for k, v := range c.header_ {
35651		reqHeaders[k] = v
35652	}
35653	reqHeaders.Set("User-Agent", c.s.userAgent())
35654	var body io.Reader = nil
35655	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
35656	if err != nil {
35657		return nil, err
35658	}
35659	reqHeaders.Set("Content-Type", "application/json")
35660	c.urlParams_.Set("alt", alt)
35661	c.urlParams_.Set("prettyPrint", "false")
35662	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
35663	urls += "?" + c.urlParams_.Encode()
35664	req, err := http.NewRequest("PATCH", urls, body)
35665	if err != nil {
35666		return nil, err
35667	}
35668	req.Header = reqHeaders
35669	googleapi.Expand(req.URL, map[string]string{
35670		"project":       c.project,
35671		"backendBucket": c.backendBucket,
35672	})
35673	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35674}
35675
35676// Do executes the "compute.backendBuckets.patch" call.
35677// Exactly one of *Operation or error will be non-nil. Any non-2xx
35678// status code is an error. Response headers are in either
35679// *Operation.ServerResponse.Header or (if a response was returned at
35680// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
35681// to check whether the returned error was because
35682// http.StatusNotModified was returned.
35683func (c *BackendBucketsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
35684	gensupport.SetOptions(c.urlParams_, opts...)
35685	res, err := c.doRequest("json")
35686	if res != nil && res.StatusCode == http.StatusNotModified {
35687		if res.Body != nil {
35688			res.Body.Close()
35689		}
35690		return nil, &googleapi.Error{
35691			Code:   res.StatusCode,
35692			Header: res.Header,
35693		}
35694	}
35695	if err != nil {
35696		return nil, err
35697	}
35698	defer googleapi.CloseBody(res)
35699	if err := googleapi.CheckResponse(res); err != nil {
35700		return nil, err
35701	}
35702	ret := &Operation{
35703		ServerResponse: googleapi.ServerResponse{
35704			Header:         res.Header,
35705			HTTPStatusCode: res.StatusCode,
35706		},
35707	}
35708	target := &ret
35709	if err := gensupport.DecodeResponse(target, res); err != nil {
35710		return nil, err
35711	}
35712	return ret, nil
35713	// {
35714	//   "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.",
35715	//   "httpMethod": "PATCH",
35716	//   "id": "compute.backendBuckets.patch",
35717	//   "parameterOrder": [
35718	//     "project",
35719	//     "backendBucket"
35720	//   ],
35721	//   "parameters": {
35722	//     "backendBucket": {
35723	//       "description": "Name of the BackendBucket resource to patch.",
35724	//       "location": "path",
35725	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
35726	//       "required": true,
35727	//       "type": "string"
35728	//     },
35729	//     "project": {
35730	//       "description": "Project ID for this request.",
35731	//       "location": "path",
35732	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
35733	//       "required": true,
35734	//       "type": "string"
35735	//     },
35736	//     "requestId": {
35737	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
35738	//       "location": "query",
35739	//       "type": "string"
35740	//     }
35741	//   },
35742	//   "path": "{project}/global/backendBuckets/{backendBucket}",
35743	//   "request": {
35744	//     "$ref": "BackendBucket"
35745	//   },
35746	//   "response": {
35747	//     "$ref": "Operation"
35748	//   },
35749	//   "scopes": [
35750	//     "https://www.googleapis.com/auth/cloud-platform",
35751	//     "https://www.googleapis.com/auth/compute"
35752	//   ]
35753	// }
35754
35755}
35756
35757// method id "compute.backendBuckets.update":
35758
35759type BackendBucketsUpdateCall struct {
35760	s             *Service
35761	project       string
35762	backendBucket string
35763	backendbucket *BackendBucket
35764	urlParams_    gensupport.URLParams
35765	ctx_          context.Context
35766	header_       http.Header
35767}
35768
35769// Update: Updates the specified BackendBucket resource with the data
35770// included in the request.
35771func (r *BackendBucketsService) Update(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsUpdateCall {
35772	c := &BackendBucketsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35773	c.project = project
35774	c.backendBucket = backendBucket
35775	c.backendbucket = backendbucket
35776	return c
35777}
35778
35779// RequestId sets the optional parameter "requestId": An optional
35780// request ID to identify requests. Specify a unique request ID so that
35781// if you must retry your request, the server will know to ignore the
35782// request if it has already been completed.
35783//
35784// For example, consider a situation where you make an initial request
35785// and the request times out. If you make the request again with the
35786// same request ID, the server can check if original operation with the
35787// same request ID was received, and if so, will ignore the second
35788// request. This prevents clients from accidentally creating duplicate
35789// commitments.
35790//
35791// The request ID must be a valid UUID with the exception that zero UUID
35792// is not supported (00000000-0000-0000-0000-000000000000).
35793func (c *BackendBucketsUpdateCall) RequestId(requestId string) *BackendBucketsUpdateCall {
35794	c.urlParams_.Set("requestId", requestId)
35795	return c
35796}
35797
35798// Fields allows partial responses to be retrieved. See
35799// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35800// for more information.
35801func (c *BackendBucketsUpdateCall) Fields(s ...googleapi.Field) *BackendBucketsUpdateCall {
35802	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35803	return c
35804}
35805
35806// Context sets the context to be used in this call's Do method. Any
35807// pending HTTP request will be aborted if the provided context is
35808// canceled.
35809func (c *BackendBucketsUpdateCall) Context(ctx context.Context) *BackendBucketsUpdateCall {
35810	c.ctx_ = ctx
35811	return c
35812}
35813
35814// Header returns an http.Header that can be modified by the caller to
35815// add HTTP headers to the request.
35816func (c *BackendBucketsUpdateCall) Header() http.Header {
35817	if c.header_ == nil {
35818		c.header_ = make(http.Header)
35819	}
35820	return c.header_
35821}
35822
35823func (c *BackendBucketsUpdateCall) doRequest(alt string) (*http.Response, error) {
35824	reqHeaders := make(http.Header)
35825	for k, v := range c.header_ {
35826		reqHeaders[k] = v
35827	}
35828	reqHeaders.Set("User-Agent", c.s.userAgent())
35829	var body io.Reader = nil
35830	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
35831	if err != nil {
35832		return nil, err
35833	}
35834	reqHeaders.Set("Content-Type", "application/json")
35835	c.urlParams_.Set("alt", alt)
35836	c.urlParams_.Set("prettyPrint", "false")
35837	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
35838	urls += "?" + c.urlParams_.Encode()
35839	req, err := http.NewRequest("PUT", urls, body)
35840	if err != nil {
35841		return nil, err
35842	}
35843	req.Header = reqHeaders
35844	googleapi.Expand(req.URL, map[string]string{
35845		"project":       c.project,
35846		"backendBucket": c.backendBucket,
35847	})
35848	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35849}
35850
35851// Do executes the "compute.backendBuckets.update" call.
35852// Exactly one of *Operation or error will be non-nil. Any non-2xx
35853// status code is an error. Response headers are in either
35854// *Operation.ServerResponse.Header or (if a response was returned at
35855// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
35856// to check whether the returned error was because
35857// http.StatusNotModified was returned.
35858func (c *BackendBucketsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
35859	gensupport.SetOptions(c.urlParams_, opts...)
35860	res, err := c.doRequest("json")
35861	if res != nil && res.StatusCode == http.StatusNotModified {
35862		if res.Body != nil {
35863			res.Body.Close()
35864		}
35865		return nil, &googleapi.Error{
35866			Code:   res.StatusCode,
35867			Header: res.Header,
35868		}
35869	}
35870	if err != nil {
35871		return nil, err
35872	}
35873	defer googleapi.CloseBody(res)
35874	if err := googleapi.CheckResponse(res); err != nil {
35875		return nil, err
35876	}
35877	ret := &Operation{
35878		ServerResponse: googleapi.ServerResponse{
35879			Header:         res.Header,
35880			HTTPStatusCode: res.StatusCode,
35881		},
35882	}
35883	target := &ret
35884	if err := gensupport.DecodeResponse(target, res); err != nil {
35885		return nil, err
35886	}
35887	return ret, nil
35888	// {
35889	//   "description": "Updates the specified BackendBucket resource with the data included in the request.",
35890	//   "httpMethod": "PUT",
35891	//   "id": "compute.backendBuckets.update",
35892	//   "parameterOrder": [
35893	//     "project",
35894	//     "backendBucket"
35895	//   ],
35896	//   "parameters": {
35897	//     "backendBucket": {
35898	//       "description": "Name of the BackendBucket resource to update.",
35899	//       "location": "path",
35900	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
35901	//       "required": true,
35902	//       "type": "string"
35903	//     },
35904	//     "project": {
35905	//       "description": "Project ID for this request.",
35906	//       "location": "path",
35907	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
35908	//       "required": true,
35909	//       "type": "string"
35910	//     },
35911	//     "requestId": {
35912	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
35913	//       "location": "query",
35914	//       "type": "string"
35915	//     }
35916	//   },
35917	//   "path": "{project}/global/backendBuckets/{backendBucket}",
35918	//   "request": {
35919	//     "$ref": "BackendBucket"
35920	//   },
35921	//   "response": {
35922	//     "$ref": "Operation"
35923	//   },
35924	//   "scopes": [
35925	//     "https://www.googleapis.com/auth/cloud-platform",
35926	//     "https://www.googleapis.com/auth/compute"
35927	//   ]
35928	// }
35929
35930}
35931
35932// method id "compute.backendServices.addSignedUrlKey":
35933
35934type BackendServicesAddSignedUrlKeyCall struct {
35935	s              *Service
35936	project        string
35937	backendService string
35938	signedurlkey   *SignedUrlKey
35939	urlParams_     gensupport.URLParams
35940	ctx_           context.Context
35941	header_        http.Header
35942}
35943
35944// AddSignedUrlKey: Adds a key for validating requests with signed URLs
35945// for this backend service.
35946func (r *BackendServicesService) AddSignedUrlKey(project string, backendService string, signedurlkey *SignedUrlKey) *BackendServicesAddSignedUrlKeyCall {
35947	c := &BackendServicesAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35948	c.project = project
35949	c.backendService = backendService
35950	c.signedurlkey = signedurlkey
35951	return c
35952}
35953
35954// RequestId sets the optional parameter "requestId": An optional
35955// request ID to identify requests. Specify a unique request ID so that
35956// if you must retry your request, the server will know to ignore the
35957// request if it has already been completed.
35958//
35959// For example, consider a situation where you make an initial request
35960// and the request times out. If you make the request again with the
35961// same request ID, the server can check if original operation with the
35962// same request ID was received, and if so, will ignore the second
35963// request. This prevents clients from accidentally creating duplicate
35964// commitments.
35965//
35966// The request ID must be a valid UUID with the exception that zero UUID
35967// is not supported (00000000-0000-0000-0000-000000000000).
35968func (c *BackendServicesAddSignedUrlKeyCall) RequestId(requestId string) *BackendServicesAddSignedUrlKeyCall {
35969	c.urlParams_.Set("requestId", requestId)
35970	return c
35971}
35972
35973// Fields allows partial responses to be retrieved. See
35974// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35975// for more information.
35976func (c *BackendServicesAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesAddSignedUrlKeyCall {
35977	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35978	return c
35979}
35980
35981// Context sets the context to be used in this call's Do method. Any
35982// pending HTTP request will be aborted if the provided context is
35983// canceled.
35984func (c *BackendServicesAddSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesAddSignedUrlKeyCall {
35985	c.ctx_ = ctx
35986	return c
35987}
35988
35989// Header returns an http.Header that can be modified by the caller to
35990// add HTTP headers to the request.
35991func (c *BackendServicesAddSignedUrlKeyCall) Header() http.Header {
35992	if c.header_ == nil {
35993		c.header_ = make(http.Header)
35994	}
35995	return c.header_
35996}
35997
35998func (c *BackendServicesAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
35999	reqHeaders := make(http.Header)
36000	for k, v := range c.header_ {
36001		reqHeaders[k] = v
36002	}
36003	reqHeaders.Set("User-Agent", c.s.userAgent())
36004	var body io.Reader = nil
36005	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
36006	if err != nil {
36007		return nil, err
36008	}
36009	reqHeaders.Set("Content-Type", "application/json")
36010	c.urlParams_.Set("alt", alt)
36011	c.urlParams_.Set("prettyPrint", "false")
36012	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/addSignedUrlKey")
36013	urls += "?" + c.urlParams_.Encode()
36014	req, err := http.NewRequest("POST", urls, body)
36015	if err != nil {
36016		return nil, err
36017	}
36018	req.Header = reqHeaders
36019	googleapi.Expand(req.URL, map[string]string{
36020		"project":        c.project,
36021		"backendService": c.backendService,
36022	})
36023	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36024}
36025
36026// Do executes the "compute.backendServices.addSignedUrlKey" call.
36027// Exactly one of *Operation or error will be non-nil. Any non-2xx
36028// status code is an error. Response headers are in either
36029// *Operation.ServerResponse.Header or (if a response was returned at
36030// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
36031// to check whether the returned error was because
36032// http.StatusNotModified was returned.
36033func (c *BackendServicesAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
36034	gensupport.SetOptions(c.urlParams_, opts...)
36035	res, err := c.doRequest("json")
36036	if res != nil && res.StatusCode == http.StatusNotModified {
36037		if res.Body != nil {
36038			res.Body.Close()
36039		}
36040		return nil, &googleapi.Error{
36041			Code:   res.StatusCode,
36042			Header: res.Header,
36043		}
36044	}
36045	if err != nil {
36046		return nil, err
36047	}
36048	defer googleapi.CloseBody(res)
36049	if err := googleapi.CheckResponse(res); err != nil {
36050		return nil, err
36051	}
36052	ret := &Operation{
36053		ServerResponse: googleapi.ServerResponse{
36054			Header:         res.Header,
36055			HTTPStatusCode: res.StatusCode,
36056		},
36057	}
36058	target := &ret
36059	if err := gensupport.DecodeResponse(target, res); err != nil {
36060		return nil, err
36061	}
36062	return ret, nil
36063	// {
36064	//   "description": "Adds a key for validating requests with signed URLs for this backend service.",
36065	//   "httpMethod": "POST",
36066	//   "id": "compute.backendServices.addSignedUrlKey",
36067	//   "parameterOrder": [
36068	//     "project",
36069	//     "backendService"
36070	//   ],
36071	//   "parameters": {
36072	//     "backendService": {
36073	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
36074	//       "location": "path",
36075	//       "required": true,
36076	//       "type": "string"
36077	//     },
36078	//     "project": {
36079	//       "description": "Project ID for this request.",
36080	//       "location": "path",
36081	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
36082	//       "required": true,
36083	//       "type": "string"
36084	//     },
36085	//     "requestId": {
36086	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
36087	//       "location": "query",
36088	//       "type": "string"
36089	//     }
36090	//   },
36091	//   "path": "{project}/global/backendServices/{backendService}/addSignedUrlKey",
36092	//   "request": {
36093	//     "$ref": "SignedUrlKey"
36094	//   },
36095	//   "response": {
36096	//     "$ref": "Operation"
36097	//   },
36098	//   "scopes": [
36099	//     "https://www.googleapis.com/auth/cloud-platform",
36100	//     "https://www.googleapis.com/auth/compute"
36101	//   ]
36102	// }
36103
36104}
36105
36106// method id "compute.backendServices.aggregatedList":
36107
36108type BackendServicesAggregatedListCall struct {
36109	s            *Service
36110	project      string
36111	urlParams_   gensupport.URLParams
36112	ifNoneMatch_ string
36113	ctx_         context.Context
36114	header_      http.Header
36115}
36116
36117// AggregatedList: Retrieves the list of all BackendService resources,
36118// regional and global, available to the specified project.
36119func (r *BackendServicesService) AggregatedList(project string) *BackendServicesAggregatedListCall {
36120	c := &BackendServicesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36121	c.project = project
36122	return c
36123}
36124
36125// Filter sets the optional parameter "filter": A filter expression that
36126// filters resources listed in the response. The expression must specify
36127// the field name, a comparison operator, and the value that you want to
36128// use for filtering. The value must be a string, a number, or a
36129// boolean. The comparison operator must be either =, !=, >, or <.
36130//
36131// For example, if you are filtering Compute Engine instances, you can
36132// exclude instances named example-instance by specifying name !=
36133// example-instance.
36134//
36135// You can also filter nested fields. For example, you could specify
36136// scheduling.automaticRestart = false to include instances only if they
36137// are not scheduled for automatic restarts. You can use filtering on
36138// nested fields to filter based on resource labels.
36139//
36140// To filter on multiple expressions, provide each separate expression
36141// within parentheses. For example, (scheduling.automaticRestart = true)
36142// (cpuPlatform = "Intel Skylake"). By default, each expression is an
36143// AND expression. However, you can include AND and OR expressions
36144// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
36145// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
36146// true).
36147func (c *BackendServicesAggregatedListCall) Filter(filter string) *BackendServicesAggregatedListCall {
36148	c.urlParams_.Set("filter", filter)
36149	return c
36150}
36151
36152// MaxResults sets the optional parameter "maxResults": The maximum
36153// number of results per page that should be returned. If the number of
36154// available results is larger than maxResults, Compute Engine returns a
36155// nextPageToken that can be used to get the next page of results in
36156// subsequent list requests. Acceptable values are 0 to 500, inclusive.
36157// (Default: 500)
36158func (c *BackendServicesAggregatedListCall) MaxResults(maxResults int64) *BackendServicesAggregatedListCall {
36159	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
36160	return c
36161}
36162
36163// OrderBy sets the optional parameter "orderBy": Sorts list results by
36164// a certain order. By default, results are returned in alphanumerical
36165// order based on the resource name.
36166//
36167// You can also sort results in descending order based on the creation
36168// timestamp using orderBy="creationTimestamp desc". This sorts results
36169// based on the creationTimestamp field in reverse chronological order
36170// (newest result first). Use this to sort resources like operations so
36171// that the newest operation is returned first.
36172//
36173// Currently, only sorting by name or creationTimestamp desc is
36174// supported.
36175func (c *BackendServicesAggregatedListCall) OrderBy(orderBy string) *BackendServicesAggregatedListCall {
36176	c.urlParams_.Set("orderBy", orderBy)
36177	return c
36178}
36179
36180// PageToken sets the optional parameter "pageToken": Specifies a page
36181// token to use. Set pageToken to the nextPageToken returned by a
36182// previous list request to get the next page of results.
36183func (c *BackendServicesAggregatedListCall) PageToken(pageToken string) *BackendServicesAggregatedListCall {
36184	c.urlParams_.Set("pageToken", pageToken)
36185	return c
36186}
36187
36188// Fields allows partial responses to be retrieved. See
36189// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36190// for more information.
36191func (c *BackendServicesAggregatedListCall) Fields(s ...googleapi.Field) *BackendServicesAggregatedListCall {
36192	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36193	return c
36194}
36195
36196// IfNoneMatch sets the optional parameter which makes the operation
36197// fail if the object's ETag matches the given value. This is useful for
36198// getting updates only after the object has changed since the last
36199// request. Use googleapi.IsNotModified to check whether the response
36200// error from Do is the result of In-None-Match.
36201func (c *BackendServicesAggregatedListCall) IfNoneMatch(entityTag string) *BackendServicesAggregatedListCall {
36202	c.ifNoneMatch_ = entityTag
36203	return c
36204}
36205
36206// Context sets the context to be used in this call's Do method. Any
36207// pending HTTP request will be aborted if the provided context is
36208// canceled.
36209func (c *BackendServicesAggregatedListCall) Context(ctx context.Context) *BackendServicesAggregatedListCall {
36210	c.ctx_ = ctx
36211	return c
36212}
36213
36214// Header returns an http.Header that can be modified by the caller to
36215// add HTTP headers to the request.
36216func (c *BackendServicesAggregatedListCall) Header() http.Header {
36217	if c.header_ == nil {
36218		c.header_ = make(http.Header)
36219	}
36220	return c.header_
36221}
36222
36223func (c *BackendServicesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
36224	reqHeaders := make(http.Header)
36225	for k, v := range c.header_ {
36226		reqHeaders[k] = v
36227	}
36228	reqHeaders.Set("User-Agent", c.s.userAgent())
36229	if c.ifNoneMatch_ != "" {
36230		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
36231	}
36232	var body io.Reader = nil
36233	c.urlParams_.Set("alt", alt)
36234	c.urlParams_.Set("prettyPrint", "false")
36235	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/backendServices")
36236	urls += "?" + c.urlParams_.Encode()
36237	req, err := http.NewRequest("GET", urls, body)
36238	if err != nil {
36239		return nil, err
36240	}
36241	req.Header = reqHeaders
36242	googleapi.Expand(req.URL, map[string]string{
36243		"project": c.project,
36244	})
36245	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36246}
36247
36248// Do executes the "compute.backendServices.aggregatedList" call.
36249// Exactly one of *BackendServiceAggregatedList or error will be
36250// non-nil. Any non-2xx status code is an error. Response headers are in
36251// either *BackendServiceAggregatedList.ServerResponse.Header or (if a
36252// response was returned at all) in error.(*googleapi.Error).Header. Use
36253// googleapi.IsNotModified to check whether the returned error was
36254// because http.StatusNotModified was returned.
36255func (c *BackendServicesAggregatedListCall) Do(opts ...googleapi.CallOption) (*BackendServiceAggregatedList, error) {
36256	gensupport.SetOptions(c.urlParams_, opts...)
36257	res, err := c.doRequest("json")
36258	if res != nil && res.StatusCode == http.StatusNotModified {
36259		if res.Body != nil {
36260			res.Body.Close()
36261		}
36262		return nil, &googleapi.Error{
36263			Code:   res.StatusCode,
36264			Header: res.Header,
36265		}
36266	}
36267	if err != nil {
36268		return nil, err
36269	}
36270	defer googleapi.CloseBody(res)
36271	if err := googleapi.CheckResponse(res); err != nil {
36272		return nil, err
36273	}
36274	ret := &BackendServiceAggregatedList{
36275		ServerResponse: googleapi.ServerResponse{
36276			Header:         res.Header,
36277			HTTPStatusCode: res.StatusCode,
36278		},
36279	}
36280	target := &ret
36281	if err := gensupport.DecodeResponse(target, res); err != nil {
36282		return nil, err
36283	}
36284	return ret, nil
36285	// {
36286	//   "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project.",
36287	//   "httpMethod": "GET",
36288	//   "id": "compute.backendServices.aggregatedList",
36289	//   "parameterOrder": [
36290	//     "project"
36291	//   ],
36292	//   "parameters": {
36293	//     "filter": {
36294	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
36295	//       "location": "query",
36296	//       "type": "string"
36297	//     },
36298	//     "maxResults": {
36299	//       "default": "500",
36300	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
36301	//       "format": "uint32",
36302	//       "location": "query",
36303	//       "minimum": "0",
36304	//       "type": "integer"
36305	//     },
36306	//     "orderBy": {
36307	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
36308	//       "location": "query",
36309	//       "type": "string"
36310	//     },
36311	//     "pageToken": {
36312	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
36313	//       "location": "query",
36314	//       "type": "string"
36315	//     },
36316	//     "project": {
36317	//       "description": "Name of the project scoping this request.",
36318	//       "location": "path",
36319	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
36320	//       "required": true,
36321	//       "type": "string"
36322	//     }
36323	//   },
36324	//   "path": "{project}/aggregated/backendServices",
36325	//   "response": {
36326	//     "$ref": "BackendServiceAggregatedList"
36327	//   },
36328	//   "scopes": [
36329	//     "https://www.googleapis.com/auth/cloud-platform",
36330	//     "https://www.googleapis.com/auth/compute",
36331	//     "https://www.googleapis.com/auth/compute.readonly"
36332	//   ]
36333	// }
36334
36335}
36336
36337// Pages invokes f for each page of results.
36338// A non-nil error returned from f will halt the iteration.
36339// The provided context supersedes any context provided to the Context method.
36340func (c *BackendServicesAggregatedListCall) Pages(ctx context.Context, f func(*BackendServiceAggregatedList) error) error {
36341	c.ctx_ = ctx
36342	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
36343	for {
36344		x, err := c.Do()
36345		if err != nil {
36346			return err
36347		}
36348		if err := f(x); err != nil {
36349			return err
36350		}
36351		if x.NextPageToken == "" {
36352			return nil
36353		}
36354		c.PageToken(x.NextPageToken)
36355	}
36356}
36357
36358// method id "compute.backendServices.delete":
36359
36360type BackendServicesDeleteCall struct {
36361	s              *Service
36362	project        string
36363	backendService string
36364	urlParams_     gensupport.URLParams
36365	ctx_           context.Context
36366	header_        http.Header
36367}
36368
36369// Delete: Deletes the specified BackendService resource.
36370// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/delete
36371func (r *BackendServicesService) Delete(project string, backendService string) *BackendServicesDeleteCall {
36372	c := &BackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36373	c.project = project
36374	c.backendService = backendService
36375	return c
36376}
36377
36378// RequestId sets the optional parameter "requestId": An optional
36379// request ID to identify requests. Specify a unique request ID so that
36380// if you must retry your request, the server will know to ignore the
36381// request if it has already been completed.
36382//
36383// For example, consider a situation where you make an initial request
36384// and the request times out. If you make the request again with the
36385// same request ID, the server can check if original operation with the
36386// same request ID was received, and if so, will ignore the second
36387// request. This prevents clients from accidentally creating duplicate
36388// commitments.
36389//
36390// The request ID must be a valid UUID with the exception that zero UUID
36391// is not supported (00000000-0000-0000-0000-000000000000).
36392func (c *BackendServicesDeleteCall) RequestId(requestId string) *BackendServicesDeleteCall {
36393	c.urlParams_.Set("requestId", requestId)
36394	return c
36395}
36396
36397// Fields allows partial responses to be retrieved. See
36398// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36399// for more information.
36400func (c *BackendServicesDeleteCall) Fields(s ...googleapi.Field) *BackendServicesDeleteCall {
36401	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36402	return c
36403}
36404
36405// Context sets the context to be used in this call's Do method. Any
36406// pending HTTP request will be aborted if the provided context is
36407// canceled.
36408func (c *BackendServicesDeleteCall) Context(ctx context.Context) *BackendServicesDeleteCall {
36409	c.ctx_ = ctx
36410	return c
36411}
36412
36413// Header returns an http.Header that can be modified by the caller to
36414// add HTTP headers to the request.
36415func (c *BackendServicesDeleteCall) Header() http.Header {
36416	if c.header_ == nil {
36417		c.header_ = make(http.Header)
36418	}
36419	return c.header_
36420}
36421
36422func (c *BackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
36423	reqHeaders := make(http.Header)
36424	for k, v := range c.header_ {
36425		reqHeaders[k] = v
36426	}
36427	reqHeaders.Set("User-Agent", c.s.userAgent())
36428	var body io.Reader = nil
36429	c.urlParams_.Set("alt", alt)
36430	c.urlParams_.Set("prettyPrint", "false")
36431	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
36432	urls += "?" + c.urlParams_.Encode()
36433	req, err := http.NewRequest("DELETE", urls, body)
36434	if err != nil {
36435		return nil, err
36436	}
36437	req.Header = reqHeaders
36438	googleapi.Expand(req.URL, map[string]string{
36439		"project":        c.project,
36440		"backendService": c.backendService,
36441	})
36442	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36443}
36444
36445// Do executes the "compute.backendServices.delete" call.
36446// Exactly one of *Operation or error will be non-nil. Any non-2xx
36447// status code is an error. Response headers are in either
36448// *Operation.ServerResponse.Header or (if a response was returned at
36449// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
36450// to check whether the returned error was because
36451// http.StatusNotModified was returned.
36452func (c *BackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
36453	gensupport.SetOptions(c.urlParams_, opts...)
36454	res, err := c.doRequest("json")
36455	if res != nil && res.StatusCode == http.StatusNotModified {
36456		if res.Body != nil {
36457			res.Body.Close()
36458		}
36459		return nil, &googleapi.Error{
36460			Code:   res.StatusCode,
36461			Header: res.Header,
36462		}
36463	}
36464	if err != nil {
36465		return nil, err
36466	}
36467	defer googleapi.CloseBody(res)
36468	if err := googleapi.CheckResponse(res); err != nil {
36469		return nil, err
36470	}
36471	ret := &Operation{
36472		ServerResponse: googleapi.ServerResponse{
36473			Header:         res.Header,
36474			HTTPStatusCode: res.StatusCode,
36475		},
36476	}
36477	target := &ret
36478	if err := gensupport.DecodeResponse(target, res); err != nil {
36479		return nil, err
36480	}
36481	return ret, nil
36482	// {
36483	//   "description": "Deletes the specified BackendService resource.",
36484	//   "httpMethod": "DELETE",
36485	//   "id": "compute.backendServices.delete",
36486	//   "parameterOrder": [
36487	//     "project",
36488	//     "backendService"
36489	//   ],
36490	//   "parameters": {
36491	//     "backendService": {
36492	//       "description": "Name of the BackendService resource to delete.",
36493	//       "location": "path",
36494	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
36495	//       "required": true,
36496	//       "type": "string"
36497	//     },
36498	//     "project": {
36499	//       "description": "Project ID for this request.",
36500	//       "location": "path",
36501	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
36502	//       "required": true,
36503	//       "type": "string"
36504	//     },
36505	//     "requestId": {
36506	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
36507	//       "location": "query",
36508	//       "type": "string"
36509	//     }
36510	//   },
36511	//   "path": "{project}/global/backendServices/{backendService}",
36512	//   "response": {
36513	//     "$ref": "Operation"
36514	//   },
36515	//   "scopes": [
36516	//     "https://www.googleapis.com/auth/cloud-platform",
36517	//     "https://www.googleapis.com/auth/compute"
36518	//   ]
36519	// }
36520
36521}
36522
36523// method id "compute.backendServices.deleteSignedUrlKey":
36524
36525type BackendServicesDeleteSignedUrlKeyCall struct {
36526	s              *Service
36527	project        string
36528	backendService string
36529	urlParams_     gensupport.URLParams
36530	ctx_           context.Context
36531	header_        http.Header
36532}
36533
36534// DeleteSignedUrlKey: Deletes a key for validating requests with signed
36535// URLs for this backend service.
36536func (r *BackendServicesService) DeleteSignedUrlKey(project string, backendService string, keyName string) *BackendServicesDeleteSignedUrlKeyCall {
36537	c := &BackendServicesDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36538	c.project = project
36539	c.backendService = backendService
36540	c.urlParams_.Set("keyName", keyName)
36541	return c
36542}
36543
36544// RequestId sets the optional parameter "requestId": An optional
36545// request ID to identify requests. Specify a unique request ID so that
36546// if you must retry your request, the server will know to ignore the
36547// request if it has already been completed.
36548//
36549// For example, consider a situation where you make an initial request
36550// and the request times out. If you make the request again with the
36551// same request ID, the server can check if original operation with the
36552// same request ID was received, and if so, will ignore the second
36553// request. This prevents clients from accidentally creating duplicate
36554// commitments.
36555//
36556// The request ID must be a valid UUID with the exception that zero UUID
36557// is not supported (00000000-0000-0000-0000-000000000000).
36558func (c *BackendServicesDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendServicesDeleteSignedUrlKeyCall {
36559	c.urlParams_.Set("requestId", requestId)
36560	return c
36561}
36562
36563// Fields allows partial responses to be retrieved. See
36564// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36565// for more information.
36566func (c *BackendServicesDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesDeleteSignedUrlKeyCall {
36567	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36568	return c
36569}
36570
36571// Context sets the context to be used in this call's Do method. Any
36572// pending HTTP request will be aborted if the provided context is
36573// canceled.
36574func (c *BackendServicesDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesDeleteSignedUrlKeyCall {
36575	c.ctx_ = ctx
36576	return c
36577}
36578
36579// Header returns an http.Header that can be modified by the caller to
36580// add HTTP headers to the request.
36581func (c *BackendServicesDeleteSignedUrlKeyCall) Header() http.Header {
36582	if c.header_ == nil {
36583		c.header_ = make(http.Header)
36584	}
36585	return c.header_
36586}
36587
36588func (c *BackendServicesDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
36589	reqHeaders := make(http.Header)
36590	for k, v := range c.header_ {
36591		reqHeaders[k] = v
36592	}
36593	reqHeaders.Set("User-Agent", c.s.userAgent())
36594	var body io.Reader = nil
36595	c.urlParams_.Set("alt", alt)
36596	c.urlParams_.Set("prettyPrint", "false")
36597	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/deleteSignedUrlKey")
36598	urls += "?" + c.urlParams_.Encode()
36599	req, err := http.NewRequest("POST", urls, body)
36600	if err != nil {
36601		return nil, err
36602	}
36603	req.Header = reqHeaders
36604	googleapi.Expand(req.URL, map[string]string{
36605		"project":        c.project,
36606		"backendService": c.backendService,
36607	})
36608	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36609}
36610
36611// Do executes the "compute.backendServices.deleteSignedUrlKey" call.
36612// Exactly one of *Operation or error will be non-nil. Any non-2xx
36613// status code is an error. Response headers are in either
36614// *Operation.ServerResponse.Header or (if a response was returned at
36615// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
36616// to check whether the returned error was because
36617// http.StatusNotModified was returned.
36618func (c *BackendServicesDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
36619	gensupport.SetOptions(c.urlParams_, opts...)
36620	res, err := c.doRequest("json")
36621	if res != nil && res.StatusCode == http.StatusNotModified {
36622		if res.Body != nil {
36623			res.Body.Close()
36624		}
36625		return nil, &googleapi.Error{
36626			Code:   res.StatusCode,
36627			Header: res.Header,
36628		}
36629	}
36630	if err != nil {
36631		return nil, err
36632	}
36633	defer googleapi.CloseBody(res)
36634	if err := googleapi.CheckResponse(res); err != nil {
36635		return nil, err
36636	}
36637	ret := &Operation{
36638		ServerResponse: googleapi.ServerResponse{
36639			Header:         res.Header,
36640			HTTPStatusCode: res.StatusCode,
36641		},
36642	}
36643	target := &ret
36644	if err := gensupport.DecodeResponse(target, res); err != nil {
36645		return nil, err
36646	}
36647	return ret, nil
36648	// {
36649	//   "description": "Deletes a key for validating requests with signed URLs for this backend service.",
36650	//   "httpMethod": "POST",
36651	//   "id": "compute.backendServices.deleteSignedUrlKey",
36652	//   "parameterOrder": [
36653	//     "project",
36654	//     "backendService",
36655	//     "keyName"
36656	//   ],
36657	//   "parameters": {
36658	//     "backendService": {
36659	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
36660	//       "location": "path",
36661	//       "required": true,
36662	//       "type": "string"
36663	//     },
36664	//     "keyName": {
36665	//       "description": "The name of the Signed URL Key to delete.",
36666	//       "location": "query",
36667	//       "required": true,
36668	//       "type": "string"
36669	//     },
36670	//     "project": {
36671	//       "description": "Project ID for this request.",
36672	//       "location": "path",
36673	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
36674	//       "required": true,
36675	//       "type": "string"
36676	//     },
36677	//     "requestId": {
36678	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
36679	//       "location": "query",
36680	//       "type": "string"
36681	//     }
36682	//   },
36683	//   "path": "{project}/global/backendServices/{backendService}/deleteSignedUrlKey",
36684	//   "response": {
36685	//     "$ref": "Operation"
36686	//   },
36687	//   "scopes": [
36688	//     "https://www.googleapis.com/auth/cloud-platform",
36689	//     "https://www.googleapis.com/auth/compute"
36690	//   ]
36691	// }
36692
36693}
36694
36695// method id "compute.backendServices.get":
36696
36697type BackendServicesGetCall struct {
36698	s              *Service
36699	project        string
36700	backendService string
36701	urlParams_     gensupport.URLParams
36702	ifNoneMatch_   string
36703	ctx_           context.Context
36704	header_        http.Header
36705}
36706
36707// Get: Returns the specified BackendService resource. Gets a list of
36708// available backend services.
36709// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/get
36710func (r *BackendServicesService) Get(project string, backendService string) *BackendServicesGetCall {
36711	c := &BackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36712	c.project = project
36713	c.backendService = backendService
36714	return c
36715}
36716
36717// Fields allows partial responses to be retrieved. See
36718// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36719// for more information.
36720func (c *BackendServicesGetCall) Fields(s ...googleapi.Field) *BackendServicesGetCall {
36721	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36722	return c
36723}
36724
36725// IfNoneMatch sets the optional parameter which makes the operation
36726// fail if the object's ETag matches the given value. This is useful for
36727// getting updates only after the object has changed since the last
36728// request. Use googleapi.IsNotModified to check whether the response
36729// error from Do is the result of In-None-Match.
36730func (c *BackendServicesGetCall) IfNoneMatch(entityTag string) *BackendServicesGetCall {
36731	c.ifNoneMatch_ = entityTag
36732	return c
36733}
36734
36735// Context sets the context to be used in this call's Do method. Any
36736// pending HTTP request will be aborted if the provided context is
36737// canceled.
36738func (c *BackendServicesGetCall) Context(ctx context.Context) *BackendServicesGetCall {
36739	c.ctx_ = ctx
36740	return c
36741}
36742
36743// Header returns an http.Header that can be modified by the caller to
36744// add HTTP headers to the request.
36745func (c *BackendServicesGetCall) Header() http.Header {
36746	if c.header_ == nil {
36747		c.header_ = make(http.Header)
36748	}
36749	return c.header_
36750}
36751
36752func (c *BackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
36753	reqHeaders := make(http.Header)
36754	for k, v := range c.header_ {
36755		reqHeaders[k] = v
36756	}
36757	reqHeaders.Set("User-Agent", c.s.userAgent())
36758	if c.ifNoneMatch_ != "" {
36759		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
36760	}
36761	var body io.Reader = nil
36762	c.urlParams_.Set("alt", alt)
36763	c.urlParams_.Set("prettyPrint", "false")
36764	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
36765	urls += "?" + c.urlParams_.Encode()
36766	req, err := http.NewRequest("GET", urls, body)
36767	if err != nil {
36768		return nil, err
36769	}
36770	req.Header = reqHeaders
36771	googleapi.Expand(req.URL, map[string]string{
36772		"project":        c.project,
36773		"backendService": c.backendService,
36774	})
36775	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36776}
36777
36778// Do executes the "compute.backendServices.get" call.
36779// Exactly one of *BackendService or error will be non-nil. Any non-2xx
36780// status code is an error. Response headers are in either
36781// *BackendService.ServerResponse.Header or (if a response was returned
36782// at all) in error.(*googleapi.Error).Header. Use
36783// googleapi.IsNotModified to check whether the returned error was
36784// because http.StatusNotModified was returned.
36785func (c *BackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
36786	gensupport.SetOptions(c.urlParams_, opts...)
36787	res, err := c.doRequest("json")
36788	if res != nil && res.StatusCode == http.StatusNotModified {
36789		if res.Body != nil {
36790			res.Body.Close()
36791		}
36792		return nil, &googleapi.Error{
36793			Code:   res.StatusCode,
36794			Header: res.Header,
36795		}
36796	}
36797	if err != nil {
36798		return nil, err
36799	}
36800	defer googleapi.CloseBody(res)
36801	if err := googleapi.CheckResponse(res); err != nil {
36802		return nil, err
36803	}
36804	ret := &BackendService{
36805		ServerResponse: googleapi.ServerResponse{
36806			Header:         res.Header,
36807			HTTPStatusCode: res.StatusCode,
36808		},
36809	}
36810	target := &ret
36811	if err := gensupport.DecodeResponse(target, res); err != nil {
36812		return nil, err
36813	}
36814	return ret, nil
36815	// {
36816	//   "description": "Returns the specified BackendService resource. Gets a list of available backend services.",
36817	//   "httpMethod": "GET",
36818	//   "id": "compute.backendServices.get",
36819	//   "parameterOrder": [
36820	//     "project",
36821	//     "backendService"
36822	//   ],
36823	//   "parameters": {
36824	//     "backendService": {
36825	//       "description": "Name of the BackendService resource to return.",
36826	//       "location": "path",
36827	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
36828	//       "required": true,
36829	//       "type": "string"
36830	//     },
36831	//     "project": {
36832	//       "description": "Project ID for this request.",
36833	//       "location": "path",
36834	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
36835	//       "required": true,
36836	//       "type": "string"
36837	//     }
36838	//   },
36839	//   "path": "{project}/global/backendServices/{backendService}",
36840	//   "response": {
36841	//     "$ref": "BackendService"
36842	//   },
36843	//   "scopes": [
36844	//     "https://www.googleapis.com/auth/cloud-platform",
36845	//     "https://www.googleapis.com/auth/compute",
36846	//     "https://www.googleapis.com/auth/compute.readonly"
36847	//   ]
36848	// }
36849
36850}
36851
36852// method id "compute.backendServices.getHealth":
36853
36854type BackendServicesGetHealthCall struct {
36855	s                      *Service
36856	project                string
36857	backendService         string
36858	resourcegroupreference *ResourceGroupReference
36859	urlParams_             gensupport.URLParams
36860	ctx_                   context.Context
36861	header_                http.Header
36862}
36863
36864// GetHealth: Gets the most recent health check results for this
36865// BackendService.
36866// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/getHealth
36867func (r *BackendServicesService) GetHealth(project string, backendService string, resourcegroupreference *ResourceGroupReference) *BackendServicesGetHealthCall {
36868	c := &BackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36869	c.project = project
36870	c.backendService = backendService
36871	c.resourcegroupreference = resourcegroupreference
36872	return c
36873}
36874
36875// Fields allows partial responses to be retrieved. See
36876// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36877// for more information.
36878func (c *BackendServicesGetHealthCall) Fields(s ...googleapi.Field) *BackendServicesGetHealthCall {
36879	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36880	return c
36881}
36882
36883// Context sets the context to be used in this call's Do method. Any
36884// pending HTTP request will be aborted if the provided context is
36885// canceled.
36886func (c *BackendServicesGetHealthCall) Context(ctx context.Context) *BackendServicesGetHealthCall {
36887	c.ctx_ = ctx
36888	return c
36889}
36890
36891// Header returns an http.Header that can be modified by the caller to
36892// add HTTP headers to the request.
36893func (c *BackendServicesGetHealthCall) Header() http.Header {
36894	if c.header_ == nil {
36895		c.header_ = make(http.Header)
36896	}
36897	return c.header_
36898}
36899
36900func (c *BackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
36901	reqHeaders := make(http.Header)
36902	for k, v := range c.header_ {
36903		reqHeaders[k] = v
36904	}
36905	reqHeaders.Set("User-Agent", c.s.userAgent())
36906	var body io.Reader = nil
36907	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
36908	if err != nil {
36909		return nil, err
36910	}
36911	reqHeaders.Set("Content-Type", "application/json")
36912	c.urlParams_.Set("alt", alt)
36913	c.urlParams_.Set("prettyPrint", "false")
36914	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/getHealth")
36915	urls += "?" + c.urlParams_.Encode()
36916	req, err := http.NewRequest("POST", urls, body)
36917	if err != nil {
36918		return nil, err
36919	}
36920	req.Header = reqHeaders
36921	googleapi.Expand(req.URL, map[string]string{
36922		"project":        c.project,
36923		"backendService": c.backendService,
36924	})
36925	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36926}
36927
36928// Do executes the "compute.backendServices.getHealth" call.
36929// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
36930// Any non-2xx status code is an error. Response headers are in either
36931// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
36932// was returned at all) in error.(*googleapi.Error).Header. Use
36933// googleapi.IsNotModified to check whether the returned error was
36934// because http.StatusNotModified was returned.
36935func (c *BackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
36936	gensupport.SetOptions(c.urlParams_, opts...)
36937	res, err := c.doRequest("json")
36938	if res != nil && res.StatusCode == http.StatusNotModified {
36939		if res.Body != nil {
36940			res.Body.Close()
36941		}
36942		return nil, &googleapi.Error{
36943			Code:   res.StatusCode,
36944			Header: res.Header,
36945		}
36946	}
36947	if err != nil {
36948		return nil, err
36949	}
36950	defer googleapi.CloseBody(res)
36951	if err := googleapi.CheckResponse(res); err != nil {
36952		return nil, err
36953	}
36954	ret := &BackendServiceGroupHealth{
36955		ServerResponse: googleapi.ServerResponse{
36956			Header:         res.Header,
36957			HTTPStatusCode: res.StatusCode,
36958		},
36959	}
36960	target := &ret
36961	if err := gensupport.DecodeResponse(target, res); err != nil {
36962		return nil, err
36963	}
36964	return ret, nil
36965	// {
36966	//   "description": "Gets the most recent health check results for this BackendService.",
36967	//   "httpMethod": "POST",
36968	//   "id": "compute.backendServices.getHealth",
36969	//   "parameterOrder": [
36970	//     "project",
36971	//     "backendService"
36972	//   ],
36973	//   "parameters": {
36974	//     "backendService": {
36975	//       "description": "Name of the BackendService resource to which the queried instance belongs.",
36976	//       "location": "path",
36977	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
36978	//       "required": true,
36979	//       "type": "string"
36980	//     },
36981	//     "project": {
36982	//       "location": "path",
36983	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
36984	//       "required": true,
36985	//       "type": "string"
36986	//     }
36987	//   },
36988	//   "path": "{project}/global/backendServices/{backendService}/getHealth",
36989	//   "request": {
36990	//     "$ref": "ResourceGroupReference"
36991	//   },
36992	//   "response": {
36993	//     "$ref": "BackendServiceGroupHealth"
36994	//   },
36995	//   "scopes": [
36996	//     "https://www.googleapis.com/auth/cloud-platform",
36997	//     "https://www.googleapis.com/auth/compute",
36998	//     "https://www.googleapis.com/auth/compute.readonly"
36999	//   ]
37000	// }
37001
37002}
37003
37004// method id "compute.backendServices.insert":
37005
37006type BackendServicesInsertCall struct {
37007	s              *Service
37008	project        string
37009	backendservice *BackendService
37010	urlParams_     gensupport.URLParams
37011	ctx_           context.Context
37012	header_        http.Header
37013}
37014
37015// Insert: Creates a BackendService resource in the specified project
37016// using the data included in the request. There are several
37017// restrictions and guidelines to keep in mind when creating a backend
37018// service. Read  Restrictions and Guidelines for more information.
37019// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/insert
37020func (r *BackendServicesService) Insert(project string, backendservice *BackendService) *BackendServicesInsertCall {
37021	c := &BackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37022	c.project = project
37023	c.backendservice = backendservice
37024	return c
37025}
37026
37027// RequestId sets the optional parameter "requestId": An optional
37028// request ID to identify requests. Specify a unique request ID so that
37029// if you must retry your request, the server will know to ignore the
37030// request if it has already been completed.
37031//
37032// For example, consider a situation where you make an initial request
37033// and the request times out. If you make the request again with the
37034// same request ID, the server can check if original operation with the
37035// same request ID was received, and if so, will ignore the second
37036// request. This prevents clients from accidentally creating duplicate
37037// commitments.
37038//
37039// The request ID must be a valid UUID with the exception that zero UUID
37040// is not supported (00000000-0000-0000-0000-000000000000).
37041func (c *BackendServicesInsertCall) RequestId(requestId string) *BackendServicesInsertCall {
37042	c.urlParams_.Set("requestId", requestId)
37043	return c
37044}
37045
37046// Fields allows partial responses to be retrieved. See
37047// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37048// for more information.
37049func (c *BackendServicesInsertCall) Fields(s ...googleapi.Field) *BackendServicesInsertCall {
37050	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37051	return c
37052}
37053
37054// Context sets the context to be used in this call's Do method. Any
37055// pending HTTP request will be aborted if the provided context is
37056// canceled.
37057func (c *BackendServicesInsertCall) Context(ctx context.Context) *BackendServicesInsertCall {
37058	c.ctx_ = ctx
37059	return c
37060}
37061
37062// Header returns an http.Header that can be modified by the caller to
37063// add HTTP headers to the request.
37064func (c *BackendServicesInsertCall) Header() http.Header {
37065	if c.header_ == nil {
37066		c.header_ = make(http.Header)
37067	}
37068	return c.header_
37069}
37070
37071func (c *BackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
37072	reqHeaders := make(http.Header)
37073	for k, v := range c.header_ {
37074		reqHeaders[k] = v
37075	}
37076	reqHeaders.Set("User-Agent", c.s.userAgent())
37077	var body io.Reader = nil
37078	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
37079	if err != nil {
37080		return nil, err
37081	}
37082	reqHeaders.Set("Content-Type", "application/json")
37083	c.urlParams_.Set("alt", alt)
37084	c.urlParams_.Set("prettyPrint", "false")
37085	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices")
37086	urls += "?" + c.urlParams_.Encode()
37087	req, err := http.NewRequest("POST", urls, body)
37088	if err != nil {
37089		return nil, err
37090	}
37091	req.Header = reqHeaders
37092	googleapi.Expand(req.URL, map[string]string{
37093		"project": c.project,
37094	})
37095	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37096}
37097
37098// Do executes the "compute.backendServices.insert" call.
37099// Exactly one of *Operation or error will be non-nil. Any non-2xx
37100// status code is an error. Response headers are in either
37101// *Operation.ServerResponse.Header or (if a response was returned at
37102// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
37103// to check whether the returned error was because
37104// http.StatusNotModified was returned.
37105func (c *BackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
37106	gensupport.SetOptions(c.urlParams_, opts...)
37107	res, err := c.doRequest("json")
37108	if res != nil && res.StatusCode == http.StatusNotModified {
37109		if res.Body != nil {
37110			res.Body.Close()
37111		}
37112		return nil, &googleapi.Error{
37113			Code:   res.StatusCode,
37114			Header: res.Header,
37115		}
37116	}
37117	if err != nil {
37118		return nil, err
37119	}
37120	defer googleapi.CloseBody(res)
37121	if err := googleapi.CheckResponse(res); err != nil {
37122		return nil, err
37123	}
37124	ret := &Operation{
37125		ServerResponse: googleapi.ServerResponse{
37126			Header:         res.Header,
37127			HTTPStatusCode: res.StatusCode,
37128		},
37129	}
37130	target := &ret
37131	if err := gensupport.DecodeResponse(target, res); err != nil {
37132		return nil, err
37133	}
37134	return ret, nil
37135	// {
37136	//   "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.",
37137	//   "httpMethod": "POST",
37138	//   "id": "compute.backendServices.insert",
37139	//   "parameterOrder": [
37140	//     "project"
37141	//   ],
37142	//   "parameters": {
37143	//     "project": {
37144	//       "description": "Project ID for this request.",
37145	//       "location": "path",
37146	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
37147	//       "required": true,
37148	//       "type": "string"
37149	//     },
37150	//     "requestId": {
37151	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
37152	//       "location": "query",
37153	//       "type": "string"
37154	//     }
37155	//   },
37156	//   "path": "{project}/global/backendServices",
37157	//   "request": {
37158	//     "$ref": "BackendService"
37159	//   },
37160	//   "response": {
37161	//     "$ref": "Operation"
37162	//   },
37163	//   "scopes": [
37164	//     "https://www.googleapis.com/auth/cloud-platform",
37165	//     "https://www.googleapis.com/auth/compute"
37166	//   ]
37167	// }
37168
37169}
37170
37171// method id "compute.backendServices.list":
37172
37173type BackendServicesListCall struct {
37174	s            *Service
37175	project      string
37176	urlParams_   gensupport.URLParams
37177	ifNoneMatch_ string
37178	ctx_         context.Context
37179	header_      http.Header
37180}
37181
37182// List: Retrieves the list of BackendService resources available to the
37183// specified project.
37184// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/list
37185func (r *BackendServicesService) List(project string) *BackendServicesListCall {
37186	c := &BackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37187	c.project = project
37188	return c
37189}
37190
37191// Filter sets the optional parameter "filter": A filter expression that
37192// filters resources listed in the response. The expression must specify
37193// the field name, a comparison operator, and the value that you want to
37194// use for filtering. The value must be a string, a number, or a
37195// boolean. The comparison operator must be either =, !=, >, or <.
37196//
37197// For example, if you are filtering Compute Engine instances, you can
37198// exclude instances named example-instance by specifying name !=
37199// example-instance.
37200//
37201// You can also filter nested fields. For example, you could specify
37202// scheduling.automaticRestart = false to include instances only if they
37203// are not scheduled for automatic restarts. You can use filtering on
37204// nested fields to filter based on resource labels.
37205//
37206// To filter on multiple expressions, provide each separate expression
37207// within parentheses. For example, (scheduling.automaticRestart = true)
37208// (cpuPlatform = "Intel Skylake"). By default, each expression is an
37209// AND expression. However, you can include AND and OR expressions
37210// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
37211// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
37212// true).
37213func (c *BackendServicesListCall) Filter(filter string) *BackendServicesListCall {
37214	c.urlParams_.Set("filter", filter)
37215	return c
37216}
37217
37218// MaxResults sets the optional parameter "maxResults": The maximum
37219// number of results per page that should be returned. If the number of
37220// available results is larger than maxResults, Compute Engine returns a
37221// nextPageToken that can be used to get the next page of results in
37222// subsequent list requests. Acceptable values are 0 to 500, inclusive.
37223// (Default: 500)
37224func (c *BackendServicesListCall) MaxResults(maxResults int64) *BackendServicesListCall {
37225	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
37226	return c
37227}
37228
37229// OrderBy sets the optional parameter "orderBy": Sorts list results by
37230// a certain order. By default, results are returned in alphanumerical
37231// order based on the resource name.
37232//
37233// You can also sort results in descending order based on the creation
37234// timestamp using orderBy="creationTimestamp desc". This sorts results
37235// based on the creationTimestamp field in reverse chronological order
37236// (newest result first). Use this to sort resources like operations so
37237// that the newest operation is returned first.
37238//
37239// Currently, only sorting by name or creationTimestamp desc is
37240// supported.
37241func (c *BackendServicesListCall) OrderBy(orderBy string) *BackendServicesListCall {
37242	c.urlParams_.Set("orderBy", orderBy)
37243	return c
37244}
37245
37246// PageToken sets the optional parameter "pageToken": Specifies a page
37247// token to use. Set pageToken to the nextPageToken returned by a
37248// previous list request to get the next page of results.
37249func (c *BackendServicesListCall) PageToken(pageToken string) *BackendServicesListCall {
37250	c.urlParams_.Set("pageToken", pageToken)
37251	return c
37252}
37253
37254// Fields allows partial responses to be retrieved. See
37255// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37256// for more information.
37257func (c *BackendServicesListCall) Fields(s ...googleapi.Field) *BackendServicesListCall {
37258	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37259	return c
37260}
37261
37262// IfNoneMatch sets the optional parameter which makes the operation
37263// fail if the object's ETag matches the given value. This is useful for
37264// getting updates only after the object has changed since the last
37265// request. Use googleapi.IsNotModified to check whether the response
37266// error from Do is the result of In-None-Match.
37267func (c *BackendServicesListCall) IfNoneMatch(entityTag string) *BackendServicesListCall {
37268	c.ifNoneMatch_ = entityTag
37269	return c
37270}
37271
37272// Context sets the context to be used in this call's Do method. Any
37273// pending HTTP request will be aborted if the provided context is
37274// canceled.
37275func (c *BackendServicesListCall) Context(ctx context.Context) *BackendServicesListCall {
37276	c.ctx_ = ctx
37277	return c
37278}
37279
37280// Header returns an http.Header that can be modified by the caller to
37281// add HTTP headers to the request.
37282func (c *BackendServicesListCall) Header() http.Header {
37283	if c.header_ == nil {
37284		c.header_ = make(http.Header)
37285	}
37286	return c.header_
37287}
37288
37289func (c *BackendServicesListCall) doRequest(alt string) (*http.Response, error) {
37290	reqHeaders := make(http.Header)
37291	for k, v := range c.header_ {
37292		reqHeaders[k] = v
37293	}
37294	reqHeaders.Set("User-Agent", c.s.userAgent())
37295	if c.ifNoneMatch_ != "" {
37296		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
37297	}
37298	var body io.Reader = nil
37299	c.urlParams_.Set("alt", alt)
37300	c.urlParams_.Set("prettyPrint", "false")
37301	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices")
37302	urls += "?" + c.urlParams_.Encode()
37303	req, err := http.NewRequest("GET", urls, body)
37304	if err != nil {
37305		return nil, err
37306	}
37307	req.Header = reqHeaders
37308	googleapi.Expand(req.URL, map[string]string{
37309		"project": c.project,
37310	})
37311	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37312}
37313
37314// Do executes the "compute.backendServices.list" call.
37315// Exactly one of *BackendServiceList or error will be non-nil. Any
37316// non-2xx status code is an error. Response headers are in either
37317// *BackendServiceList.ServerResponse.Header or (if a response was
37318// returned at all) in error.(*googleapi.Error).Header. Use
37319// googleapi.IsNotModified to check whether the returned error was
37320// because http.StatusNotModified was returned.
37321func (c *BackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
37322	gensupport.SetOptions(c.urlParams_, opts...)
37323	res, err := c.doRequest("json")
37324	if res != nil && res.StatusCode == http.StatusNotModified {
37325		if res.Body != nil {
37326			res.Body.Close()
37327		}
37328		return nil, &googleapi.Error{
37329			Code:   res.StatusCode,
37330			Header: res.Header,
37331		}
37332	}
37333	if err != nil {
37334		return nil, err
37335	}
37336	defer googleapi.CloseBody(res)
37337	if err := googleapi.CheckResponse(res); err != nil {
37338		return nil, err
37339	}
37340	ret := &BackendServiceList{
37341		ServerResponse: googleapi.ServerResponse{
37342			Header:         res.Header,
37343			HTTPStatusCode: res.StatusCode,
37344		},
37345	}
37346	target := &ret
37347	if err := gensupport.DecodeResponse(target, res); err != nil {
37348		return nil, err
37349	}
37350	return ret, nil
37351	// {
37352	//   "description": "Retrieves the list of BackendService resources available to the specified project.",
37353	//   "httpMethod": "GET",
37354	//   "id": "compute.backendServices.list",
37355	//   "parameterOrder": [
37356	//     "project"
37357	//   ],
37358	//   "parameters": {
37359	//     "filter": {
37360	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
37361	//       "location": "query",
37362	//       "type": "string"
37363	//     },
37364	//     "maxResults": {
37365	//       "default": "500",
37366	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
37367	//       "format": "uint32",
37368	//       "location": "query",
37369	//       "minimum": "0",
37370	//       "type": "integer"
37371	//     },
37372	//     "orderBy": {
37373	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
37374	//       "location": "query",
37375	//       "type": "string"
37376	//     },
37377	//     "pageToken": {
37378	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
37379	//       "location": "query",
37380	//       "type": "string"
37381	//     },
37382	//     "project": {
37383	//       "description": "Project ID for this request.",
37384	//       "location": "path",
37385	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
37386	//       "required": true,
37387	//       "type": "string"
37388	//     }
37389	//   },
37390	//   "path": "{project}/global/backendServices",
37391	//   "response": {
37392	//     "$ref": "BackendServiceList"
37393	//   },
37394	//   "scopes": [
37395	//     "https://www.googleapis.com/auth/cloud-platform",
37396	//     "https://www.googleapis.com/auth/compute",
37397	//     "https://www.googleapis.com/auth/compute.readonly"
37398	//   ]
37399	// }
37400
37401}
37402
37403// Pages invokes f for each page of results.
37404// A non-nil error returned from f will halt the iteration.
37405// The provided context supersedes any context provided to the Context method.
37406func (c *BackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
37407	c.ctx_ = ctx
37408	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
37409	for {
37410		x, err := c.Do()
37411		if err != nil {
37412			return err
37413		}
37414		if err := f(x); err != nil {
37415			return err
37416		}
37417		if x.NextPageToken == "" {
37418			return nil
37419		}
37420		c.PageToken(x.NextPageToken)
37421	}
37422}
37423
37424// method id "compute.backendServices.patch":
37425
37426type BackendServicesPatchCall struct {
37427	s              *Service
37428	project        string
37429	backendService string
37430	backendservice *BackendService
37431	urlParams_     gensupport.URLParams
37432	ctx_           context.Context
37433	header_        http.Header
37434}
37435
37436// Patch: Patches the specified BackendService resource with the data
37437// included in the request. There are several restrictions and
37438// guidelines to keep in mind when updating a backend service. Read
37439// Restrictions and Guidelines for more information. This method
37440// supports PATCH semantics and uses the JSON merge patch format and
37441// processing rules.
37442// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/patch
37443func (r *BackendServicesService) Patch(project string, backendService string, backendservice *BackendService) *BackendServicesPatchCall {
37444	c := &BackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37445	c.project = project
37446	c.backendService = backendService
37447	c.backendservice = backendservice
37448	return c
37449}
37450
37451// RequestId sets the optional parameter "requestId": An optional
37452// request ID to identify requests. Specify a unique request ID so that
37453// if you must retry your request, the server will know to ignore the
37454// request if it has already been completed.
37455//
37456// For example, consider a situation where you make an initial request
37457// and the request times out. If you make the request again with the
37458// same request ID, the server can check if original operation with the
37459// same request ID was received, and if so, will ignore the second
37460// request. This prevents clients from accidentally creating duplicate
37461// commitments.
37462//
37463// The request ID must be a valid UUID with the exception that zero UUID
37464// is not supported (00000000-0000-0000-0000-000000000000).
37465func (c *BackendServicesPatchCall) RequestId(requestId string) *BackendServicesPatchCall {
37466	c.urlParams_.Set("requestId", requestId)
37467	return c
37468}
37469
37470// Fields allows partial responses to be retrieved. See
37471// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37472// for more information.
37473func (c *BackendServicesPatchCall) Fields(s ...googleapi.Field) *BackendServicesPatchCall {
37474	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37475	return c
37476}
37477
37478// Context sets the context to be used in this call's Do method. Any
37479// pending HTTP request will be aborted if the provided context is
37480// canceled.
37481func (c *BackendServicesPatchCall) Context(ctx context.Context) *BackendServicesPatchCall {
37482	c.ctx_ = ctx
37483	return c
37484}
37485
37486// Header returns an http.Header that can be modified by the caller to
37487// add HTTP headers to the request.
37488func (c *BackendServicesPatchCall) Header() http.Header {
37489	if c.header_ == nil {
37490		c.header_ = make(http.Header)
37491	}
37492	return c.header_
37493}
37494
37495func (c *BackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
37496	reqHeaders := make(http.Header)
37497	for k, v := range c.header_ {
37498		reqHeaders[k] = v
37499	}
37500	reqHeaders.Set("User-Agent", c.s.userAgent())
37501	var body io.Reader = nil
37502	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
37503	if err != nil {
37504		return nil, err
37505	}
37506	reqHeaders.Set("Content-Type", "application/json")
37507	c.urlParams_.Set("alt", alt)
37508	c.urlParams_.Set("prettyPrint", "false")
37509	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
37510	urls += "?" + c.urlParams_.Encode()
37511	req, err := http.NewRequest("PATCH", urls, body)
37512	if err != nil {
37513		return nil, err
37514	}
37515	req.Header = reqHeaders
37516	googleapi.Expand(req.URL, map[string]string{
37517		"project":        c.project,
37518		"backendService": c.backendService,
37519	})
37520	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37521}
37522
37523// Do executes the "compute.backendServices.patch" call.
37524// Exactly one of *Operation or error will be non-nil. Any non-2xx
37525// status code is an error. Response headers are in either
37526// *Operation.ServerResponse.Header or (if a response was returned at
37527// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
37528// to check whether the returned error was because
37529// http.StatusNotModified was returned.
37530func (c *BackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
37531	gensupport.SetOptions(c.urlParams_, opts...)
37532	res, err := c.doRequest("json")
37533	if res != nil && res.StatusCode == http.StatusNotModified {
37534		if res.Body != nil {
37535			res.Body.Close()
37536		}
37537		return nil, &googleapi.Error{
37538			Code:   res.StatusCode,
37539			Header: res.Header,
37540		}
37541	}
37542	if err != nil {
37543		return nil, err
37544	}
37545	defer googleapi.CloseBody(res)
37546	if err := googleapi.CheckResponse(res); err != nil {
37547		return nil, err
37548	}
37549	ret := &Operation{
37550		ServerResponse: googleapi.ServerResponse{
37551			Header:         res.Header,
37552			HTTPStatusCode: res.StatusCode,
37553		},
37554	}
37555	target := &ret
37556	if err := gensupport.DecodeResponse(target, res); err != nil {
37557		return nil, err
37558	}
37559	return ret, nil
37560	// {
37561	//   "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.",
37562	//   "httpMethod": "PATCH",
37563	//   "id": "compute.backendServices.patch",
37564	//   "parameterOrder": [
37565	//     "project",
37566	//     "backendService"
37567	//   ],
37568	//   "parameters": {
37569	//     "backendService": {
37570	//       "description": "Name of the BackendService resource to patch.",
37571	//       "location": "path",
37572	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
37573	//       "required": true,
37574	//       "type": "string"
37575	//     },
37576	//     "project": {
37577	//       "description": "Project ID for this request.",
37578	//       "location": "path",
37579	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
37580	//       "required": true,
37581	//       "type": "string"
37582	//     },
37583	//     "requestId": {
37584	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
37585	//       "location": "query",
37586	//       "type": "string"
37587	//     }
37588	//   },
37589	//   "path": "{project}/global/backendServices/{backendService}",
37590	//   "request": {
37591	//     "$ref": "BackendService"
37592	//   },
37593	//   "response": {
37594	//     "$ref": "Operation"
37595	//   },
37596	//   "scopes": [
37597	//     "https://www.googleapis.com/auth/cloud-platform",
37598	//     "https://www.googleapis.com/auth/compute"
37599	//   ]
37600	// }
37601
37602}
37603
37604// method id "compute.backendServices.setSecurityPolicy":
37605
37606type BackendServicesSetSecurityPolicyCall struct {
37607	s                       *Service
37608	project                 string
37609	backendService          string
37610	securitypolicyreference *SecurityPolicyReference
37611	urlParams_              gensupport.URLParams
37612	ctx_                    context.Context
37613	header_                 http.Header
37614}
37615
37616// SetSecurityPolicy: Sets the security policy for the specified backend
37617// service.
37618func (r *BackendServicesService) SetSecurityPolicy(project string, backendService string, securitypolicyreference *SecurityPolicyReference) *BackendServicesSetSecurityPolicyCall {
37619	c := &BackendServicesSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37620	c.project = project
37621	c.backendService = backendService
37622	c.securitypolicyreference = securitypolicyreference
37623	return c
37624}
37625
37626// RequestId sets the optional parameter "requestId": An optional
37627// request ID to identify requests. Specify a unique request ID so that
37628// if you must retry your request, the server will know to ignore the
37629// request if it has already been completed.
37630//
37631// For example, consider a situation where you make an initial request
37632// and the request times out. If you make the request again with the
37633// same request ID, the server can check if original operation with the
37634// same request ID was received, and if so, will ignore the second
37635// request. This prevents clients from accidentally creating duplicate
37636// commitments.
37637//
37638// The request ID must be a valid UUID with the exception that zero UUID
37639// is not supported (00000000-0000-0000-0000-000000000000).
37640func (c *BackendServicesSetSecurityPolicyCall) RequestId(requestId string) *BackendServicesSetSecurityPolicyCall {
37641	c.urlParams_.Set("requestId", requestId)
37642	return c
37643}
37644
37645// Fields allows partial responses to be retrieved. See
37646// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37647// for more information.
37648func (c *BackendServicesSetSecurityPolicyCall) Fields(s ...googleapi.Field) *BackendServicesSetSecurityPolicyCall {
37649	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37650	return c
37651}
37652
37653// Context sets the context to be used in this call's Do method. Any
37654// pending HTTP request will be aborted if the provided context is
37655// canceled.
37656func (c *BackendServicesSetSecurityPolicyCall) Context(ctx context.Context) *BackendServicesSetSecurityPolicyCall {
37657	c.ctx_ = ctx
37658	return c
37659}
37660
37661// Header returns an http.Header that can be modified by the caller to
37662// add HTTP headers to the request.
37663func (c *BackendServicesSetSecurityPolicyCall) Header() http.Header {
37664	if c.header_ == nil {
37665		c.header_ = make(http.Header)
37666	}
37667	return c.header_
37668}
37669
37670func (c *BackendServicesSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) {
37671	reqHeaders := make(http.Header)
37672	for k, v := range c.header_ {
37673		reqHeaders[k] = v
37674	}
37675	reqHeaders.Set("User-Agent", c.s.userAgent())
37676	var body io.Reader = nil
37677	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyreference)
37678	if err != nil {
37679		return nil, err
37680	}
37681	reqHeaders.Set("Content-Type", "application/json")
37682	c.urlParams_.Set("alt", alt)
37683	c.urlParams_.Set("prettyPrint", "false")
37684	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/setSecurityPolicy")
37685	urls += "?" + c.urlParams_.Encode()
37686	req, err := http.NewRequest("POST", urls, body)
37687	if err != nil {
37688		return nil, err
37689	}
37690	req.Header = reqHeaders
37691	googleapi.Expand(req.URL, map[string]string{
37692		"project":        c.project,
37693		"backendService": c.backendService,
37694	})
37695	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37696}
37697
37698// Do executes the "compute.backendServices.setSecurityPolicy" call.
37699// Exactly one of *Operation or error will be non-nil. Any non-2xx
37700// status code is an error. Response headers are in either
37701// *Operation.ServerResponse.Header or (if a response was returned at
37702// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
37703// to check whether the returned error was because
37704// http.StatusNotModified was returned.
37705func (c *BackendServicesSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
37706	gensupport.SetOptions(c.urlParams_, opts...)
37707	res, err := c.doRequest("json")
37708	if res != nil && res.StatusCode == http.StatusNotModified {
37709		if res.Body != nil {
37710			res.Body.Close()
37711		}
37712		return nil, &googleapi.Error{
37713			Code:   res.StatusCode,
37714			Header: res.Header,
37715		}
37716	}
37717	if err != nil {
37718		return nil, err
37719	}
37720	defer googleapi.CloseBody(res)
37721	if err := googleapi.CheckResponse(res); err != nil {
37722		return nil, err
37723	}
37724	ret := &Operation{
37725		ServerResponse: googleapi.ServerResponse{
37726			Header:         res.Header,
37727			HTTPStatusCode: res.StatusCode,
37728		},
37729	}
37730	target := &ret
37731	if err := gensupport.DecodeResponse(target, res); err != nil {
37732		return nil, err
37733	}
37734	return ret, nil
37735	// {
37736	//   "description": "Sets the security policy for the specified backend service.",
37737	//   "httpMethod": "POST",
37738	//   "id": "compute.backendServices.setSecurityPolicy",
37739	//   "parameterOrder": [
37740	//     "project",
37741	//     "backendService"
37742	//   ],
37743	//   "parameters": {
37744	//     "backendService": {
37745	//       "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.",
37746	//       "location": "path",
37747	//       "required": true,
37748	//       "type": "string"
37749	//     },
37750	//     "project": {
37751	//       "description": "Project ID for this request.",
37752	//       "location": "path",
37753	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
37754	//       "required": true,
37755	//       "type": "string"
37756	//     },
37757	//     "requestId": {
37758	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
37759	//       "location": "query",
37760	//       "type": "string"
37761	//     }
37762	//   },
37763	//   "path": "{project}/global/backendServices/{backendService}/setSecurityPolicy",
37764	//   "request": {
37765	//     "$ref": "SecurityPolicyReference"
37766	//   },
37767	//   "response": {
37768	//     "$ref": "Operation"
37769	//   },
37770	//   "scopes": [
37771	//     "https://www.googleapis.com/auth/cloud-platform",
37772	//     "https://www.googleapis.com/auth/compute"
37773	//   ]
37774	// }
37775
37776}
37777
37778// method id "compute.backendServices.update":
37779
37780type BackendServicesUpdateCall struct {
37781	s              *Service
37782	project        string
37783	backendService string
37784	backendservice *BackendService
37785	urlParams_     gensupport.URLParams
37786	ctx_           context.Context
37787	header_        http.Header
37788}
37789
37790// Update: Updates the specified BackendService resource with the data
37791// included in the request. There are several restrictions and
37792// guidelines to keep in mind when updating a backend service. Read
37793// Restrictions and Guidelines for more information.
37794// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/update
37795func (r *BackendServicesService) Update(project string, backendService string, backendservice *BackendService) *BackendServicesUpdateCall {
37796	c := &BackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37797	c.project = project
37798	c.backendService = backendService
37799	c.backendservice = backendservice
37800	return c
37801}
37802
37803// RequestId sets the optional parameter "requestId": An optional
37804// request ID to identify requests. Specify a unique request ID so that
37805// if you must retry your request, the server will know to ignore the
37806// request if it has already been completed.
37807//
37808// For example, consider a situation where you make an initial request
37809// and the request times out. If you make the request again with the
37810// same request ID, the server can check if original operation with the
37811// same request ID was received, and if so, will ignore the second
37812// request. This prevents clients from accidentally creating duplicate
37813// commitments.
37814//
37815// The request ID must be a valid UUID with the exception that zero UUID
37816// is not supported (00000000-0000-0000-0000-000000000000).
37817func (c *BackendServicesUpdateCall) RequestId(requestId string) *BackendServicesUpdateCall {
37818	c.urlParams_.Set("requestId", requestId)
37819	return c
37820}
37821
37822// Fields allows partial responses to be retrieved. See
37823// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37824// for more information.
37825func (c *BackendServicesUpdateCall) Fields(s ...googleapi.Field) *BackendServicesUpdateCall {
37826	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37827	return c
37828}
37829
37830// Context sets the context to be used in this call's Do method. Any
37831// pending HTTP request will be aborted if the provided context is
37832// canceled.
37833func (c *BackendServicesUpdateCall) Context(ctx context.Context) *BackendServicesUpdateCall {
37834	c.ctx_ = ctx
37835	return c
37836}
37837
37838// Header returns an http.Header that can be modified by the caller to
37839// add HTTP headers to the request.
37840func (c *BackendServicesUpdateCall) Header() http.Header {
37841	if c.header_ == nil {
37842		c.header_ = make(http.Header)
37843	}
37844	return c.header_
37845}
37846
37847func (c *BackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
37848	reqHeaders := make(http.Header)
37849	for k, v := range c.header_ {
37850		reqHeaders[k] = v
37851	}
37852	reqHeaders.Set("User-Agent", c.s.userAgent())
37853	var body io.Reader = nil
37854	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
37855	if err != nil {
37856		return nil, err
37857	}
37858	reqHeaders.Set("Content-Type", "application/json")
37859	c.urlParams_.Set("alt", alt)
37860	c.urlParams_.Set("prettyPrint", "false")
37861	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
37862	urls += "?" + c.urlParams_.Encode()
37863	req, err := http.NewRequest("PUT", urls, body)
37864	if err != nil {
37865		return nil, err
37866	}
37867	req.Header = reqHeaders
37868	googleapi.Expand(req.URL, map[string]string{
37869		"project":        c.project,
37870		"backendService": c.backendService,
37871	})
37872	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37873}
37874
37875// Do executes the "compute.backendServices.update" call.
37876// Exactly one of *Operation or error will be non-nil. Any non-2xx
37877// status code is an error. Response headers are in either
37878// *Operation.ServerResponse.Header or (if a response was returned at
37879// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
37880// to check whether the returned error was because
37881// http.StatusNotModified was returned.
37882func (c *BackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
37883	gensupport.SetOptions(c.urlParams_, opts...)
37884	res, err := c.doRequest("json")
37885	if res != nil && res.StatusCode == http.StatusNotModified {
37886		if res.Body != nil {
37887			res.Body.Close()
37888		}
37889		return nil, &googleapi.Error{
37890			Code:   res.StatusCode,
37891			Header: res.Header,
37892		}
37893	}
37894	if err != nil {
37895		return nil, err
37896	}
37897	defer googleapi.CloseBody(res)
37898	if err := googleapi.CheckResponse(res); err != nil {
37899		return nil, err
37900	}
37901	ret := &Operation{
37902		ServerResponse: googleapi.ServerResponse{
37903			Header:         res.Header,
37904			HTTPStatusCode: res.StatusCode,
37905		},
37906	}
37907	target := &ret
37908	if err := gensupport.DecodeResponse(target, res); err != nil {
37909		return nil, err
37910	}
37911	return ret, nil
37912	// {
37913	//   "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.",
37914	//   "httpMethod": "PUT",
37915	//   "id": "compute.backendServices.update",
37916	//   "parameterOrder": [
37917	//     "project",
37918	//     "backendService"
37919	//   ],
37920	//   "parameters": {
37921	//     "backendService": {
37922	//       "description": "Name of the BackendService resource to update.",
37923	//       "location": "path",
37924	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
37925	//       "required": true,
37926	//       "type": "string"
37927	//     },
37928	//     "project": {
37929	//       "description": "Project ID for this request.",
37930	//       "location": "path",
37931	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
37932	//       "required": true,
37933	//       "type": "string"
37934	//     },
37935	//     "requestId": {
37936	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
37937	//       "location": "query",
37938	//       "type": "string"
37939	//     }
37940	//   },
37941	//   "path": "{project}/global/backendServices/{backendService}",
37942	//   "request": {
37943	//     "$ref": "BackendService"
37944	//   },
37945	//   "response": {
37946	//     "$ref": "Operation"
37947	//   },
37948	//   "scopes": [
37949	//     "https://www.googleapis.com/auth/cloud-platform",
37950	//     "https://www.googleapis.com/auth/compute"
37951	//   ]
37952	// }
37953
37954}
37955
37956// method id "compute.diskTypes.aggregatedList":
37957
37958type DiskTypesAggregatedListCall struct {
37959	s            *Service
37960	project      string
37961	urlParams_   gensupport.URLParams
37962	ifNoneMatch_ string
37963	ctx_         context.Context
37964	header_      http.Header
37965}
37966
37967// AggregatedList: Retrieves an aggregated list of disk types.
37968// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/aggregatedList
37969func (r *DiskTypesService) AggregatedList(project string) *DiskTypesAggregatedListCall {
37970	c := &DiskTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37971	c.project = project
37972	return c
37973}
37974
37975// Filter sets the optional parameter "filter": A filter expression that
37976// filters resources listed in the response. The expression must specify
37977// the field name, a comparison operator, and the value that you want to
37978// use for filtering. The value must be a string, a number, or a
37979// boolean. The comparison operator must be either =, !=, >, or <.
37980//
37981// For example, if you are filtering Compute Engine instances, you can
37982// exclude instances named example-instance by specifying name !=
37983// example-instance.
37984//
37985// You can also filter nested fields. For example, you could specify
37986// scheduling.automaticRestart = false to include instances only if they
37987// are not scheduled for automatic restarts. You can use filtering on
37988// nested fields to filter based on resource labels.
37989//
37990// To filter on multiple expressions, provide each separate expression
37991// within parentheses. For example, (scheduling.automaticRestart = true)
37992// (cpuPlatform = "Intel Skylake"). By default, each expression is an
37993// AND expression. However, you can include AND and OR expressions
37994// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
37995// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
37996// true).
37997func (c *DiskTypesAggregatedListCall) Filter(filter string) *DiskTypesAggregatedListCall {
37998	c.urlParams_.Set("filter", filter)
37999	return c
38000}
38001
38002// MaxResults sets the optional parameter "maxResults": The maximum
38003// number of results per page that should be returned. If the number of
38004// available results is larger than maxResults, Compute Engine returns a
38005// nextPageToken that can be used to get the next page of results in
38006// subsequent list requests. Acceptable values are 0 to 500, inclusive.
38007// (Default: 500)
38008func (c *DiskTypesAggregatedListCall) MaxResults(maxResults int64) *DiskTypesAggregatedListCall {
38009	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
38010	return c
38011}
38012
38013// OrderBy sets the optional parameter "orderBy": Sorts list results by
38014// a certain order. By default, results are returned in alphanumerical
38015// order based on the resource name.
38016//
38017// You can also sort results in descending order based on the creation
38018// timestamp using orderBy="creationTimestamp desc". This sorts results
38019// based on the creationTimestamp field in reverse chronological order
38020// (newest result first). Use this to sort resources like operations so
38021// that the newest operation is returned first.
38022//
38023// Currently, only sorting by name or creationTimestamp desc is
38024// supported.
38025func (c *DiskTypesAggregatedListCall) OrderBy(orderBy string) *DiskTypesAggregatedListCall {
38026	c.urlParams_.Set("orderBy", orderBy)
38027	return c
38028}
38029
38030// PageToken sets the optional parameter "pageToken": Specifies a page
38031// token to use. Set pageToken to the nextPageToken returned by a
38032// previous list request to get the next page of results.
38033func (c *DiskTypesAggregatedListCall) PageToken(pageToken string) *DiskTypesAggregatedListCall {
38034	c.urlParams_.Set("pageToken", pageToken)
38035	return c
38036}
38037
38038// Fields allows partial responses to be retrieved. See
38039// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38040// for more information.
38041func (c *DiskTypesAggregatedListCall) Fields(s ...googleapi.Field) *DiskTypesAggregatedListCall {
38042	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38043	return c
38044}
38045
38046// IfNoneMatch sets the optional parameter which makes the operation
38047// fail if the object's ETag matches the given value. This is useful for
38048// getting updates only after the object has changed since the last
38049// request. Use googleapi.IsNotModified to check whether the response
38050// error from Do is the result of In-None-Match.
38051func (c *DiskTypesAggregatedListCall) IfNoneMatch(entityTag string) *DiskTypesAggregatedListCall {
38052	c.ifNoneMatch_ = entityTag
38053	return c
38054}
38055
38056// Context sets the context to be used in this call's Do method. Any
38057// pending HTTP request will be aborted if the provided context is
38058// canceled.
38059func (c *DiskTypesAggregatedListCall) Context(ctx context.Context) *DiskTypesAggregatedListCall {
38060	c.ctx_ = ctx
38061	return c
38062}
38063
38064// Header returns an http.Header that can be modified by the caller to
38065// add HTTP headers to the request.
38066func (c *DiskTypesAggregatedListCall) Header() http.Header {
38067	if c.header_ == nil {
38068		c.header_ = make(http.Header)
38069	}
38070	return c.header_
38071}
38072
38073func (c *DiskTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
38074	reqHeaders := make(http.Header)
38075	for k, v := range c.header_ {
38076		reqHeaders[k] = v
38077	}
38078	reqHeaders.Set("User-Agent", c.s.userAgent())
38079	if c.ifNoneMatch_ != "" {
38080		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
38081	}
38082	var body io.Reader = nil
38083	c.urlParams_.Set("alt", alt)
38084	c.urlParams_.Set("prettyPrint", "false")
38085	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/diskTypes")
38086	urls += "?" + c.urlParams_.Encode()
38087	req, err := http.NewRequest("GET", urls, body)
38088	if err != nil {
38089		return nil, err
38090	}
38091	req.Header = reqHeaders
38092	googleapi.Expand(req.URL, map[string]string{
38093		"project": c.project,
38094	})
38095	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38096}
38097
38098// Do executes the "compute.diskTypes.aggregatedList" call.
38099// Exactly one of *DiskTypeAggregatedList or error will be non-nil. Any
38100// non-2xx status code is an error. Response headers are in either
38101// *DiskTypeAggregatedList.ServerResponse.Header or (if a response was
38102// returned at all) in error.(*googleapi.Error).Header. Use
38103// googleapi.IsNotModified to check whether the returned error was
38104// because http.StatusNotModified was returned.
38105func (c *DiskTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskTypeAggregatedList, error) {
38106	gensupport.SetOptions(c.urlParams_, opts...)
38107	res, err := c.doRequest("json")
38108	if res != nil && res.StatusCode == http.StatusNotModified {
38109		if res.Body != nil {
38110			res.Body.Close()
38111		}
38112		return nil, &googleapi.Error{
38113			Code:   res.StatusCode,
38114			Header: res.Header,
38115		}
38116	}
38117	if err != nil {
38118		return nil, err
38119	}
38120	defer googleapi.CloseBody(res)
38121	if err := googleapi.CheckResponse(res); err != nil {
38122		return nil, err
38123	}
38124	ret := &DiskTypeAggregatedList{
38125		ServerResponse: googleapi.ServerResponse{
38126			Header:         res.Header,
38127			HTTPStatusCode: res.StatusCode,
38128		},
38129	}
38130	target := &ret
38131	if err := gensupport.DecodeResponse(target, res); err != nil {
38132		return nil, err
38133	}
38134	return ret, nil
38135	// {
38136	//   "description": "Retrieves an aggregated list of disk types.",
38137	//   "httpMethod": "GET",
38138	//   "id": "compute.diskTypes.aggregatedList",
38139	//   "parameterOrder": [
38140	//     "project"
38141	//   ],
38142	//   "parameters": {
38143	//     "filter": {
38144	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
38145	//       "location": "query",
38146	//       "type": "string"
38147	//     },
38148	//     "maxResults": {
38149	//       "default": "500",
38150	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
38151	//       "format": "uint32",
38152	//       "location": "query",
38153	//       "minimum": "0",
38154	//       "type": "integer"
38155	//     },
38156	//     "orderBy": {
38157	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
38158	//       "location": "query",
38159	//       "type": "string"
38160	//     },
38161	//     "pageToken": {
38162	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
38163	//       "location": "query",
38164	//       "type": "string"
38165	//     },
38166	//     "project": {
38167	//       "description": "Project ID for this request.",
38168	//       "location": "path",
38169	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
38170	//       "required": true,
38171	//       "type": "string"
38172	//     }
38173	//   },
38174	//   "path": "{project}/aggregated/diskTypes",
38175	//   "response": {
38176	//     "$ref": "DiskTypeAggregatedList"
38177	//   },
38178	//   "scopes": [
38179	//     "https://www.googleapis.com/auth/cloud-platform",
38180	//     "https://www.googleapis.com/auth/compute",
38181	//     "https://www.googleapis.com/auth/compute.readonly"
38182	//   ]
38183	// }
38184
38185}
38186
38187// Pages invokes f for each page of results.
38188// A non-nil error returned from f will halt the iteration.
38189// The provided context supersedes any context provided to the Context method.
38190func (c *DiskTypesAggregatedListCall) Pages(ctx context.Context, f func(*DiskTypeAggregatedList) error) error {
38191	c.ctx_ = ctx
38192	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
38193	for {
38194		x, err := c.Do()
38195		if err != nil {
38196			return err
38197		}
38198		if err := f(x); err != nil {
38199			return err
38200		}
38201		if x.NextPageToken == "" {
38202			return nil
38203		}
38204		c.PageToken(x.NextPageToken)
38205	}
38206}
38207
38208// method id "compute.diskTypes.get":
38209
38210type DiskTypesGetCall struct {
38211	s            *Service
38212	project      string
38213	zone         string
38214	diskType     string
38215	urlParams_   gensupport.URLParams
38216	ifNoneMatch_ string
38217	ctx_         context.Context
38218	header_      http.Header
38219}
38220
38221// Get: Returns the specified disk type. Gets a list of available disk
38222// types by making a list() request.
38223// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/get
38224func (r *DiskTypesService) Get(project string, zone string, diskType string) *DiskTypesGetCall {
38225	c := &DiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38226	c.project = project
38227	c.zone = zone
38228	c.diskType = diskType
38229	return c
38230}
38231
38232// Fields allows partial responses to be retrieved. See
38233// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38234// for more information.
38235func (c *DiskTypesGetCall) Fields(s ...googleapi.Field) *DiskTypesGetCall {
38236	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38237	return c
38238}
38239
38240// IfNoneMatch sets the optional parameter which makes the operation
38241// fail if the object's ETag matches the given value. This is useful for
38242// getting updates only after the object has changed since the last
38243// request. Use googleapi.IsNotModified to check whether the response
38244// error from Do is the result of In-None-Match.
38245func (c *DiskTypesGetCall) IfNoneMatch(entityTag string) *DiskTypesGetCall {
38246	c.ifNoneMatch_ = entityTag
38247	return c
38248}
38249
38250// Context sets the context to be used in this call's Do method. Any
38251// pending HTTP request will be aborted if the provided context is
38252// canceled.
38253func (c *DiskTypesGetCall) Context(ctx context.Context) *DiskTypesGetCall {
38254	c.ctx_ = ctx
38255	return c
38256}
38257
38258// Header returns an http.Header that can be modified by the caller to
38259// add HTTP headers to the request.
38260func (c *DiskTypesGetCall) Header() http.Header {
38261	if c.header_ == nil {
38262		c.header_ = make(http.Header)
38263	}
38264	return c.header_
38265}
38266
38267func (c *DiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
38268	reqHeaders := make(http.Header)
38269	for k, v := range c.header_ {
38270		reqHeaders[k] = v
38271	}
38272	reqHeaders.Set("User-Agent", c.s.userAgent())
38273	if c.ifNoneMatch_ != "" {
38274		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
38275	}
38276	var body io.Reader = nil
38277	c.urlParams_.Set("alt", alt)
38278	c.urlParams_.Set("prettyPrint", "false")
38279	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/diskTypes/{diskType}")
38280	urls += "?" + c.urlParams_.Encode()
38281	req, err := http.NewRequest("GET", urls, body)
38282	if err != nil {
38283		return nil, err
38284	}
38285	req.Header = reqHeaders
38286	googleapi.Expand(req.URL, map[string]string{
38287		"project":  c.project,
38288		"zone":     c.zone,
38289		"diskType": c.diskType,
38290	})
38291	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38292}
38293
38294// Do executes the "compute.diskTypes.get" call.
38295// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
38296// code is an error. Response headers are in either
38297// *DiskType.ServerResponse.Header or (if a response was returned at
38298// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
38299// to check whether the returned error was because
38300// http.StatusNotModified was returned.
38301func (c *DiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
38302	gensupport.SetOptions(c.urlParams_, opts...)
38303	res, err := c.doRequest("json")
38304	if res != nil && res.StatusCode == http.StatusNotModified {
38305		if res.Body != nil {
38306			res.Body.Close()
38307		}
38308		return nil, &googleapi.Error{
38309			Code:   res.StatusCode,
38310			Header: res.Header,
38311		}
38312	}
38313	if err != nil {
38314		return nil, err
38315	}
38316	defer googleapi.CloseBody(res)
38317	if err := googleapi.CheckResponse(res); err != nil {
38318		return nil, err
38319	}
38320	ret := &DiskType{
38321		ServerResponse: googleapi.ServerResponse{
38322			Header:         res.Header,
38323			HTTPStatusCode: res.StatusCode,
38324		},
38325	}
38326	target := &ret
38327	if err := gensupport.DecodeResponse(target, res); err != nil {
38328		return nil, err
38329	}
38330	return ret, nil
38331	// {
38332	//   "description": "Returns the specified disk type. Gets a list of available disk types by making a list() request.",
38333	//   "httpMethod": "GET",
38334	//   "id": "compute.diskTypes.get",
38335	//   "parameterOrder": [
38336	//     "project",
38337	//     "zone",
38338	//     "diskType"
38339	//   ],
38340	//   "parameters": {
38341	//     "diskType": {
38342	//       "description": "Name of the disk type to return.",
38343	//       "location": "path",
38344	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
38345	//       "required": true,
38346	//       "type": "string"
38347	//     },
38348	//     "project": {
38349	//       "description": "Project ID for this request.",
38350	//       "location": "path",
38351	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
38352	//       "required": true,
38353	//       "type": "string"
38354	//     },
38355	//     "zone": {
38356	//       "description": "The name of the zone for this request.",
38357	//       "location": "path",
38358	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
38359	//       "required": true,
38360	//       "type": "string"
38361	//     }
38362	//   },
38363	//   "path": "{project}/zones/{zone}/diskTypes/{diskType}",
38364	//   "response": {
38365	//     "$ref": "DiskType"
38366	//   },
38367	//   "scopes": [
38368	//     "https://www.googleapis.com/auth/cloud-platform",
38369	//     "https://www.googleapis.com/auth/compute",
38370	//     "https://www.googleapis.com/auth/compute.readonly"
38371	//   ]
38372	// }
38373
38374}
38375
38376// method id "compute.diskTypes.list":
38377
38378type DiskTypesListCall struct {
38379	s            *Service
38380	project      string
38381	zone         string
38382	urlParams_   gensupport.URLParams
38383	ifNoneMatch_ string
38384	ctx_         context.Context
38385	header_      http.Header
38386}
38387
38388// List: Retrieves a list of disk types available to the specified
38389// project.
38390// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/list
38391func (r *DiskTypesService) List(project string, zone string) *DiskTypesListCall {
38392	c := &DiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38393	c.project = project
38394	c.zone = zone
38395	return c
38396}
38397
38398// Filter sets the optional parameter "filter": A filter expression that
38399// filters resources listed in the response. The expression must specify
38400// the field name, a comparison operator, and the value that you want to
38401// use for filtering. The value must be a string, a number, or a
38402// boolean. The comparison operator must be either =, !=, >, or <.
38403//
38404// For example, if you are filtering Compute Engine instances, you can
38405// exclude instances named example-instance by specifying name !=
38406// example-instance.
38407//
38408// You can also filter nested fields. For example, you could specify
38409// scheduling.automaticRestart = false to include instances only if they
38410// are not scheduled for automatic restarts. You can use filtering on
38411// nested fields to filter based on resource labels.
38412//
38413// To filter on multiple expressions, provide each separate expression
38414// within parentheses. For example, (scheduling.automaticRestart = true)
38415// (cpuPlatform = "Intel Skylake"). By default, each expression is an
38416// AND expression. However, you can include AND and OR expressions
38417// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
38418// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
38419// true).
38420func (c *DiskTypesListCall) Filter(filter string) *DiskTypesListCall {
38421	c.urlParams_.Set("filter", filter)
38422	return c
38423}
38424
38425// MaxResults sets the optional parameter "maxResults": The maximum
38426// number of results per page that should be returned. If the number of
38427// available results is larger than maxResults, Compute Engine returns a
38428// nextPageToken that can be used to get the next page of results in
38429// subsequent list requests. Acceptable values are 0 to 500, inclusive.
38430// (Default: 500)
38431func (c *DiskTypesListCall) MaxResults(maxResults int64) *DiskTypesListCall {
38432	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
38433	return c
38434}
38435
38436// OrderBy sets the optional parameter "orderBy": Sorts list results by
38437// a certain order. By default, results are returned in alphanumerical
38438// order based on the resource name.
38439//
38440// You can also sort results in descending order based on the creation
38441// timestamp using orderBy="creationTimestamp desc". This sorts results
38442// based on the creationTimestamp field in reverse chronological order
38443// (newest result first). Use this to sort resources like operations so
38444// that the newest operation is returned first.
38445//
38446// Currently, only sorting by name or creationTimestamp desc is
38447// supported.
38448func (c *DiskTypesListCall) OrderBy(orderBy string) *DiskTypesListCall {
38449	c.urlParams_.Set("orderBy", orderBy)
38450	return c
38451}
38452
38453// PageToken sets the optional parameter "pageToken": Specifies a page
38454// token to use. Set pageToken to the nextPageToken returned by a
38455// previous list request to get the next page of results.
38456func (c *DiskTypesListCall) PageToken(pageToken string) *DiskTypesListCall {
38457	c.urlParams_.Set("pageToken", pageToken)
38458	return c
38459}
38460
38461// Fields allows partial responses to be retrieved. See
38462// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38463// for more information.
38464func (c *DiskTypesListCall) Fields(s ...googleapi.Field) *DiskTypesListCall {
38465	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38466	return c
38467}
38468
38469// IfNoneMatch sets the optional parameter which makes the operation
38470// fail if the object's ETag matches the given value. This is useful for
38471// getting updates only after the object has changed since the last
38472// request. Use googleapi.IsNotModified to check whether the response
38473// error from Do is the result of In-None-Match.
38474func (c *DiskTypesListCall) IfNoneMatch(entityTag string) *DiskTypesListCall {
38475	c.ifNoneMatch_ = entityTag
38476	return c
38477}
38478
38479// Context sets the context to be used in this call's Do method. Any
38480// pending HTTP request will be aborted if the provided context is
38481// canceled.
38482func (c *DiskTypesListCall) Context(ctx context.Context) *DiskTypesListCall {
38483	c.ctx_ = ctx
38484	return c
38485}
38486
38487// Header returns an http.Header that can be modified by the caller to
38488// add HTTP headers to the request.
38489func (c *DiskTypesListCall) Header() http.Header {
38490	if c.header_ == nil {
38491		c.header_ = make(http.Header)
38492	}
38493	return c.header_
38494}
38495
38496func (c *DiskTypesListCall) doRequest(alt string) (*http.Response, error) {
38497	reqHeaders := make(http.Header)
38498	for k, v := range c.header_ {
38499		reqHeaders[k] = v
38500	}
38501	reqHeaders.Set("User-Agent", c.s.userAgent())
38502	if c.ifNoneMatch_ != "" {
38503		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
38504	}
38505	var body io.Reader = nil
38506	c.urlParams_.Set("alt", alt)
38507	c.urlParams_.Set("prettyPrint", "false")
38508	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/diskTypes")
38509	urls += "?" + c.urlParams_.Encode()
38510	req, err := http.NewRequest("GET", urls, body)
38511	if err != nil {
38512		return nil, err
38513	}
38514	req.Header = reqHeaders
38515	googleapi.Expand(req.URL, map[string]string{
38516		"project": c.project,
38517		"zone":    c.zone,
38518	})
38519	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38520}
38521
38522// Do executes the "compute.diskTypes.list" call.
38523// Exactly one of *DiskTypeList or error will be non-nil. Any non-2xx
38524// status code is an error. Response headers are in either
38525// *DiskTypeList.ServerResponse.Header or (if a response was returned at
38526// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
38527// to check whether the returned error was because
38528// http.StatusNotModified was returned.
38529func (c *DiskTypesListCall) Do(opts ...googleapi.CallOption) (*DiskTypeList, error) {
38530	gensupport.SetOptions(c.urlParams_, opts...)
38531	res, err := c.doRequest("json")
38532	if res != nil && res.StatusCode == http.StatusNotModified {
38533		if res.Body != nil {
38534			res.Body.Close()
38535		}
38536		return nil, &googleapi.Error{
38537			Code:   res.StatusCode,
38538			Header: res.Header,
38539		}
38540	}
38541	if err != nil {
38542		return nil, err
38543	}
38544	defer googleapi.CloseBody(res)
38545	if err := googleapi.CheckResponse(res); err != nil {
38546		return nil, err
38547	}
38548	ret := &DiskTypeList{
38549		ServerResponse: googleapi.ServerResponse{
38550			Header:         res.Header,
38551			HTTPStatusCode: res.StatusCode,
38552		},
38553	}
38554	target := &ret
38555	if err := gensupport.DecodeResponse(target, res); err != nil {
38556		return nil, err
38557	}
38558	return ret, nil
38559	// {
38560	//   "description": "Retrieves a list of disk types available to the specified project.",
38561	//   "httpMethod": "GET",
38562	//   "id": "compute.diskTypes.list",
38563	//   "parameterOrder": [
38564	//     "project",
38565	//     "zone"
38566	//   ],
38567	//   "parameters": {
38568	//     "filter": {
38569	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
38570	//       "location": "query",
38571	//       "type": "string"
38572	//     },
38573	//     "maxResults": {
38574	//       "default": "500",
38575	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
38576	//       "format": "uint32",
38577	//       "location": "query",
38578	//       "minimum": "0",
38579	//       "type": "integer"
38580	//     },
38581	//     "orderBy": {
38582	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
38583	//       "location": "query",
38584	//       "type": "string"
38585	//     },
38586	//     "pageToken": {
38587	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
38588	//       "location": "query",
38589	//       "type": "string"
38590	//     },
38591	//     "project": {
38592	//       "description": "Project ID for this request.",
38593	//       "location": "path",
38594	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
38595	//       "required": true,
38596	//       "type": "string"
38597	//     },
38598	//     "zone": {
38599	//       "description": "The name of the zone for this request.",
38600	//       "location": "path",
38601	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
38602	//       "required": true,
38603	//       "type": "string"
38604	//     }
38605	//   },
38606	//   "path": "{project}/zones/{zone}/diskTypes",
38607	//   "response": {
38608	//     "$ref": "DiskTypeList"
38609	//   },
38610	//   "scopes": [
38611	//     "https://www.googleapis.com/auth/cloud-platform",
38612	//     "https://www.googleapis.com/auth/compute",
38613	//     "https://www.googleapis.com/auth/compute.readonly"
38614	//   ]
38615	// }
38616
38617}
38618
38619// Pages invokes f for each page of results.
38620// A non-nil error returned from f will halt the iteration.
38621// The provided context supersedes any context provided to the Context method.
38622func (c *DiskTypesListCall) Pages(ctx context.Context, f func(*DiskTypeList) error) error {
38623	c.ctx_ = ctx
38624	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
38625	for {
38626		x, err := c.Do()
38627		if err != nil {
38628			return err
38629		}
38630		if err := f(x); err != nil {
38631			return err
38632		}
38633		if x.NextPageToken == "" {
38634			return nil
38635		}
38636		c.PageToken(x.NextPageToken)
38637	}
38638}
38639
38640// method id "compute.disks.aggregatedList":
38641
38642type DisksAggregatedListCall struct {
38643	s            *Service
38644	project      string
38645	urlParams_   gensupport.URLParams
38646	ifNoneMatch_ string
38647	ctx_         context.Context
38648	header_      http.Header
38649}
38650
38651// AggregatedList: Retrieves an aggregated list of persistent disks.
38652// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/aggregatedList
38653func (r *DisksService) AggregatedList(project string) *DisksAggregatedListCall {
38654	c := &DisksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38655	c.project = project
38656	return c
38657}
38658
38659// Filter sets the optional parameter "filter": A filter expression that
38660// filters resources listed in the response. The expression must specify
38661// the field name, a comparison operator, and the value that you want to
38662// use for filtering. The value must be a string, a number, or a
38663// boolean. The comparison operator must be either =, !=, >, or <.
38664//
38665// For example, if you are filtering Compute Engine instances, you can
38666// exclude instances named example-instance by specifying name !=
38667// example-instance.
38668//
38669// You can also filter nested fields. For example, you could specify
38670// scheduling.automaticRestart = false to include instances only if they
38671// are not scheduled for automatic restarts. You can use filtering on
38672// nested fields to filter based on resource labels.
38673//
38674// To filter on multiple expressions, provide each separate expression
38675// within parentheses. For example, (scheduling.automaticRestart = true)
38676// (cpuPlatform = "Intel Skylake"). By default, each expression is an
38677// AND expression. However, you can include AND and OR expressions
38678// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
38679// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
38680// true).
38681func (c *DisksAggregatedListCall) Filter(filter string) *DisksAggregatedListCall {
38682	c.urlParams_.Set("filter", filter)
38683	return c
38684}
38685
38686// MaxResults sets the optional parameter "maxResults": The maximum
38687// number of results per page that should be returned. If the number of
38688// available results is larger than maxResults, Compute Engine returns a
38689// nextPageToken that can be used to get the next page of results in
38690// subsequent list requests. Acceptable values are 0 to 500, inclusive.
38691// (Default: 500)
38692func (c *DisksAggregatedListCall) MaxResults(maxResults int64) *DisksAggregatedListCall {
38693	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
38694	return c
38695}
38696
38697// OrderBy sets the optional parameter "orderBy": Sorts list results by
38698// a certain order. By default, results are returned in alphanumerical
38699// order based on the resource name.
38700//
38701// You can also sort results in descending order based on the creation
38702// timestamp using orderBy="creationTimestamp desc". This sorts results
38703// based on the creationTimestamp field in reverse chronological order
38704// (newest result first). Use this to sort resources like operations so
38705// that the newest operation is returned first.
38706//
38707// Currently, only sorting by name or creationTimestamp desc is
38708// supported.
38709func (c *DisksAggregatedListCall) OrderBy(orderBy string) *DisksAggregatedListCall {
38710	c.urlParams_.Set("orderBy", orderBy)
38711	return c
38712}
38713
38714// PageToken sets the optional parameter "pageToken": Specifies a page
38715// token to use. Set pageToken to the nextPageToken returned by a
38716// previous list request to get the next page of results.
38717func (c *DisksAggregatedListCall) PageToken(pageToken string) *DisksAggregatedListCall {
38718	c.urlParams_.Set("pageToken", pageToken)
38719	return c
38720}
38721
38722// Fields allows partial responses to be retrieved. See
38723// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38724// for more information.
38725func (c *DisksAggregatedListCall) Fields(s ...googleapi.Field) *DisksAggregatedListCall {
38726	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38727	return c
38728}
38729
38730// IfNoneMatch sets the optional parameter which makes the operation
38731// fail if the object's ETag matches the given value. This is useful for
38732// getting updates only after the object has changed since the last
38733// request. Use googleapi.IsNotModified to check whether the response
38734// error from Do is the result of In-None-Match.
38735func (c *DisksAggregatedListCall) IfNoneMatch(entityTag string) *DisksAggregatedListCall {
38736	c.ifNoneMatch_ = entityTag
38737	return c
38738}
38739
38740// Context sets the context to be used in this call's Do method. Any
38741// pending HTTP request will be aborted if the provided context is
38742// canceled.
38743func (c *DisksAggregatedListCall) Context(ctx context.Context) *DisksAggregatedListCall {
38744	c.ctx_ = ctx
38745	return c
38746}
38747
38748// Header returns an http.Header that can be modified by the caller to
38749// add HTTP headers to the request.
38750func (c *DisksAggregatedListCall) Header() http.Header {
38751	if c.header_ == nil {
38752		c.header_ = make(http.Header)
38753	}
38754	return c.header_
38755}
38756
38757func (c *DisksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
38758	reqHeaders := make(http.Header)
38759	for k, v := range c.header_ {
38760		reqHeaders[k] = v
38761	}
38762	reqHeaders.Set("User-Agent", c.s.userAgent())
38763	if c.ifNoneMatch_ != "" {
38764		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
38765	}
38766	var body io.Reader = nil
38767	c.urlParams_.Set("alt", alt)
38768	c.urlParams_.Set("prettyPrint", "false")
38769	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/disks")
38770	urls += "?" + c.urlParams_.Encode()
38771	req, err := http.NewRequest("GET", urls, body)
38772	if err != nil {
38773		return nil, err
38774	}
38775	req.Header = reqHeaders
38776	googleapi.Expand(req.URL, map[string]string{
38777		"project": c.project,
38778	})
38779	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38780}
38781
38782// Do executes the "compute.disks.aggregatedList" call.
38783// Exactly one of *DiskAggregatedList or error will be non-nil. Any
38784// non-2xx status code is an error. Response headers are in either
38785// *DiskAggregatedList.ServerResponse.Header or (if a response was
38786// returned at all) in error.(*googleapi.Error).Header. Use
38787// googleapi.IsNotModified to check whether the returned error was
38788// because http.StatusNotModified was returned.
38789func (c *DisksAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskAggregatedList, error) {
38790	gensupport.SetOptions(c.urlParams_, opts...)
38791	res, err := c.doRequest("json")
38792	if res != nil && res.StatusCode == http.StatusNotModified {
38793		if res.Body != nil {
38794			res.Body.Close()
38795		}
38796		return nil, &googleapi.Error{
38797			Code:   res.StatusCode,
38798			Header: res.Header,
38799		}
38800	}
38801	if err != nil {
38802		return nil, err
38803	}
38804	defer googleapi.CloseBody(res)
38805	if err := googleapi.CheckResponse(res); err != nil {
38806		return nil, err
38807	}
38808	ret := &DiskAggregatedList{
38809		ServerResponse: googleapi.ServerResponse{
38810			Header:         res.Header,
38811			HTTPStatusCode: res.StatusCode,
38812		},
38813	}
38814	target := &ret
38815	if err := gensupport.DecodeResponse(target, res); err != nil {
38816		return nil, err
38817	}
38818	return ret, nil
38819	// {
38820	//   "description": "Retrieves an aggregated list of persistent disks.",
38821	//   "httpMethod": "GET",
38822	//   "id": "compute.disks.aggregatedList",
38823	//   "parameterOrder": [
38824	//     "project"
38825	//   ],
38826	//   "parameters": {
38827	//     "filter": {
38828	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
38829	//       "location": "query",
38830	//       "type": "string"
38831	//     },
38832	//     "maxResults": {
38833	//       "default": "500",
38834	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
38835	//       "format": "uint32",
38836	//       "location": "query",
38837	//       "minimum": "0",
38838	//       "type": "integer"
38839	//     },
38840	//     "orderBy": {
38841	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
38842	//       "location": "query",
38843	//       "type": "string"
38844	//     },
38845	//     "pageToken": {
38846	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
38847	//       "location": "query",
38848	//       "type": "string"
38849	//     },
38850	//     "project": {
38851	//       "description": "Project ID for this request.",
38852	//       "location": "path",
38853	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
38854	//       "required": true,
38855	//       "type": "string"
38856	//     }
38857	//   },
38858	//   "path": "{project}/aggregated/disks",
38859	//   "response": {
38860	//     "$ref": "DiskAggregatedList"
38861	//   },
38862	//   "scopes": [
38863	//     "https://www.googleapis.com/auth/cloud-platform",
38864	//     "https://www.googleapis.com/auth/compute",
38865	//     "https://www.googleapis.com/auth/compute.readonly"
38866	//   ]
38867	// }
38868
38869}
38870
38871// Pages invokes f for each page of results.
38872// A non-nil error returned from f will halt the iteration.
38873// The provided context supersedes any context provided to the Context method.
38874func (c *DisksAggregatedListCall) Pages(ctx context.Context, f func(*DiskAggregatedList) error) error {
38875	c.ctx_ = ctx
38876	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
38877	for {
38878		x, err := c.Do()
38879		if err != nil {
38880			return err
38881		}
38882		if err := f(x); err != nil {
38883			return err
38884		}
38885		if x.NextPageToken == "" {
38886			return nil
38887		}
38888		c.PageToken(x.NextPageToken)
38889	}
38890}
38891
38892// method id "compute.disks.createSnapshot":
38893
38894type DisksCreateSnapshotCall struct {
38895	s          *Service
38896	project    string
38897	zone       string
38898	disk       string
38899	snapshot   *Snapshot
38900	urlParams_ gensupport.URLParams
38901	ctx_       context.Context
38902	header_    http.Header
38903}
38904
38905// CreateSnapshot: Creates a snapshot of a specified persistent disk.
38906// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/createSnapshot
38907func (r *DisksService) CreateSnapshot(project string, zone string, disk string, snapshot *Snapshot) *DisksCreateSnapshotCall {
38908	c := &DisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38909	c.project = project
38910	c.zone = zone
38911	c.disk = disk
38912	c.snapshot = snapshot
38913	return c
38914}
38915
38916// GuestFlush sets the optional parameter "guestFlush":
38917func (c *DisksCreateSnapshotCall) GuestFlush(guestFlush bool) *DisksCreateSnapshotCall {
38918	c.urlParams_.Set("guestFlush", fmt.Sprint(guestFlush))
38919	return c
38920}
38921
38922// RequestId sets the optional parameter "requestId": An optional
38923// request ID to identify requests. Specify a unique request ID so that
38924// if you must retry your request, the server will know to ignore the
38925// request if it has already been completed.
38926//
38927// For example, consider a situation where you make an initial request
38928// and the request times out. If you make the request again with the
38929// same request ID, the server can check if original operation with the
38930// same request ID was received, and if so, will ignore the second
38931// request. This prevents clients from accidentally creating duplicate
38932// commitments.
38933//
38934// The request ID must be a valid UUID with the exception that zero UUID
38935// is not supported (00000000-0000-0000-0000-000000000000).
38936func (c *DisksCreateSnapshotCall) RequestId(requestId string) *DisksCreateSnapshotCall {
38937	c.urlParams_.Set("requestId", requestId)
38938	return c
38939}
38940
38941// Fields allows partial responses to be retrieved. See
38942// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38943// for more information.
38944func (c *DisksCreateSnapshotCall) Fields(s ...googleapi.Field) *DisksCreateSnapshotCall {
38945	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38946	return c
38947}
38948
38949// Context sets the context to be used in this call's Do method. Any
38950// pending HTTP request will be aborted if the provided context is
38951// canceled.
38952func (c *DisksCreateSnapshotCall) Context(ctx context.Context) *DisksCreateSnapshotCall {
38953	c.ctx_ = ctx
38954	return c
38955}
38956
38957// Header returns an http.Header that can be modified by the caller to
38958// add HTTP headers to the request.
38959func (c *DisksCreateSnapshotCall) Header() http.Header {
38960	if c.header_ == nil {
38961		c.header_ = make(http.Header)
38962	}
38963	return c.header_
38964}
38965
38966func (c *DisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
38967	reqHeaders := make(http.Header)
38968	for k, v := range c.header_ {
38969		reqHeaders[k] = v
38970	}
38971	reqHeaders.Set("User-Agent", c.s.userAgent())
38972	var body io.Reader = nil
38973	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
38974	if err != nil {
38975		return nil, err
38976	}
38977	reqHeaders.Set("Content-Type", "application/json")
38978	c.urlParams_.Set("alt", alt)
38979	c.urlParams_.Set("prettyPrint", "false")
38980	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/createSnapshot")
38981	urls += "?" + c.urlParams_.Encode()
38982	req, err := http.NewRequest("POST", urls, body)
38983	if err != nil {
38984		return nil, err
38985	}
38986	req.Header = reqHeaders
38987	googleapi.Expand(req.URL, map[string]string{
38988		"project": c.project,
38989		"zone":    c.zone,
38990		"disk":    c.disk,
38991	})
38992	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38993}
38994
38995// Do executes the "compute.disks.createSnapshot" call.
38996// Exactly one of *Operation or error will be non-nil. Any non-2xx
38997// status code is an error. Response headers are in either
38998// *Operation.ServerResponse.Header or (if a response was returned at
38999// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
39000// to check whether the returned error was because
39001// http.StatusNotModified was returned.
39002func (c *DisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
39003	gensupport.SetOptions(c.urlParams_, opts...)
39004	res, err := c.doRequest("json")
39005	if res != nil && res.StatusCode == http.StatusNotModified {
39006		if res.Body != nil {
39007			res.Body.Close()
39008		}
39009		return nil, &googleapi.Error{
39010			Code:   res.StatusCode,
39011			Header: res.Header,
39012		}
39013	}
39014	if err != nil {
39015		return nil, err
39016	}
39017	defer googleapi.CloseBody(res)
39018	if err := googleapi.CheckResponse(res); err != nil {
39019		return nil, err
39020	}
39021	ret := &Operation{
39022		ServerResponse: googleapi.ServerResponse{
39023			Header:         res.Header,
39024			HTTPStatusCode: res.StatusCode,
39025		},
39026	}
39027	target := &ret
39028	if err := gensupport.DecodeResponse(target, res); err != nil {
39029		return nil, err
39030	}
39031	return ret, nil
39032	// {
39033	//   "description": "Creates a snapshot of a specified persistent disk.",
39034	//   "httpMethod": "POST",
39035	//   "id": "compute.disks.createSnapshot",
39036	//   "parameterOrder": [
39037	//     "project",
39038	//     "zone",
39039	//     "disk"
39040	//   ],
39041	//   "parameters": {
39042	//     "disk": {
39043	//       "description": "Name of the persistent disk to snapshot.",
39044	//       "location": "path",
39045	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
39046	//       "required": true,
39047	//       "type": "string"
39048	//     },
39049	//     "guestFlush": {
39050	//       "location": "query",
39051	//       "type": "boolean"
39052	//     },
39053	//     "project": {
39054	//       "description": "Project ID for this request.",
39055	//       "location": "path",
39056	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
39057	//       "required": true,
39058	//       "type": "string"
39059	//     },
39060	//     "requestId": {
39061	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
39062	//       "location": "query",
39063	//       "type": "string"
39064	//     },
39065	//     "zone": {
39066	//       "description": "The name of the zone for this request.",
39067	//       "location": "path",
39068	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
39069	//       "required": true,
39070	//       "type": "string"
39071	//     }
39072	//   },
39073	//   "path": "{project}/zones/{zone}/disks/{disk}/createSnapshot",
39074	//   "request": {
39075	//     "$ref": "Snapshot"
39076	//   },
39077	//   "response": {
39078	//     "$ref": "Operation"
39079	//   },
39080	//   "scopes": [
39081	//     "https://www.googleapis.com/auth/cloud-platform",
39082	//     "https://www.googleapis.com/auth/compute"
39083	//   ]
39084	// }
39085
39086}
39087
39088// method id "compute.disks.delete":
39089
39090type DisksDeleteCall struct {
39091	s          *Service
39092	project    string
39093	zone       string
39094	disk       string
39095	urlParams_ gensupport.URLParams
39096	ctx_       context.Context
39097	header_    http.Header
39098}
39099
39100// Delete: Deletes the specified persistent disk. Deleting a disk
39101// removes its data permanently and is irreversible. However, deleting a
39102// disk does not delete any snapshots previously made from the disk. You
39103// must separately delete snapshots.
39104// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/delete
39105func (r *DisksService) Delete(project string, zone string, disk string) *DisksDeleteCall {
39106	c := &DisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39107	c.project = project
39108	c.zone = zone
39109	c.disk = disk
39110	return c
39111}
39112
39113// RequestId sets the optional parameter "requestId": An optional
39114// request ID to identify requests. Specify a unique request ID so that
39115// if you must retry your request, the server will know to ignore the
39116// request if it has already been completed.
39117//
39118// For example, consider a situation where you make an initial request
39119// and the request times out. If you make the request again with the
39120// same request ID, the server can check if original operation with the
39121// same request ID was received, and if so, will ignore the second
39122// request. This prevents clients from accidentally creating duplicate
39123// commitments.
39124//
39125// The request ID must be a valid UUID with the exception that zero UUID
39126// is not supported (00000000-0000-0000-0000-000000000000).
39127func (c *DisksDeleteCall) RequestId(requestId string) *DisksDeleteCall {
39128	c.urlParams_.Set("requestId", requestId)
39129	return c
39130}
39131
39132// Fields allows partial responses to be retrieved. See
39133// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39134// for more information.
39135func (c *DisksDeleteCall) Fields(s ...googleapi.Field) *DisksDeleteCall {
39136	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39137	return c
39138}
39139
39140// Context sets the context to be used in this call's Do method. Any
39141// pending HTTP request will be aborted if the provided context is
39142// canceled.
39143func (c *DisksDeleteCall) Context(ctx context.Context) *DisksDeleteCall {
39144	c.ctx_ = ctx
39145	return c
39146}
39147
39148// Header returns an http.Header that can be modified by the caller to
39149// add HTTP headers to the request.
39150func (c *DisksDeleteCall) Header() http.Header {
39151	if c.header_ == nil {
39152		c.header_ = make(http.Header)
39153	}
39154	return c.header_
39155}
39156
39157func (c *DisksDeleteCall) doRequest(alt string) (*http.Response, error) {
39158	reqHeaders := make(http.Header)
39159	for k, v := range c.header_ {
39160		reqHeaders[k] = v
39161	}
39162	reqHeaders.Set("User-Agent", c.s.userAgent())
39163	var body io.Reader = nil
39164	c.urlParams_.Set("alt", alt)
39165	c.urlParams_.Set("prettyPrint", "false")
39166	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}")
39167	urls += "?" + c.urlParams_.Encode()
39168	req, err := http.NewRequest("DELETE", urls, body)
39169	if err != nil {
39170		return nil, err
39171	}
39172	req.Header = reqHeaders
39173	googleapi.Expand(req.URL, map[string]string{
39174		"project": c.project,
39175		"zone":    c.zone,
39176		"disk":    c.disk,
39177	})
39178	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39179}
39180
39181// Do executes the "compute.disks.delete" call.
39182// Exactly one of *Operation or error will be non-nil. Any non-2xx
39183// status code is an error. Response headers are in either
39184// *Operation.ServerResponse.Header or (if a response was returned at
39185// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
39186// to check whether the returned error was because
39187// http.StatusNotModified was returned.
39188func (c *DisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
39189	gensupport.SetOptions(c.urlParams_, opts...)
39190	res, err := c.doRequest("json")
39191	if res != nil && res.StatusCode == http.StatusNotModified {
39192		if res.Body != nil {
39193			res.Body.Close()
39194		}
39195		return nil, &googleapi.Error{
39196			Code:   res.StatusCode,
39197			Header: res.Header,
39198		}
39199	}
39200	if err != nil {
39201		return nil, err
39202	}
39203	defer googleapi.CloseBody(res)
39204	if err := googleapi.CheckResponse(res); err != nil {
39205		return nil, err
39206	}
39207	ret := &Operation{
39208		ServerResponse: googleapi.ServerResponse{
39209			Header:         res.Header,
39210			HTTPStatusCode: res.StatusCode,
39211		},
39212	}
39213	target := &ret
39214	if err := gensupport.DecodeResponse(target, res); err != nil {
39215		return nil, err
39216	}
39217	return ret, nil
39218	// {
39219	//   "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.",
39220	//   "httpMethod": "DELETE",
39221	//   "id": "compute.disks.delete",
39222	//   "parameterOrder": [
39223	//     "project",
39224	//     "zone",
39225	//     "disk"
39226	//   ],
39227	//   "parameters": {
39228	//     "disk": {
39229	//       "description": "Name of the persistent disk to delete.",
39230	//       "location": "path",
39231	//       "required": true,
39232	//       "type": "string"
39233	//     },
39234	//     "project": {
39235	//       "description": "Project ID for this request.",
39236	//       "location": "path",
39237	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
39238	//       "required": true,
39239	//       "type": "string"
39240	//     },
39241	//     "requestId": {
39242	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
39243	//       "location": "query",
39244	//       "type": "string"
39245	//     },
39246	//     "zone": {
39247	//       "description": "The name of the zone for this request.",
39248	//       "location": "path",
39249	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
39250	//       "required": true,
39251	//       "type": "string"
39252	//     }
39253	//   },
39254	//   "path": "{project}/zones/{zone}/disks/{disk}",
39255	//   "response": {
39256	//     "$ref": "Operation"
39257	//   },
39258	//   "scopes": [
39259	//     "https://www.googleapis.com/auth/cloud-platform",
39260	//     "https://www.googleapis.com/auth/compute"
39261	//   ]
39262	// }
39263
39264}
39265
39266// method id "compute.disks.get":
39267
39268type DisksGetCall struct {
39269	s            *Service
39270	project      string
39271	zone         string
39272	disk         string
39273	urlParams_   gensupport.URLParams
39274	ifNoneMatch_ string
39275	ctx_         context.Context
39276	header_      http.Header
39277}
39278
39279// Get: Returns a specified persistent disk. Gets a list of available
39280// persistent disks by making a list() request.
39281// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/get
39282func (r *DisksService) Get(project string, zone string, disk string) *DisksGetCall {
39283	c := &DisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39284	c.project = project
39285	c.zone = zone
39286	c.disk = disk
39287	return c
39288}
39289
39290// Fields allows partial responses to be retrieved. See
39291// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39292// for more information.
39293func (c *DisksGetCall) Fields(s ...googleapi.Field) *DisksGetCall {
39294	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39295	return c
39296}
39297
39298// IfNoneMatch sets the optional parameter which makes the operation
39299// fail if the object's ETag matches the given value. This is useful for
39300// getting updates only after the object has changed since the last
39301// request. Use googleapi.IsNotModified to check whether the response
39302// error from Do is the result of In-None-Match.
39303func (c *DisksGetCall) IfNoneMatch(entityTag string) *DisksGetCall {
39304	c.ifNoneMatch_ = entityTag
39305	return c
39306}
39307
39308// Context sets the context to be used in this call's Do method. Any
39309// pending HTTP request will be aborted if the provided context is
39310// canceled.
39311func (c *DisksGetCall) Context(ctx context.Context) *DisksGetCall {
39312	c.ctx_ = ctx
39313	return c
39314}
39315
39316// Header returns an http.Header that can be modified by the caller to
39317// add HTTP headers to the request.
39318func (c *DisksGetCall) Header() http.Header {
39319	if c.header_ == nil {
39320		c.header_ = make(http.Header)
39321	}
39322	return c.header_
39323}
39324
39325func (c *DisksGetCall) doRequest(alt string) (*http.Response, error) {
39326	reqHeaders := make(http.Header)
39327	for k, v := range c.header_ {
39328		reqHeaders[k] = v
39329	}
39330	reqHeaders.Set("User-Agent", c.s.userAgent())
39331	if c.ifNoneMatch_ != "" {
39332		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
39333	}
39334	var body io.Reader = nil
39335	c.urlParams_.Set("alt", alt)
39336	c.urlParams_.Set("prettyPrint", "false")
39337	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}")
39338	urls += "?" + c.urlParams_.Encode()
39339	req, err := http.NewRequest("GET", urls, body)
39340	if err != nil {
39341		return nil, err
39342	}
39343	req.Header = reqHeaders
39344	googleapi.Expand(req.URL, map[string]string{
39345		"project": c.project,
39346		"zone":    c.zone,
39347		"disk":    c.disk,
39348	})
39349	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39350}
39351
39352// Do executes the "compute.disks.get" call.
39353// Exactly one of *Disk or error will be non-nil. Any non-2xx status
39354// code is an error. Response headers are in either
39355// *Disk.ServerResponse.Header or (if a response was returned at all) in
39356// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
39357// whether the returned error was because http.StatusNotModified was
39358// returned.
39359func (c *DisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
39360	gensupport.SetOptions(c.urlParams_, opts...)
39361	res, err := c.doRequest("json")
39362	if res != nil && res.StatusCode == http.StatusNotModified {
39363		if res.Body != nil {
39364			res.Body.Close()
39365		}
39366		return nil, &googleapi.Error{
39367			Code:   res.StatusCode,
39368			Header: res.Header,
39369		}
39370	}
39371	if err != nil {
39372		return nil, err
39373	}
39374	defer googleapi.CloseBody(res)
39375	if err := googleapi.CheckResponse(res); err != nil {
39376		return nil, err
39377	}
39378	ret := &Disk{
39379		ServerResponse: googleapi.ServerResponse{
39380			Header:         res.Header,
39381			HTTPStatusCode: res.StatusCode,
39382		},
39383	}
39384	target := &ret
39385	if err := gensupport.DecodeResponse(target, res); err != nil {
39386		return nil, err
39387	}
39388	return ret, nil
39389	// {
39390	//   "description": "Returns a specified persistent disk. Gets a list of available persistent disks by making a list() request.",
39391	//   "httpMethod": "GET",
39392	//   "id": "compute.disks.get",
39393	//   "parameterOrder": [
39394	//     "project",
39395	//     "zone",
39396	//     "disk"
39397	//   ],
39398	//   "parameters": {
39399	//     "disk": {
39400	//       "description": "Name of the persistent disk to return.",
39401	//       "location": "path",
39402	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
39403	//       "required": true,
39404	//       "type": "string"
39405	//     },
39406	//     "project": {
39407	//       "description": "Project ID for this request.",
39408	//       "location": "path",
39409	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
39410	//       "required": true,
39411	//       "type": "string"
39412	//     },
39413	//     "zone": {
39414	//       "description": "The name of the zone for this request.",
39415	//       "location": "path",
39416	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
39417	//       "required": true,
39418	//       "type": "string"
39419	//     }
39420	//   },
39421	//   "path": "{project}/zones/{zone}/disks/{disk}",
39422	//   "response": {
39423	//     "$ref": "Disk"
39424	//   },
39425	//   "scopes": [
39426	//     "https://www.googleapis.com/auth/cloud-platform",
39427	//     "https://www.googleapis.com/auth/compute",
39428	//     "https://www.googleapis.com/auth/compute.readonly"
39429	//   ]
39430	// }
39431
39432}
39433
39434// method id "compute.disks.getIamPolicy":
39435
39436type DisksGetIamPolicyCall struct {
39437	s            *Service
39438	project      string
39439	zone         string
39440	resource     string
39441	urlParams_   gensupport.URLParams
39442	ifNoneMatch_ string
39443	ctx_         context.Context
39444	header_      http.Header
39445}
39446
39447// GetIamPolicy: Gets the access control policy for a resource. May be
39448// empty if no such policy or resource exists.
39449func (r *DisksService) GetIamPolicy(project string, zone string, resource string) *DisksGetIamPolicyCall {
39450	c := &DisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39451	c.project = project
39452	c.zone = zone
39453	c.resource = resource
39454	return c
39455}
39456
39457// Fields allows partial responses to be retrieved. See
39458// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39459// for more information.
39460func (c *DisksGetIamPolicyCall) Fields(s ...googleapi.Field) *DisksGetIamPolicyCall {
39461	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39462	return c
39463}
39464
39465// IfNoneMatch sets the optional parameter which makes the operation
39466// fail if the object's ETag matches the given value. This is useful for
39467// getting updates only after the object has changed since the last
39468// request. Use googleapi.IsNotModified to check whether the response
39469// error from Do is the result of In-None-Match.
39470func (c *DisksGetIamPolicyCall) IfNoneMatch(entityTag string) *DisksGetIamPolicyCall {
39471	c.ifNoneMatch_ = entityTag
39472	return c
39473}
39474
39475// Context sets the context to be used in this call's Do method. Any
39476// pending HTTP request will be aborted if the provided context is
39477// canceled.
39478func (c *DisksGetIamPolicyCall) Context(ctx context.Context) *DisksGetIamPolicyCall {
39479	c.ctx_ = ctx
39480	return c
39481}
39482
39483// Header returns an http.Header that can be modified by the caller to
39484// add HTTP headers to the request.
39485func (c *DisksGetIamPolicyCall) Header() http.Header {
39486	if c.header_ == nil {
39487		c.header_ = make(http.Header)
39488	}
39489	return c.header_
39490}
39491
39492func (c *DisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
39493	reqHeaders := make(http.Header)
39494	for k, v := range c.header_ {
39495		reqHeaders[k] = v
39496	}
39497	reqHeaders.Set("User-Agent", c.s.userAgent())
39498	if c.ifNoneMatch_ != "" {
39499		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
39500	}
39501	var body io.Reader = nil
39502	c.urlParams_.Set("alt", alt)
39503	c.urlParams_.Set("prettyPrint", "false")
39504	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/getIamPolicy")
39505	urls += "?" + c.urlParams_.Encode()
39506	req, err := http.NewRequest("GET", urls, body)
39507	if err != nil {
39508		return nil, err
39509	}
39510	req.Header = reqHeaders
39511	googleapi.Expand(req.URL, map[string]string{
39512		"project":  c.project,
39513		"zone":     c.zone,
39514		"resource": c.resource,
39515	})
39516	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39517}
39518
39519// Do executes the "compute.disks.getIamPolicy" call.
39520// Exactly one of *Policy or error will be non-nil. Any non-2xx status
39521// code is an error. Response headers are in either
39522// *Policy.ServerResponse.Header or (if a response was returned at all)
39523// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
39524// check whether the returned error was because http.StatusNotModified
39525// was returned.
39526func (c *DisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
39527	gensupport.SetOptions(c.urlParams_, opts...)
39528	res, err := c.doRequest("json")
39529	if res != nil && res.StatusCode == http.StatusNotModified {
39530		if res.Body != nil {
39531			res.Body.Close()
39532		}
39533		return nil, &googleapi.Error{
39534			Code:   res.StatusCode,
39535			Header: res.Header,
39536		}
39537	}
39538	if err != nil {
39539		return nil, err
39540	}
39541	defer googleapi.CloseBody(res)
39542	if err := googleapi.CheckResponse(res); err != nil {
39543		return nil, err
39544	}
39545	ret := &Policy{
39546		ServerResponse: googleapi.ServerResponse{
39547			Header:         res.Header,
39548			HTTPStatusCode: res.StatusCode,
39549		},
39550	}
39551	target := &ret
39552	if err := gensupport.DecodeResponse(target, res); err != nil {
39553		return nil, err
39554	}
39555	return ret, nil
39556	// {
39557	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
39558	//   "httpMethod": "GET",
39559	//   "id": "compute.disks.getIamPolicy",
39560	//   "parameterOrder": [
39561	//     "project",
39562	//     "zone",
39563	//     "resource"
39564	//   ],
39565	//   "parameters": {
39566	//     "project": {
39567	//       "description": "Project ID for this request.",
39568	//       "location": "path",
39569	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
39570	//       "required": true,
39571	//       "type": "string"
39572	//     },
39573	//     "resource": {
39574	//       "description": "Name or id of the resource for this request.",
39575	//       "location": "path",
39576	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
39577	//       "required": true,
39578	//       "type": "string"
39579	//     },
39580	//     "zone": {
39581	//       "description": "The name of the zone for this request.",
39582	//       "location": "path",
39583	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
39584	//       "required": true,
39585	//       "type": "string"
39586	//     }
39587	//   },
39588	//   "path": "{project}/zones/{zone}/disks/{resource}/getIamPolicy",
39589	//   "response": {
39590	//     "$ref": "Policy"
39591	//   },
39592	//   "scopes": [
39593	//     "https://www.googleapis.com/auth/cloud-platform",
39594	//     "https://www.googleapis.com/auth/compute",
39595	//     "https://www.googleapis.com/auth/compute.readonly"
39596	//   ]
39597	// }
39598
39599}
39600
39601// method id "compute.disks.insert":
39602
39603type DisksInsertCall struct {
39604	s          *Service
39605	project    string
39606	zone       string
39607	disk       *Disk
39608	urlParams_ gensupport.URLParams
39609	ctx_       context.Context
39610	header_    http.Header
39611}
39612
39613// Insert: Creates a persistent disk in the specified project using the
39614// data in the request. You can create a disk with a sourceImage, a
39615// sourceSnapshot, or create an empty 500 GB data disk by omitting all
39616// properties. You can also create a disk that is larger than the
39617// default size by specifying the sizeGb property.
39618// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/insert
39619func (r *DisksService) Insert(project string, zone string, disk *Disk) *DisksInsertCall {
39620	c := &DisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39621	c.project = project
39622	c.zone = zone
39623	c.disk = disk
39624	return c
39625}
39626
39627// RequestId sets the optional parameter "requestId": An optional
39628// request ID to identify requests. Specify a unique request ID so that
39629// if you must retry your request, the server will know to ignore the
39630// request if it has already been completed.
39631//
39632// For example, consider a situation where you make an initial request
39633// and the request times out. If you make the request again with the
39634// same request ID, the server can check if original operation with the
39635// same request ID was received, and if so, will ignore the second
39636// request. This prevents clients from accidentally creating duplicate
39637// commitments.
39638//
39639// The request ID must be a valid UUID with the exception that zero UUID
39640// is not supported (00000000-0000-0000-0000-000000000000).
39641func (c *DisksInsertCall) RequestId(requestId string) *DisksInsertCall {
39642	c.urlParams_.Set("requestId", requestId)
39643	return c
39644}
39645
39646// SourceImage sets the optional parameter "sourceImage": Source image
39647// to restore onto a disk.
39648func (c *DisksInsertCall) SourceImage(sourceImage string) *DisksInsertCall {
39649	c.urlParams_.Set("sourceImage", sourceImage)
39650	return c
39651}
39652
39653// Fields allows partial responses to be retrieved. See
39654// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39655// for more information.
39656func (c *DisksInsertCall) Fields(s ...googleapi.Field) *DisksInsertCall {
39657	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39658	return c
39659}
39660
39661// Context sets the context to be used in this call's Do method. Any
39662// pending HTTP request will be aborted if the provided context is
39663// canceled.
39664func (c *DisksInsertCall) Context(ctx context.Context) *DisksInsertCall {
39665	c.ctx_ = ctx
39666	return c
39667}
39668
39669// Header returns an http.Header that can be modified by the caller to
39670// add HTTP headers to the request.
39671func (c *DisksInsertCall) Header() http.Header {
39672	if c.header_ == nil {
39673		c.header_ = make(http.Header)
39674	}
39675	return c.header_
39676}
39677
39678func (c *DisksInsertCall) doRequest(alt string) (*http.Response, error) {
39679	reqHeaders := make(http.Header)
39680	for k, v := range c.header_ {
39681		reqHeaders[k] = v
39682	}
39683	reqHeaders.Set("User-Agent", c.s.userAgent())
39684	var body io.Reader = nil
39685	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
39686	if err != nil {
39687		return nil, err
39688	}
39689	reqHeaders.Set("Content-Type", "application/json")
39690	c.urlParams_.Set("alt", alt)
39691	c.urlParams_.Set("prettyPrint", "false")
39692	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks")
39693	urls += "?" + c.urlParams_.Encode()
39694	req, err := http.NewRequest("POST", urls, body)
39695	if err != nil {
39696		return nil, err
39697	}
39698	req.Header = reqHeaders
39699	googleapi.Expand(req.URL, map[string]string{
39700		"project": c.project,
39701		"zone":    c.zone,
39702	})
39703	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39704}
39705
39706// Do executes the "compute.disks.insert" call.
39707// Exactly one of *Operation or error will be non-nil. Any non-2xx
39708// status code is an error. Response headers are in either
39709// *Operation.ServerResponse.Header or (if a response was returned at
39710// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
39711// to check whether the returned error was because
39712// http.StatusNotModified was returned.
39713func (c *DisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
39714	gensupport.SetOptions(c.urlParams_, opts...)
39715	res, err := c.doRequest("json")
39716	if res != nil && res.StatusCode == http.StatusNotModified {
39717		if res.Body != nil {
39718			res.Body.Close()
39719		}
39720		return nil, &googleapi.Error{
39721			Code:   res.StatusCode,
39722			Header: res.Header,
39723		}
39724	}
39725	if err != nil {
39726		return nil, err
39727	}
39728	defer googleapi.CloseBody(res)
39729	if err := googleapi.CheckResponse(res); err != nil {
39730		return nil, err
39731	}
39732	ret := &Operation{
39733		ServerResponse: googleapi.ServerResponse{
39734			Header:         res.Header,
39735			HTTPStatusCode: res.StatusCode,
39736		},
39737	}
39738	target := &ret
39739	if err := gensupport.DecodeResponse(target, res); err != nil {
39740		return nil, err
39741	}
39742	return ret, nil
39743	// {
39744	//   "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.",
39745	//   "httpMethod": "POST",
39746	//   "id": "compute.disks.insert",
39747	//   "parameterOrder": [
39748	//     "project",
39749	//     "zone"
39750	//   ],
39751	//   "parameters": {
39752	//     "project": {
39753	//       "description": "Project ID for this request.",
39754	//       "location": "path",
39755	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
39756	//       "required": true,
39757	//       "type": "string"
39758	//     },
39759	//     "requestId": {
39760	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
39761	//       "location": "query",
39762	//       "type": "string"
39763	//     },
39764	//     "sourceImage": {
39765	//       "description": "Optional. Source image to restore onto a disk.",
39766	//       "location": "query",
39767	//       "type": "string"
39768	//     },
39769	//     "zone": {
39770	//       "description": "The name of the zone for this request.",
39771	//       "location": "path",
39772	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
39773	//       "required": true,
39774	//       "type": "string"
39775	//     }
39776	//   },
39777	//   "path": "{project}/zones/{zone}/disks",
39778	//   "request": {
39779	//     "$ref": "Disk"
39780	//   },
39781	//   "response": {
39782	//     "$ref": "Operation"
39783	//   },
39784	//   "scopes": [
39785	//     "https://www.googleapis.com/auth/cloud-platform",
39786	//     "https://www.googleapis.com/auth/compute"
39787	//   ]
39788	// }
39789
39790}
39791
39792// method id "compute.disks.list":
39793
39794type DisksListCall struct {
39795	s            *Service
39796	project      string
39797	zone         string
39798	urlParams_   gensupport.URLParams
39799	ifNoneMatch_ string
39800	ctx_         context.Context
39801	header_      http.Header
39802}
39803
39804// List: Retrieves a list of persistent disks contained within the
39805// specified zone.
39806// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/list
39807func (r *DisksService) List(project string, zone string) *DisksListCall {
39808	c := &DisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39809	c.project = project
39810	c.zone = zone
39811	return c
39812}
39813
39814// Filter sets the optional parameter "filter": A filter expression that
39815// filters resources listed in the response. The expression must specify
39816// the field name, a comparison operator, and the value that you want to
39817// use for filtering. The value must be a string, a number, or a
39818// boolean. The comparison operator must be either =, !=, >, or <.
39819//
39820// For example, if you are filtering Compute Engine instances, you can
39821// exclude instances named example-instance by specifying name !=
39822// example-instance.
39823//
39824// You can also filter nested fields. For example, you could specify
39825// scheduling.automaticRestart = false to include instances only if they
39826// are not scheduled for automatic restarts. You can use filtering on
39827// nested fields to filter based on resource labels.
39828//
39829// To filter on multiple expressions, provide each separate expression
39830// within parentheses. For example, (scheduling.automaticRestart = true)
39831// (cpuPlatform = "Intel Skylake"). By default, each expression is an
39832// AND expression. However, you can include AND and OR expressions
39833// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
39834// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
39835// true).
39836func (c *DisksListCall) Filter(filter string) *DisksListCall {
39837	c.urlParams_.Set("filter", filter)
39838	return c
39839}
39840
39841// MaxResults sets the optional parameter "maxResults": The maximum
39842// number of results per page that should be returned. If the number of
39843// available results is larger than maxResults, Compute Engine returns a
39844// nextPageToken that can be used to get the next page of results in
39845// subsequent list requests. Acceptable values are 0 to 500, inclusive.
39846// (Default: 500)
39847func (c *DisksListCall) MaxResults(maxResults int64) *DisksListCall {
39848	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
39849	return c
39850}
39851
39852// OrderBy sets the optional parameter "orderBy": Sorts list results by
39853// a certain order. By default, results are returned in alphanumerical
39854// order based on the resource name.
39855//
39856// You can also sort results in descending order based on the creation
39857// timestamp using orderBy="creationTimestamp desc". This sorts results
39858// based on the creationTimestamp field in reverse chronological order
39859// (newest result first). Use this to sort resources like operations so
39860// that the newest operation is returned first.
39861//
39862// Currently, only sorting by name or creationTimestamp desc is
39863// supported.
39864func (c *DisksListCall) OrderBy(orderBy string) *DisksListCall {
39865	c.urlParams_.Set("orderBy", orderBy)
39866	return c
39867}
39868
39869// PageToken sets the optional parameter "pageToken": Specifies a page
39870// token to use. Set pageToken to the nextPageToken returned by a
39871// previous list request to get the next page of results.
39872func (c *DisksListCall) PageToken(pageToken string) *DisksListCall {
39873	c.urlParams_.Set("pageToken", pageToken)
39874	return c
39875}
39876
39877// Fields allows partial responses to be retrieved. See
39878// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39879// for more information.
39880func (c *DisksListCall) Fields(s ...googleapi.Field) *DisksListCall {
39881	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39882	return c
39883}
39884
39885// IfNoneMatch sets the optional parameter which makes the operation
39886// fail if the object's ETag matches the given value. This is useful for
39887// getting updates only after the object has changed since the last
39888// request. Use googleapi.IsNotModified to check whether the response
39889// error from Do is the result of In-None-Match.
39890func (c *DisksListCall) IfNoneMatch(entityTag string) *DisksListCall {
39891	c.ifNoneMatch_ = entityTag
39892	return c
39893}
39894
39895// Context sets the context to be used in this call's Do method. Any
39896// pending HTTP request will be aborted if the provided context is
39897// canceled.
39898func (c *DisksListCall) Context(ctx context.Context) *DisksListCall {
39899	c.ctx_ = ctx
39900	return c
39901}
39902
39903// Header returns an http.Header that can be modified by the caller to
39904// add HTTP headers to the request.
39905func (c *DisksListCall) Header() http.Header {
39906	if c.header_ == nil {
39907		c.header_ = make(http.Header)
39908	}
39909	return c.header_
39910}
39911
39912func (c *DisksListCall) doRequest(alt string) (*http.Response, error) {
39913	reqHeaders := make(http.Header)
39914	for k, v := range c.header_ {
39915		reqHeaders[k] = v
39916	}
39917	reqHeaders.Set("User-Agent", c.s.userAgent())
39918	if c.ifNoneMatch_ != "" {
39919		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
39920	}
39921	var body io.Reader = nil
39922	c.urlParams_.Set("alt", alt)
39923	c.urlParams_.Set("prettyPrint", "false")
39924	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks")
39925	urls += "?" + c.urlParams_.Encode()
39926	req, err := http.NewRequest("GET", urls, body)
39927	if err != nil {
39928		return nil, err
39929	}
39930	req.Header = reqHeaders
39931	googleapi.Expand(req.URL, map[string]string{
39932		"project": c.project,
39933		"zone":    c.zone,
39934	})
39935	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39936}
39937
39938// Do executes the "compute.disks.list" call.
39939// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
39940// code is an error. Response headers are in either
39941// *DiskList.ServerResponse.Header or (if a response was returned at
39942// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
39943// to check whether the returned error was because
39944// http.StatusNotModified was returned.
39945func (c *DisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
39946	gensupport.SetOptions(c.urlParams_, opts...)
39947	res, err := c.doRequest("json")
39948	if res != nil && res.StatusCode == http.StatusNotModified {
39949		if res.Body != nil {
39950			res.Body.Close()
39951		}
39952		return nil, &googleapi.Error{
39953			Code:   res.StatusCode,
39954			Header: res.Header,
39955		}
39956	}
39957	if err != nil {
39958		return nil, err
39959	}
39960	defer googleapi.CloseBody(res)
39961	if err := googleapi.CheckResponse(res); err != nil {
39962		return nil, err
39963	}
39964	ret := &DiskList{
39965		ServerResponse: googleapi.ServerResponse{
39966			Header:         res.Header,
39967			HTTPStatusCode: res.StatusCode,
39968		},
39969	}
39970	target := &ret
39971	if err := gensupport.DecodeResponse(target, res); err != nil {
39972		return nil, err
39973	}
39974	return ret, nil
39975	// {
39976	//   "description": "Retrieves a list of persistent disks contained within the specified zone.",
39977	//   "httpMethod": "GET",
39978	//   "id": "compute.disks.list",
39979	//   "parameterOrder": [
39980	//     "project",
39981	//     "zone"
39982	//   ],
39983	//   "parameters": {
39984	//     "filter": {
39985	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
39986	//       "location": "query",
39987	//       "type": "string"
39988	//     },
39989	//     "maxResults": {
39990	//       "default": "500",
39991	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
39992	//       "format": "uint32",
39993	//       "location": "query",
39994	//       "minimum": "0",
39995	//       "type": "integer"
39996	//     },
39997	//     "orderBy": {
39998	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
39999	//       "location": "query",
40000	//       "type": "string"
40001	//     },
40002	//     "pageToken": {
40003	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
40004	//       "location": "query",
40005	//       "type": "string"
40006	//     },
40007	//     "project": {
40008	//       "description": "Project ID for this request.",
40009	//       "location": "path",
40010	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
40011	//       "required": true,
40012	//       "type": "string"
40013	//     },
40014	//     "zone": {
40015	//       "description": "The name of the zone for this request.",
40016	//       "location": "path",
40017	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
40018	//       "required": true,
40019	//       "type": "string"
40020	//     }
40021	//   },
40022	//   "path": "{project}/zones/{zone}/disks",
40023	//   "response": {
40024	//     "$ref": "DiskList"
40025	//   },
40026	//   "scopes": [
40027	//     "https://www.googleapis.com/auth/cloud-platform",
40028	//     "https://www.googleapis.com/auth/compute",
40029	//     "https://www.googleapis.com/auth/compute.readonly"
40030	//   ]
40031	// }
40032
40033}
40034
40035// Pages invokes f for each page of results.
40036// A non-nil error returned from f will halt the iteration.
40037// The provided context supersedes any context provided to the Context method.
40038func (c *DisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
40039	c.ctx_ = ctx
40040	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
40041	for {
40042		x, err := c.Do()
40043		if err != nil {
40044			return err
40045		}
40046		if err := f(x); err != nil {
40047			return err
40048		}
40049		if x.NextPageToken == "" {
40050			return nil
40051		}
40052		c.PageToken(x.NextPageToken)
40053	}
40054}
40055
40056// method id "compute.disks.resize":
40057
40058type DisksResizeCall struct {
40059	s                  *Service
40060	project            string
40061	zone               string
40062	disk               string
40063	disksresizerequest *DisksResizeRequest
40064	urlParams_         gensupport.URLParams
40065	ctx_               context.Context
40066	header_            http.Header
40067}
40068
40069// Resize: Resizes the specified persistent disk. You can only increase
40070// the size of the disk.
40071func (r *DisksService) Resize(project string, zone string, disk string, disksresizerequest *DisksResizeRequest) *DisksResizeCall {
40072	c := &DisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40073	c.project = project
40074	c.zone = zone
40075	c.disk = disk
40076	c.disksresizerequest = disksresizerequest
40077	return c
40078}
40079
40080// RequestId sets the optional parameter "requestId": An optional
40081// request ID to identify requests. Specify a unique request ID so that
40082// if you must retry your request, the server will know to ignore the
40083// request if it has already been completed.
40084//
40085// For example, consider a situation where you make an initial request
40086// and the request times out. If you make the request again with the
40087// same request ID, the server can check if original operation with the
40088// same request ID was received, and if so, will ignore the second
40089// request. This prevents clients from accidentally creating duplicate
40090// commitments.
40091//
40092// The request ID must be a valid UUID with the exception that zero UUID
40093// is not supported (00000000-0000-0000-0000-000000000000).
40094func (c *DisksResizeCall) RequestId(requestId string) *DisksResizeCall {
40095	c.urlParams_.Set("requestId", requestId)
40096	return c
40097}
40098
40099// Fields allows partial responses to be retrieved. See
40100// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40101// for more information.
40102func (c *DisksResizeCall) Fields(s ...googleapi.Field) *DisksResizeCall {
40103	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40104	return c
40105}
40106
40107// Context sets the context to be used in this call's Do method. Any
40108// pending HTTP request will be aborted if the provided context is
40109// canceled.
40110func (c *DisksResizeCall) Context(ctx context.Context) *DisksResizeCall {
40111	c.ctx_ = ctx
40112	return c
40113}
40114
40115// Header returns an http.Header that can be modified by the caller to
40116// add HTTP headers to the request.
40117func (c *DisksResizeCall) Header() http.Header {
40118	if c.header_ == nil {
40119		c.header_ = make(http.Header)
40120	}
40121	return c.header_
40122}
40123
40124func (c *DisksResizeCall) doRequest(alt string) (*http.Response, error) {
40125	reqHeaders := make(http.Header)
40126	for k, v := range c.header_ {
40127		reqHeaders[k] = v
40128	}
40129	reqHeaders.Set("User-Agent", c.s.userAgent())
40130	var body io.Reader = nil
40131	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksresizerequest)
40132	if err != nil {
40133		return nil, err
40134	}
40135	reqHeaders.Set("Content-Type", "application/json")
40136	c.urlParams_.Set("alt", alt)
40137	c.urlParams_.Set("prettyPrint", "false")
40138	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/resize")
40139	urls += "?" + c.urlParams_.Encode()
40140	req, err := http.NewRequest("POST", urls, body)
40141	if err != nil {
40142		return nil, err
40143	}
40144	req.Header = reqHeaders
40145	googleapi.Expand(req.URL, map[string]string{
40146		"project": c.project,
40147		"zone":    c.zone,
40148		"disk":    c.disk,
40149	})
40150	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40151}
40152
40153// Do executes the "compute.disks.resize" call.
40154// Exactly one of *Operation or error will be non-nil. Any non-2xx
40155// status code is an error. Response headers are in either
40156// *Operation.ServerResponse.Header or (if a response was returned at
40157// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
40158// to check whether the returned error was because
40159// http.StatusNotModified was returned.
40160func (c *DisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
40161	gensupport.SetOptions(c.urlParams_, opts...)
40162	res, err := c.doRequest("json")
40163	if res != nil && res.StatusCode == http.StatusNotModified {
40164		if res.Body != nil {
40165			res.Body.Close()
40166		}
40167		return nil, &googleapi.Error{
40168			Code:   res.StatusCode,
40169			Header: res.Header,
40170		}
40171	}
40172	if err != nil {
40173		return nil, err
40174	}
40175	defer googleapi.CloseBody(res)
40176	if err := googleapi.CheckResponse(res); err != nil {
40177		return nil, err
40178	}
40179	ret := &Operation{
40180		ServerResponse: googleapi.ServerResponse{
40181			Header:         res.Header,
40182			HTTPStatusCode: res.StatusCode,
40183		},
40184	}
40185	target := &ret
40186	if err := gensupport.DecodeResponse(target, res); err != nil {
40187		return nil, err
40188	}
40189	return ret, nil
40190	// {
40191	//   "description": "Resizes the specified persistent disk. You can only increase the size of the disk.",
40192	//   "httpMethod": "POST",
40193	//   "id": "compute.disks.resize",
40194	//   "parameterOrder": [
40195	//     "project",
40196	//     "zone",
40197	//     "disk"
40198	//   ],
40199	//   "parameters": {
40200	//     "disk": {
40201	//       "description": "The name of the persistent disk.",
40202	//       "location": "path",
40203	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
40204	//       "required": true,
40205	//       "type": "string"
40206	//     },
40207	//     "project": {
40208	//       "description": "Project ID for this request.",
40209	//       "location": "path",
40210	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
40211	//       "required": true,
40212	//       "type": "string"
40213	//     },
40214	//     "requestId": {
40215	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
40216	//       "location": "query",
40217	//       "type": "string"
40218	//     },
40219	//     "zone": {
40220	//       "description": "The name of the zone for this request.",
40221	//       "location": "path",
40222	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
40223	//       "required": true,
40224	//       "type": "string"
40225	//     }
40226	//   },
40227	//   "path": "{project}/zones/{zone}/disks/{disk}/resize",
40228	//   "request": {
40229	//     "$ref": "DisksResizeRequest"
40230	//   },
40231	//   "response": {
40232	//     "$ref": "Operation"
40233	//   },
40234	//   "scopes": [
40235	//     "https://www.googleapis.com/auth/cloud-platform",
40236	//     "https://www.googleapis.com/auth/compute"
40237	//   ]
40238	// }
40239
40240}
40241
40242// method id "compute.disks.setIamPolicy":
40243
40244type DisksSetIamPolicyCall struct {
40245	s                    *Service
40246	project              string
40247	zone                 string
40248	resource             string
40249	zonesetpolicyrequest *ZoneSetPolicyRequest
40250	urlParams_           gensupport.URLParams
40251	ctx_                 context.Context
40252	header_              http.Header
40253}
40254
40255// SetIamPolicy: Sets the access control policy on the specified
40256// resource. Replaces any existing policy.
40257func (r *DisksService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *DisksSetIamPolicyCall {
40258	c := &DisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40259	c.project = project
40260	c.zone = zone
40261	c.resource = resource
40262	c.zonesetpolicyrequest = zonesetpolicyrequest
40263	return c
40264}
40265
40266// Fields allows partial responses to be retrieved. See
40267// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40268// for more information.
40269func (c *DisksSetIamPolicyCall) Fields(s ...googleapi.Field) *DisksSetIamPolicyCall {
40270	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40271	return c
40272}
40273
40274// Context sets the context to be used in this call's Do method. Any
40275// pending HTTP request will be aborted if the provided context is
40276// canceled.
40277func (c *DisksSetIamPolicyCall) Context(ctx context.Context) *DisksSetIamPolicyCall {
40278	c.ctx_ = ctx
40279	return c
40280}
40281
40282// Header returns an http.Header that can be modified by the caller to
40283// add HTTP headers to the request.
40284func (c *DisksSetIamPolicyCall) Header() http.Header {
40285	if c.header_ == nil {
40286		c.header_ = make(http.Header)
40287	}
40288	return c.header_
40289}
40290
40291func (c *DisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
40292	reqHeaders := make(http.Header)
40293	for k, v := range c.header_ {
40294		reqHeaders[k] = v
40295	}
40296	reqHeaders.Set("User-Agent", c.s.userAgent())
40297	var body io.Reader = nil
40298	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
40299	if err != nil {
40300		return nil, err
40301	}
40302	reqHeaders.Set("Content-Type", "application/json")
40303	c.urlParams_.Set("alt", alt)
40304	c.urlParams_.Set("prettyPrint", "false")
40305	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/setIamPolicy")
40306	urls += "?" + c.urlParams_.Encode()
40307	req, err := http.NewRequest("POST", urls, body)
40308	if err != nil {
40309		return nil, err
40310	}
40311	req.Header = reqHeaders
40312	googleapi.Expand(req.URL, map[string]string{
40313		"project":  c.project,
40314		"zone":     c.zone,
40315		"resource": c.resource,
40316	})
40317	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40318}
40319
40320// Do executes the "compute.disks.setIamPolicy" call.
40321// Exactly one of *Policy or error will be non-nil. Any non-2xx status
40322// code is an error. Response headers are in either
40323// *Policy.ServerResponse.Header or (if a response was returned at all)
40324// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
40325// check whether the returned error was because http.StatusNotModified
40326// was returned.
40327func (c *DisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
40328	gensupport.SetOptions(c.urlParams_, opts...)
40329	res, err := c.doRequest("json")
40330	if res != nil && res.StatusCode == http.StatusNotModified {
40331		if res.Body != nil {
40332			res.Body.Close()
40333		}
40334		return nil, &googleapi.Error{
40335			Code:   res.StatusCode,
40336			Header: res.Header,
40337		}
40338	}
40339	if err != nil {
40340		return nil, err
40341	}
40342	defer googleapi.CloseBody(res)
40343	if err := googleapi.CheckResponse(res); err != nil {
40344		return nil, err
40345	}
40346	ret := &Policy{
40347		ServerResponse: googleapi.ServerResponse{
40348			Header:         res.Header,
40349			HTTPStatusCode: res.StatusCode,
40350		},
40351	}
40352	target := &ret
40353	if err := gensupport.DecodeResponse(target, res); err != nil {
40354		return nil, err
40355	}
40356	return ret, nil
40357	// {
40358	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
40359	//   "httpMethod": "POST",
40360	//   "id": "compute.disks.setIamPolicy",
40361	//   "parameterOrder": [
40362	//     "project",
40363	//     "zone",
40364	//     "resource"
40365	//   ],
40366	//   "parameters": {
40367	//     "project": {
40368	//       "description": "Project ID for this request.",
40369	//       "location": "path",
40370	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
40371	//       "required": true,
40372	//       "type": "string"
40373	//     },
40374	//     "resource": {
40375	//       "description": "Name or id of the resource for this request.",
40376	//       "location": "path",
40377	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
40378	//       "required": true,
40379	//       "type": "string"
40380	//     },
40381	//     "zone": {
40382	//       "description": "The name of the zone for this request.",
40383	//       "location": "path",
40384	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
40385	//       "required": true,
40386	//       "type": "string"
40387	//     }
40388	//   },
40389	//   "path": "{project}/zones/{zone}/disks/{resource}/setIamPolicy",
40390	//   "request": {
40391	//     "$ref": "ZoneSetPolicyRequest"
40392	//   },
40393	//   "response": {
40394	//     "$ref": "Policy"
40395	//   },
40396	//   "scopes": [
40397	//     "https://www.googleapis.com/auth/cloud-platform",
40398	//     "https://www.googleapis.com/auth/compute"
40399	//   ]
40400	// }
40401
40402}
40403
40404// method id "compute.disks.setLabels":
40405
40406type DisksSetLabelsCall struct {
40407	s                    *Service
40408	project              string
40409	zone                 string
40410	resource             string
40411	zonesetlabelsrequest *ZoneSetLabelsRequest
40412	urlParams_           gensupport.URLParams
40413	ctx_                 context.Context
40414	header_              http.Header
40415}
40416
40417// SetLabels: Sets the labels on a disk. To learn more about labels,
40418// read the Labeling Resources documentation.
40419func (r *DisksService) SetLabels(project string, zone string, resource string, zonesetlabelsrequest *ZoneSetLabelsRequest) *DisksSetLabelsCall {
40420	c := &DisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40421	c.project = project
40422	c.zone = zone
40423	c.resource = resource
40424	c.zonesetlabelsrequest = zonesetlabelsrequest
40425	return c
40426}
40427
40428// RequestId sets the optional parameter "requestId": An optional
40429// request ID to identify requests. Specify a unique request ID so that
40430// if you must retry your request, the server will know to ignore the
40431// request if it has already been completed.
40432//
40433// For example, consider a situation where you make an initial request
40434// and the request times out. If you make the request again with the
40435// same request ID, the server can check if original operation with the
40436// same request ID was received, and if so, will ignore the second
40437// request. This prevents clients from accidentally creating duplicate
40438// commitments.
40439//
40440// The request ID must be a valid UUID with the exception that zero UUID
40441// is not supported (00000000-0000-0000-0000-000000000000).
40442func (c *DisksSetLabelsCall) RequestId(requestId string) *DisksSetLabelsCall {
40443	c.urlParams_.Set("requestId", requestId)
40444	return c
40445}
40446
40447// Fields allows partial responses to be retrieved. See
40448// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40449// for more information.
40450func (c *DisksSetLabelsCall) Fields(s ...googleapi.Field) *DisksSetLabelsCall {
40451	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40452	return c
40453}
40454
40455// Context sets the context to be used in this call's Do method. Any
40456// pending HTTP request will be aborted if the provided context is
40457// canceled.
40458func (c *DisksSetLabelsCall) Context(ctx context.Context) *DisksSetLabelsCall {
40459	c.ctx_ = ctx
40460	return c
40461}
40462
40463// Header returns an http.Header that can be modified by the caller to
40464// add HTTP headers to the request.
40465func (c *DisksSetLabelsCall) Header() http.Header {
40466	if c.header_ == nil {
40467		c.header_ = make(http.Header)
40468	}
40469	return c.header_
40470}
40471
40472func (c *DisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
40473	reqHeaders := make(http.Header)
40474	for k, v := range c.header_ {
40475		reqHeaders[k] = v
40476	}
40477	reqHeaders.Set("User-Agent", c.s.userAgent())
40478	var body io.Reader = nil
40479	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetlabelsrequest)
40480	if err != nil {
40481		return nil, err
40482	}
40483	reqHeaders.Set("Content-Type", "application/json")
40484	c.urlParams_.Set("alt", alt)
40485	c.urlParams_.Set("prettyPrint", "false")
40486	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/setLabels")
40487	urls += "?" + c.urlParams_.Encode()
40488	req, err := http.NewRequest("POST", urls, body)
40489	if err != nil {
40490		return nil, err
40491	}
40492	req.Header = reqHeaders
40493	googleapi.Expand(req.URL, map[string]string{
40494		"project":  c.project,
40495		"zone":     c.zone,
40496		"resource": c.resource,
40497	})
40498	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40499}
40500
40501// Do executes the "compute.disks.setLabels" call.
40502// Exactly one of *Operation or error will be non-nil. Any non-2xx
40503// status code is an error. Response headers are in either
40504// *Operation.ServerResponse.Header or (if a response was returned at
40505// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
40506// to check whether the returned error was because
40507// http.StatusNotModified was returned.
40508func (c *DisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
40509	gensupport.SetOptions(c.urlParams_, opts...)
40510	res, err := c.doRequest("json")
40511	if res != nil && res.StatusCode == http.StatusNotModified {
40512		if res.Body != nil {
40513			res.Body.Close()
40514		}
40515		return nil, &googleapi.Error{
40516			Code:   res.StatusCode,
40517			Header: res.Header,
40518		}
40519	}
40520	if err != nil {
40521		return nil, err
40522	}
40523	defer googleapi.CloseBody(res)
40524	if err := googleapi.CheckResponse(res); err != nil {
40525		return nil, err
40526	}
40527	ret := &Operation{
40528		ServerResponse: googleapi.ServerResponse{
40529			Header:         res.Header,
40530			HTTPStatusCode: res.StatusCode,
40531		},
40532	}
40533	target := &ret
40534	if err := gensupport.DecodeResponse(target, res); err != nil {
40535		return nil, err
40536	}
40537	return ret, nil
40538	// {
40539	//   "description": "Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation.",
40540	//   "httpMethod": "POST",
40541	//   "id": "compute.disks.setLabels",
40542	//   "parameterOrder": [
40543	//     "project",
40544	//     "zone",
40545	//     "resource"
40546	//   ],
40547	//   "parameters": {
40548	//     "project": {
40549	//       "description": "Project ID for this request.",
40550	//       "location": "path",
40551	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
40552	//       "required": true,
40553	//       "type": "string"
40554	//     },
40555	//     "requestId": {
40556	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
40557	//       "location": "query",
40558	//       "type": "string"
40559	//     },
40560	//     "resource": {
40561	//       "description": "Name or id of the resource for this request.",
40562	//       "location": "path",
40563	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
40564	//       "required": true,
40565	//       "type": "string"
40566	//     },
40567	//     "zone": {
40568	//       "description": "The name of the zone for this request.",
40569	//       "location": "path",
40570	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
40571	//       "required": true,
40572	//       "type": "string"
40573	//     }
40574	//   },
40575	//   "path": "{project}/zones/{zone}/disks/{resource}/setLabels",
40576	//   "request": {
40577	//     "$ref": "ZoneSetLabelsRequest"
40578	//   },
40579	//   "response": {
40580	//     "$ref": "Operation"
40581	//   },
40582	//   "scopes": [
40583	//     "https://www.googleapis.com/auth/cloud-platform",
40584	//     "https://www.googleapis.com/auth/compute"
40585	//   ]
40586	// }
40587
40588}
40589
40590// method id "compute.disks.testIamPermissions":
40591
40592type DisksTestIamPermissionsCall struct {
40593	s                      *Service
40594	project                string
40595	zone                   string
40596	resource               string
40597	testpermissionsrequest *TestPermissionsRequest
40598	urlParams_             gensupport.URLParams
40599	ctx_                   context.Context
40600	header_                http.Header
40601}
40602
40603// TestIamPermissions: Returns permissions that a caller has on the
40604// specified resource.
40605func (r *DisksService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *DisksTestIamPermissionsCall {
40606	c := &DisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40607	c.project = project
40608	c.zone = zone
40609	c.resource = resource
40610	c.testpermissionsrequest = testpermissionsrequest
40611	return c
40612}
40613
40614// Fields allows partial responses to be retrieved. See
40615// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40616// for more information.
40617func (c *DisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *DisksTestIamPermissionsCall {
40618	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40619	return c
40620}
40621
40622// Context sets the context to be used in this call's Do method. Any
40623// pending HTTP request will be aborted if the provided context is
40624// canceled.
40625func (c *DisksTestIamPermissionsCall) Context(ctx context.Context) *DisksTestIamPermissionsCall {
40626	c.ctx_ = ctx
40627	return c
40628}
40629
40630// Header returns an http.Header that can be modified by the caller to
40631// add HTTP headers to the request.
40632func (c *DisksTestIamPermissionsCall) Header() http.Header {
40633	if c.header_ == nil {
40634		c.header_ = make(http.Header)
40635	}
40636	return c.header_
40637}
40638
40639func (c *DisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
40640	reqHeaders := make(http.Header)
40641	for k, v := range c.header_ {
40642		reqHeaders[k] = v
40643	}
40644	reqHeaders.Set("User-Agent", c.s.userAgent())
40645	var body io.Reader = nil
40646	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
40647	if err != nil {
40648		return nil, err
40649	}
40650	reqHeaders.Set("Content-Type", "application/json")
40651	c.urlParams_.Set("alt", alt)
40652	c.urlParams_.Set("prettyPrint", "false")
40653	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/testIamPermissions")
40654	urls += "?" + c.urlParams_.Encode()
40655	req, err := http.NewRequest("POST", urls, body)
40656	if err != nil {
40657		return nil, err
40658	}
40659	req.Header = reqHeaders
40660	googleapi.Expand(req.URL, map[string]string{
40661		"project":  c.project,
40662		"zone":     c.zone,
40663		"resource": c.resource,
40664	})
40665	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40666}
40667
40668// Do executes the "compute.disks.testIamPermissions" call.
40669// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
40670// non-2xx status code is an error. Response headers are in either
40671// *TestPermissionsResponse.ServerResponse.Header or (if a response was
40672// returned at all) in error.(*googleapi.Error).Header. Use
40673// googleapi.IsNotModified to check whether the returned error was
40674// because http.StatusNotModified was returned.
40675func (c *DisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
40676	gensupport.SetOptions(c.urlParams_, opts...)
40677	res, err := c.doRequest("json")
40678	if res != nil && res.StatusCode == http.StatusNotModified {
40679		if res.Body != nil {
40680			res.Body.Close()
40681		}
40682		return nil, &googleapi.Error{
40683			Code:   res.StatusCode,
40684			Header: res.Header,
40685		}
40686	}
40687	if err != nil {
40688		return nil, err
40689	}
40690	defer googleapi.CloseBody(res)
40691	if err := googleapi.CheckResponse(res); err != nil {
40692		return nil, err
40693	}
40694	ret := &TestPermissionsResponse{
40695		ServerResponse: googleapi.ServerResponse{
40696			Header:         res.Header,
40697			HTTPStatusCode: res.StatusCode,
40698		},
40699	}
40700	target := &ret
40701	if err := gensupport.DecodeResponse(target, res); err != nil {
40702		return nil, err
40703	}
40704	return ret, nil
40705	// {
40706	//   "description": "Returns permissions that a caller has on the specified resource.",
40707	//   "httpMethod": "POST",
40708	//   "id": "compute.disks.testIamPermissions",
40709	//   "parameterOrder": [
40710	//     "project",
40711	//     "zone",
40712	//     "resource"
40713	//   ],
40714	//   "parameters": {
40715	//     "project": {
40716	//       "description": "Project ID for this request.",
40717	//       "location": "path",
40718	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
40719	//       "required": true,
40720	//       "type": "string"
40721	//     },
40722	//     "resource": {
40723	//       "description": "Name or id of the resource for this request.",
40724	//       "location": "path",
40725	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
40726	//       "required": true,
40727	//       "type": "string"
40728	//     },
40729	//     "zone": {
40730	//       "description": "The name of the zone for this request.",
40731	//       "location": "path",
40732	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
40733	//       "required": true,
40734	//       "type": "string"
40735	//     }
40736	//   },
40737	//   "path": "{project}/zones/{zone}/disks/{resource}/testIamPermissions",
40738	//   "request": {
40739	//     "$ref": "TestPermissionsRequest"
40740	//   },
40741	//   "response": {
40742	//     "$ref": "TestPermissionsResponse"
40743	//   },
40744	//   "scopes": [
40745	//     "https://www.googleapis.com/auth/cloud-platform",
40746	//     "https://www.googleapis.com/auth/compute",
40747	//     "https://www.googleapis.com/auth/compute.readonly"
40748	//   ]
40749	// }
40750
40751}
40752
40753// method id "compute.firewalls.delete":
40754
40755type FirewallsDeleteCall struct {
40756	s          *Service
40757	project    string
40758	firewall   string
40759	urlParams_ gensupport.URLParams
40760	ctx_       context.Context
40761	header_    http.Header
40762}
40763
40764// Delete: Deletes the specified firewall.
40765// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/delete
40766func (r *FirewallsService) Delete(project string, firewall string) *FirewallsDeleteCall {
40767	c := &FirewallsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40768	c.project = project
40769	c.firewall = firewall
40770	return c
40771}
40772
40773// RequestId sets the optional parameter "requestId": An optional
40774// request ID to identify requests. Specify a unique request ID so that
40775// if you must retry your request, the server will know to ignore the
40776// request if it has already been completed.
40777//
40778// For example, consider a situation where you make an initial request
40779// and the request times out. If you make the request again with the
40780// same request ID, the server can check if original operation with the
40781// same request ID was received, and if so, will ignore the second
40782// request. This prevents clients from accidentally creating duplicate
40783// commitments.
40784//
40785// The request ID must be a valid UUID with the exception that zero UUID
40786// is not supported (00000000-0000-0000-0000-000000000000).
40787func (c *FirewallsDeleteCall) RequestId(requestId string) *FirewallsDeleteCall {
40788	c.urlParams_.Set("requestId", requestId)
40789	return c
40790}
40791
40792// Fields allows partial responses to be retrieved. See
40793// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40794// for more information.
40795func (c *FirewallsDeleteCall) Fields(s ...googleapi.Field) *FirewallsDeleteCall {
40796	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40797	return c
40798}
40799
40800// Context sets the context to be used in this call's Do method. Any
40801// pending HTTP request will be aborted if the provided context is
40802// canceled.
40803func (c *FirewallsDeleteCall) Context(ctx context.Context) *FirewallsDeleteCall {
40804	c.ctx_ = ctx
40805	return c
40806}
40807
40808// Header returns an http.Header that can be modified by the caller to
40809// add HTTP headers to the request.
40810func (c *FirewallsDeleteCall) Header() http.Header {
40811	if c.header_ == nil {
40812		c.header_ = make(http.Header)
40813	}
40814	return c.header_
40815}
40816
40817func (c *FirewallsDeleteCall) doRequest(alt string) (*http.Response, error) {
40818	reqHeaders := make(http.Header)
40819	for k, v := range c.header_ {
40820		reqHeaders[k] = v
40821	}
40822	reqHeaders.Set("User-Agent", c.s.userAgent())
40823	var body io.Reader = nil
40824	c.urlParams_.Set("alt", alt)
40825	c.urlParams_.Set("prettyPrint", "false")
40826	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
40827	urls += "?" + c.urlParams_.Encode()
40828	req, err := http.NewRequest("DELETE", urls, body)
40829	if err != nil {
40830		return nil, err
40831	}
40832	req.Header = reqHeaders
40833	googleapi.Expand(req.URL, map[string]string{
40834		"project":  c.project,
40835		"firewall": c.firewall,
40836	})
40837	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40838}
40839
40840// Do executes the "compute.firewalls.delete" call.
40841// Exactly one of *Operation or error will be non-nil. Any non-2xx
40842// status code is an error. Response headers are in either
40843// *Operation.ServerResponse.Header or (if a response was returned at
40844// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
40845// to check whether the returned error was because
40846// http.StatusNotModified was returned.
40847func (c *FirewallsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
40848	gensupport.SetOptions(c.urlParams_, opts...)
40849	res, err := c.doRequest("json")
40850	if res != nil && res.StatusCode == http.StatusNotModified {
40851		if res.Body != nil {
40852			res.Body.Close()
40853		}
40854		return nil, &googleapi.Error{
40855			Code:   res.StatusCode,
40856			Header: res.Header,
40857		}
40858	}
40859	if err != nil {
40860		return nil, err
40861	}
40862	defer googleapi.CloseBody(res)
40863	if err := googleapi.CheckResponse(res); err != nil {
40864		return nil, err
40865	}
40866	ret := &Operation{
40867		ServerResponse: googleapi.ServerResponse{
40868			Header:         res.Header,
40869			HTTPStatusCode: res.StatusCode,
40870		},
40871	}
40872	target := &ret
40873	if err := gensupport.DecodeResponse(target, res); err != nil {
40874		return nil, err
40875	}
40876	return ret, nil
40877	// {
40878	//   "description": "Deletes the specified firewall.",
40879	//   "httpMethod": "DELETE",
40880	//   "id": "compute.firewalls.delete",
40881	//   "parameterOrder": [
40882	//     "project",
40883	//     "firewall"
40884	//   ],
40885	//   "parameters": {
40886	//     "firewall": {
40887	//       "description": "Name of the firewall rule to delete.",
40888	//       "location": "path",
40889	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
40890	//       "required": true,
40891	//       "type": "string"
40892	//     },
40893	//     "project": {
40894	//       "description": "Project ID for this request.",
40895	//       "location": "path",
40896	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
40897	//       "required": true,
40898	//       "type": "string"
40899	//     },
40900	//     "requestId": {
40901	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
40902	//       "location": "query",
40903	//       "type": "string"
40904	//     }
40905	//   },
40906	//   "path": "{project}/global/firewalls/{firewall}",
40907	//   "response": {
40908	//     "$ref": "Operation"
40909	//   },
40910	//   "scopes": [
40911	//     "https://www.googleapis.com/auth/cloud-platform",
40912	//     "https://www.googleapis.com/auth/compute"
40913	//   ]
40914	// }
40915
40916}
40917
40918// method id "compute.firewalls.get":
40919
40920type FirewallsGetCall struct {
40921	s            *Service
40922	project      string
40923	firewall     string
40924	urlParams_   gensupport.URLParams
40925	ifNoneMatch_ string
40926	ctx_         context.Context
40927	header_      http.Header
40928}
40929
40930// Get: Returns the specified firewall.
40931// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/get
40932func (r *FirewallsService) Get(project string, firewall string) *FirewallsGetCall {
40933	c := &FirewallsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40934	c.project = project
40935	c.firewall = firewall
40936	return c
40937}
40938
40939// Fields allows partial responses to be retrieved. See
40940// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40941// for more information.
40942func (c *FirewallsGetCall) Fields(s ...googleapi.Field) *FirewallsGetCall {
40943	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40944	return c
40945}
40946
40947// IfNoneMatch sets the optional parameter which makes the operation
40948// fail if the object's ETag matches the given value. This is useful for
40949// getting updates only after the object has changed since the last
40950// request. Use googleapi.IsNotModified to check whether the response
40951// error from Do is the result of In-None-Match.
40952func (c *FirewallsGetCall) IfNoneMatch(entityTag string) *FirewallsGetCall {
40953	c.ifNoneMatch_ = entityTag
40954	return c
40955}
40956
40957// Context sets the context to be used in this call's Do method. Any
40958// pending HTTP request will be aborted if the provided context is
40959// canceled.
40960func (c *FirewallsGetCall) Context(ctx context.Context) *FirewallsGetCall {
40961	c.ctx_ = ctx
40962	return c
40963}
40964
40965// Header returns an http.Header that can be modified by the caller to
40966// add HTTP headers to the request.
40967func (c *FirewallsGetCall) Header() http.Header {
40968	if c.header_ == nil {
40969		c.header_ = make(http.Header)
40970	}
40971	return c.header_
40972}
40973
40974func (c *FirewallsGetCall) doRequest(alt string) (*http.Response, error) {
40975	reqHeaders := make(http.Header)
40976	for k, v := range c.header_ {
40977		reqHeaders[k] = v
40978	}
40979	reqHeaders.Set("User-Agent", c.s.userAgent())
40980	if c.ifNoneMatch_ != "" {
40981		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
40982	}
40983	var body io.Reader = nil
40984	c.urlParams_.Set("alt", alt)
40985	c.urlParams_.Set("prettyPrint", "false")
40986	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
40987	urls += "?" + c.urlParams_.Encode()
40988	req, err := http.NewRequest("GET", urls, body)
40989	if err != nil {
40990		return nil, err
40991	}
40992	req.Header = reqHeaders
40993	googleapi.Expand(req.URL, map[string]string{
40994		"project":  c.project,
40995		"firewall": c.firewall,
40996	})
40997	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40998}
40999
41000// Do executes the "compute.firewalls.get" call.
41001// Exactly one of *Firewall or error will be non-nil. Any non-2xx status
41002// code is an error. Response headers are in either
41003// *Firewall.ServerResponse.Header or (if a response was returned at
41004// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
41005// to check whether the returned error was because
41006// http.StatusNotModified was returned.
41007func (c *FirewallsGetCall) Do(opts ...googleapi.CallOption) (*Firewall, error) {
41008	gensupport.SetOptions(c.urlParams_, opts...)
41009	res, err := c.doRequest("json")
41010	if res != nil && res.StatusCode == http.StatusNotModified {
41011		if res.Body != nil {
41012			res.Body.Close()
41013		}
41014		return nil, &googleapi.Error{
41015			Code:   res.StatusCode,
41016			Header: res.Header,
41017		}
41018	}
41019	if err != nil {
41020		return nil, err
41021	}
41022	defer googleapi.CloseBody(res)
41023	if err := googleapi.CheckResponse(res); err != nil {
41024		return nil, err
41025	}
41026	ret := &Firewall{
41027		ServerResponse: googleapi.ServerResponse{
41028			Header:         res.Header,
41029			HTTPStatusCode: res.StatusCode,
41030		},
41031	}
41032	target := &ret
41033	if err := gensupport.DecodeResponse(target, res); err != nil {
41034		return nil, err
41035	}
41036	return ret, nil
41037	// {
41038	//   "description": "Returns the specified firewall.",
41039	//   "httpMethod": "GET",
41040	//   "id": "compute.firewalls.get",
41041	//   "parameterOrder": [
41042	//     "project",
41043	//     "firewall"
41044	//   ],
41045	//   "parameters": {
41046	//     "firewall": {
41047	//       "description": "Name of the firewall rule to return.",
41048	//       "location": "path",
41049	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
41050	//       "required": true,
41051	//       "type": "string"
41052	//     },
41053	//     "project": {
41054	//       "description": "Project ID for this request.",
41055	//       "location": "path",
41056	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
41057	//       "required": true,
41058	//       "type": "string"
41059	//     }
41060	//   },
41061	//   "path": "{project}/global/firewalls/{firewall}",
41062	//   "response": {
41063	//     "$ref": "Firewall"
41064	//   },
41065	//   "scopes": [
41066	//     "https://www.googleapis.com/auth/cloud-platform",
41067	//     "https://www.googleapis.com/auth/compute",
41068	//     "https://www.googleapis.com/auth/compute.readonly"
41069	//   ]
41070	// }
41071
41072}
41073
41074// method id "compute.firewalls.insert":
41075
41076type FirewallsInsertCall struct {
41077	s          *Service
41078	project    string
41079	firewall   *Firewall
41080	urlParams_ gensupport.URLParams
41081	ctx_       context.Context
41082	header_    http.Header
41083}
41084
41085// Insert: Creates a firewall rule in the specified project using the
41086// data included in the request.
41087// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/insert
41088func (r *FirewallsService) Insert(project string, firewall *Firewall) *FirewallsInsertCall {
41089	c := &FirewallsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
41090	c.project = project
41091	c.firewall = firewall
41092	return c
41093}
41094
41095// RequestId sets the optional parameter "requestId": An optional
41096// request ID to identify requests. Specify a unique request ID so that
41097// if you must retry your request, the server will know to ignore the
41098// request if it has already been completed.
41099//
41100// For example, consider a situation where you make an initial request
41101// and the request times out. If you make the request again with the
41102// same request ID, the server can check if original operation with the
41103// same request ID was received, and if so, will ignore the second
41104// request. This prevents clients from accidentally creating duplicate
41105// commitments.
41106//
41107// The request ID must be a valid UUID with the exception that zero UUID
41108// is not supported (00000000-0000-0000-0000-000000000000).
41109func (c *FirewallsInsertCall) RequestId(requestId string) *FirewallsInsertCall {
41110	c.urlParams_.Set("requestId", requestId)
41111	return c
41112}
41113
41114// Fields allows partial responses to be retrieved. See
41115// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
41116// for more information.
41117func (c *FirewallsInsertCall) Fields(s ...googleapi.Field) *FirewallsInsertCall {
41118	c.urlParams_.Set("fields", googleapi.CombineFields(s))
41119	return c
41120}
41121
41122// Context sets the context to be used in this call's Do method. Any
41123// pending HTTP request will be aborted if the provided context is
41124// canceled.
41125func (c *FirewallsInsertCall) Context(ctx context.Context) *FirewallsInsertCall {
41126	c.ctx_ = ctx
41127	return c
41128}
41129
41130// Header returns an http.Header that can be modified by the caller to
41131// add HTTP headers to the request.
41132func (c *FirewallsInsertCall) Header() http.Header {
41133	if c.header_ == nil {
41134		c.header_ = make(http.Header)
41135	}
41136	return c.header_
41137}
41138
41139func (c *FirewallsInsertCall) doRequest(alt string) (*http.Response, error) {
41140	reqHeaders := make(http.Header)
41141	for k, v := range c.header_ {
41142		reqHeaders[k] = v
41143	}
41144	reqHeaders.Set("User-Agent", c.s.userAgent())
41145	var body io.Reader = nil
41146	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall)
41147	if err != nil {
41148		return nil, err
41149	}
41150	reqHeaders.Set("Content-Type", "application/json")
41151	c.urlParams_.Set("alt", alt)
41152	c.urlParams_.Set("prettyPrint", "false")
41153	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls")
41154	urls += "?" + c.urlParams_.Encode()
41155	req, err := http.NewRequest("POST", urls, body)
41156	if err != nil {
41157		return nil, err
41158	}
41159	req.Header = reqHeaders
41160	googleapi.Expand(req.URL, map[string]string{
41161		"project": c.project,
41162	})
41163	return gensupport.SendRequest(c.ctx_, c.s.client, req)
41164}
41165
41166// Do executes the "compute.firewalls.insert" call.
41167// Exactly one of *Operation or error will be non-nil. Any non-2xx
41168// status code is an error. Response headers are in either
41169// *Operation.ServerResponse.Header or (if a response was returned at
41170// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
41171// to check whether the returned error was because
41172// http.StatusNotModified was returned.
41173func (c *FirewallsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
41174	gensupport.SetOptions(c.urlParams_, opts...)
41175	res, err := c.doRequest("json")
41176	if res != nil && res.StatusCode == http.StatusNotModified {
41177		if res.Body != nil {
41178			res.Body.Close()
41179		}
41180		return nil, &googleapi.Error{
41181			Code:   res.StatusCode,
41182			Header: res.Header,
41183		}
41184	}
41185	if err != nil {
41186		return nil, err
41187	}
41188	defer googleapi.CloseBody(res)
41189	if err := googleapi.CheckResponse(res); err != nil {
41190		return nil, err
41191	}
41192	ret := &Operation{
41193		ServerResponse: googleapi.ServerResponse{
41194			Header:         res.Header,
41195			HTTPStatusCode: res.StatusCode,
41196		},
41197	}
41198	target := &ret
41199	if err := gensupport.DecodeResponse(target, res); err != nil {
41200		return nil, err
41201	}
41202	return ret, nil
41203	// {
41204	//   "description": "Creates a firewall rule in the specified project using the data included in the request.",
41205	//   "httpMethod": "POST",
41206	//   "id": "compute.firewalls.insert",
41207	//   "parameterOrder": [
41208	//     "project"
41209	//   ],
41210	//   "parameters": {
41211	//     "project": {
41212	//       "description": "Project ID for this request.",
41213	//       "location": "path",
41214	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
41215	//       "required": true,
41216	//       "type": "string"
41217	//     },
41218	//     "requestId": {
41219	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
41220	//       "location": "query",
41221	//       "type": "string"
41222	//     }
41223	//   },
41224	//   "path": "{project}/global/firewalls",
41225	//   "request": {
41226	//     "$ref": "Firewall"
41227	//   },
41228	//   "response": {
41229	//     "$ref": "Operation"
41230	//   },
41231	//   "scopes": [
41232	//     "https://www.googleapis.com/auth/cloud-platform",
41233	//     "https://www.googleapis.com/auth/compute"
41234	//   ]
41235	// }
41236
41237}
41238
41239// method id "compute.firewalls.list":
41240
41241type FirewallsListCall struct {
41242	s            *Service
41243	project      string
41244	urlParams_   gensupport.URLParams
41245	ifNoneMatch_ string
41246	ctx_         context.Context
41247	header_      http.Header
41248}
41249
41250// List: Retrieves the list of firewall rules available to the specified
41251// project.
41252// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/list
41253func (r *FirewallsService) List(project string) *FirewallsListCall {
41254	c := &FirewallsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
41255	c.project = project
41256	return c
41257}
41258
41259// Filter sets the optional parameter "filter": A filter expression that
41260// filters resources listed in the response. The expression must specify
41261// the field name, a comparison operator, and the value that you want to
41262// use for filtering. The value must be a string, a number, or a
41263// boolean. The comparison operator must be either =, !=, >, or <.
41264//
41265// For example, if you are filtering Compute Engine instances, you can
41266// exclude instances named example-instance by specifying name !=
41267// example-instance.
41268//
41269// You can also filter nested fields. For example, you could specify
41270// scheduling.automaticRestart = false to include instances only if they
41271// are not scheduled for automatic restarts. You can use filtering on
41272// nested fields to filter based on resource labels.
41273//
41274// To filter on multiple expressions, provide each separate expression
41275// within parentheses. For example, (scheduling.automaticRestart = true)
41276// (cpuPlatform = "Intel Skylake"). By default, each expression is an
41277// AND expression. However, you can include AND and OR expressions
41278// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
41279// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
41280// true).
41281func (c *FirewallsListCall) Filter(filter string) *FirewallsListCall {
41282	c.urlParams_.Set("filter", filter)
41283	return c
41284}
41285
41286// MaxResults sets the optional parameter "maxResults": The maximum
41287// number of results per page that should be returned. If the number of
41288// available results is larger than maxResults, Compute Engine returns a
41289// nextPageToken that can be used to get the next page of results in
41290// subsequent list requests. Acceptable values are 0 to 500, inclusive.
41291// (Default: 500)
41292func (c *FirewallsListCall) MaxResults(maxResults int64) *FirewallsListCall {
41293	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
41294	return c
41295}
41296
41297// OrderBy sets the optional parameter "orderBy": Sorts list results by
41298// a certain order. By default, results are returned in alphanumerical
41299// order based on the resource name.
41300//
41301// You can also sort results in descending order based on the creation
41302// timestamp using orderBy="creationTimestamp desc". This sorts results
41303// based on the creationTimestamp field in reverse chronological order
41304// (newest result first). Use this to sort resources like operations so
41305// that the newest operation is returned first.
41306//
41307// Currently, only sorting by name or creationTimestamp desc is
41308// supported.
41309func (c *FirewallsListCall) OrderBy(orderBy string) *FirewallsListCall {
41310	c.urlParams_.Set("orderBy", orderBy)
41311	return c
41312}
41313
41314// PageToken sets the optional parameter "pageToken": Specifies a page
41315// token to use. Set pageToken to the nextPageToken returned by a
41316// previous list request to get the next page of results.
41317func (c *FirewallsListCall) PageToken(pageToken string) *FirewallsListCall {
41318	c.urlParams_.Set("pageToken", pageToken)
41319	return c
41320}
41321
41322// Fields allows partial responses to be retrieved. See
41323// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
41324// for more information.
41325func (c *FirewallsListCall) Fields(s ...googleapi.Field) *FirewallsListCall {
41326	c.urlParams_.Set("fields", googleapi.CombineFields(s))
41327	return c
41328}
41329
41330// IfNoneMatch sets the optional parameter which makes the operation
41331// fail if the object's ETag matches the given value. This is useful for
41332// getting updates only after the object has changed since the last
41333// request. Use googleapi.IsNotModified to check whether the response
41334// error from Do is the result of In-None-Match.
41335func (c *FirewallsListCall) IfNoneMatch(entityTag string) *FirewallsListCall {
41336	c.ifNoneMatch_ = entityTag
41337	return c
41338}
41339
41340// Context sets the context to be used in this call's Do method. Any
41341// pending HTTP request will be aborted if the provided context is
41342// canceled.
41343func (c *FirewallsListCall) Context(ctx context.Context) *FirewallsListCall {
41344	c.ctx_ = ctx
41345	return c
41346}
41347
41348// Header returns an http.Header that can be modified by the caller to
41349// add HTTP headers to the request.
41350func (c *FirewallsListCall) Header() http.Header {
41351	if c.header_ == nil {
41352		c.header_ = make(http.Header)
41353	}
41354	return c.header_
41355}
41356
41357func (c *FirewallsListCall) doRequest(alt string) (*http.Response, error) {
41358	reqHeaders := make(http.Header)
41359	for k, v := range c.header_ {
41360		reqHeaders[k] = v
41361	}
41362	reqHeaders.Set("User-Agent", c.s.userAgent())
41363	if c.ifNoneMatch_ != "" {
41364		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
41365	}
41366	var body io.Reader = nil
41367	c.urlParams_.Set("alt", alt)
41368	c.urlParams_.Set("prettyPrint", "false")
41369	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls")
41370	urls += "?" + c.urlParams_.Encode()
41371	req, err := http.NewRequest("GET", urls, body)
41372	if err != nil {
41373		return nil, err
41374	}
41375	req.Header = reqHeaders
41376	googleapi.Expand(req.URL, map[string]string{
41377		"project": c.project,
41378	})
41379	return gensupport.SendRequest(c.ctx_, c.s.client, req)
41380}
41381
41382// Do executes the "compute.firewalls.list" call.
41383// Exactly one of *FirewallList or error will be non-nil. Any non-2xx
41384// status code is an error. Response headers are in either
41385// *FirewallList.ServerResponse.Header or (if a response was returned at
41386// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
41387// to check whether the returned error was because
41388// http.StatusNotModified was returned.
41389func (c *FirewallsListCall) Do(opts ...googleapi.CallOption) (*FirewallList, error) {
41390	gensupport.SetOptions(c.urlParams_, opts...)
41391	res, err := c.doRequest("json")
41392	if res != nil && res.StatusCode == http.StatusNotModified {
41393		if res.Body != nil {
41394			res.Body.Close()
41395		}
41396		return nil, &googleapi.Error{
41397			Code:   res.StatusCode,
41398			Header: res.Header,
41399		}
41400	}
41401	if err != nil {
41402		return nil, err
41403	}
41404	defer googleapi.CloseBody(res)
41405	if err := googleapi.CheckResponse(res); err != nil {
41406		return nil, err
41407	}
41408	ret := &FirewallList{
41409		ServerResponse: googleapi.ServerResponse{
41410			Header:         res.Header,
41411			HTTPStatusCode: res.StatusCode,
41412		},
41413	}
41414	target := &ret
41415	if err := gensupport.DecodeResponse(target, res); err != nil {
41416		return nil, err
41417	}
41418	return ret, nil
41419	// {
41420	//   "description": "Retrieves the list of firewall rules available to the specified project.",
41421	//   "httpMethod": "GET",
41422	//   "id": "compute.firewalls.list",
41423	//   "parameterOrder": [
41424	//     "project"
41425	//   ],
41426	//   "parameters": {
41427	//     "filter": {
41428	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
41429	//       "location": "query",
41430	//       "type": "string"
41431	//     },
41432	//     "maxResults": {
41433	//       "default": "500",
41434	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
41435	//       "format": "uint32",
41436	//       "location": "query",
41437	//       "minimum": "0",
41438	//       "type": "integer"
41439	//     },
41440	//     "orderBy": {
41441	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
41442	//       "location": "query",
41443	//       "type": "string"
41444	//     },
41445	//     "pageToken": {
41446	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
41447	//       "location": "query",
41448	//       "type": "string"
41449	//     },
41450	//     "project": {
41451	//       "description": "Project ID for this request.",
41452	//       "location": "path",
41453	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
41454	//       "required": true,
41455	//       "type": "string"
41456	//     }
41457	//   },
41458	//   "path": "{project}/global/firewalls",
41459	//   "response": {
41460	//     "$ref": "FirewallList"
41461	//   },
41462	//   "scopes": [
41463	//     "https://www.googleapis.com/auth/cloud-platform",
41464	//     "https://www.googleapis.com/auth/compute",
41465	//     "https://www.googleapis.com/auth/compute.readonly"
41466	//   ]
41467	// }
41468
41469}
41470
41471// Pages invokes f for each page of results.
41472// A non-nil error returned from f will halt the iteration.
41473// The provided context supersedes any context provided to the Context method.
41474func (c *FirewallsListCall) Pages(ctx context.Context, f func(*FirewallList) error) error {
41475	c.ctx_ = ctx
41476	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
41477	for {
41478		x, err := c.Do()
41479		if err != nil {
41480			return err
41481		}
41482		if err := f(x); err != nil {
41483			return err
41484		}
41485		if x.NextPageToken == "" {
41486			return nil
41487		}
41488		c.PageToken(x.NextPageToken)
41489	}
41490}
41491
41492// method id "compute.firewalls.patch":
41493
41494type FirewallsPatchCall struct {
41495	s          *Service
41496	project    string
41497	firewall   string
41498	firewall2  *Firewall
41499	urlParams_ gensupport.URLParams
41500	ctx_       context.Context
41501	header_    http.Header
41502}
41503
41504// Patch: Updates the specified firewall rule with the data included in
41505// the request. This method supports PATCH semantics and uses the JSON
41506// merge patch format and processing rules.
41507// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/patch
41508func (r *FirewallsService) Patch(project string, firewall string, firewall2 *Firewall) *FirewallsPatchCall {
41509	c := &FirewallsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
41510	c.project = project
41511	c.firewall = firewall
41512	c.firewall2 = firewall2
41513	return c
41514}
41515
41516// RequestId sets the optional parameter "requestId": An optional
41517// request ID to identify requests. Specify a unique request ID so that
41518// if you must retry your request, the server will know to ignore the
41519// request if it has already been completed.
41520//
41521// For example, consider a situation where you make an initial request
41522// and the request times out. If you make the request again with the
41523// same request ID, the server can check if original operation with the
41524// same request ID was received, and if so, will ignore the second
41525// request. This prevents clients from accidentally creating duplicate
41526// commitments.
41527//
41528// The request ID must be a valid UUID with the exception that zero UUID
41529// is not supported (00000000-0000-0000-0000-000000000000).
41530func (c *FirewallsPatchCall) RequestId(requestId string) *FirewallsPatchCall {
41531	c.urlParams_.Set("requestId", requestId)
41532	return c
41533}
41534
41535// Fields allows partial responses to be retrieved. See
41536// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
41537// for more information.
41538func (c *FirewallsPatchCall) Fields(s ...googleapi.Field) *FirewallsPatchCall {
41539	c.urlParams_.Set("fields", googleapi.CombineFields(s))
41540	return c
41541}
41542
41543// Context sets the context to be used in this call's Do method. Any
41544// pending HTTP request will be aborted if the provided context is
41545// canceled.
41546func (c *FirewallsPatchCall) Context(ctx context.Context) *FirewallsPatchCall {
41547	c.ctx_ = ctx
41548	return c
41549}
41550
41551// Header returns an http.Header that can be modified by the caller to
41552// add HTTP headers to the request.
41553func (c *FirewallsPatchCall) Header() http.Header {
41554	if c.header_ == nil {
41555		c.header_ = make(http.Header)
41556	}
41557	return c.header_
41558}
41559
41560func (c *FirewallsPatchCall) doRequest(alt string) (*http.Response, error) {
41561	reqHeaders := make(http.Header)
41562	for k, v := range c.header_ {
41563		reqHeaders[k] = v
41564	}
41565	reqHeaders.Set("User-Agent", c.s.userAgent())
41566	var body io.Reader = nil
41567	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
41568	if err != nil {
41569		return nil, err
41570	}
41571	reqHeaders.Set("Content-Type", "application/json")
41572	c.urlParams_.Set("alt", alt)
41573	c.urlParams_.Set("prettyPrint", "false")
41574	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
41575	urls += "?" + c.urlParams_.Encode()
41576	req, err := http.NewRequest("PATCH", urls, body)
41577	if err != nil {
41578		return nil, err
41579	}
41580	req.Header = reqHeaders
41581	googleapi.Expand(req.URL, map[string]string{
41582		"project":  c.project,
41583		"firewall": c.firewall,
41584	})
41585	return gensupport.SendRequest(c.ctx_, c.s.client, req)
41586}
41587
41588// Do executes the "compute.firewalls.patch" call.
41589// Exactly one of *Operation or error will be non-nil. Any non-2xx
41590// status code is an error. Response headers are in either
41591// *Operation.ServerResponse.Header or (if a response was returned at
41592// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
41593// to check whether the returned error was because
41594// http.StatusNotModified was returned.
41595func (c *FirewallsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
41596	gensupport.SetOptions(c.urlParams_, opts...)
41597	res, err := c.doRequest("json")
41598	if res != nil && res.StatusCode == http.StatusNotModified {
41599		if res.Body != nil {
41600			res.Body.Close()
41601		}
41602		return nil, &googleapi.Error{
41603			Code:   res.StatusCode,
41604			Header: res.Header,
41605		}
41606	}
41607	if err != nil {
41608		return nil, err
41609	}
41610	defer googleapi.CloseBody(res)
41611	if err := googleapi.CheckResponse(res); err != nil {
41612		return nil, err
41613	}
41614	ret := &Operation{
41615		ServerResponse: googleapi.ServerResponse{
41616			Header:         res.Header,
41617			HTTPStatusCode: res.StatusCode,
41618		},
41619	}
41620	target := &ret
41621	if err := gensupport.DecodeResponse(target, res); err != nil {
41622		return nil, err
41623	}
41624	return ret, nil
41625	// {
41626	//   "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.",
41627	//   "httpMethod": "PATCH",
41628	//   "id": "compute.firewalls.patch",
41629	//   "parameterOrder": [
41630	//     "project",
41631	//     "firewall"
41632	//   ],
41633	//   "parameters": {
41634	//     "firewall": {
41635	//       "description": "Name of the firewall rule to patch.",
41636	//       "location": "path",
41637	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
41638	//       "required": true,
41639	//       "type": "string"
41640	//     },
41641	//     "project": {
41642	//       "description": "Project ID for this request.",
41643	//       "location": "path",
41644	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
41645	//       "required": true,
41646	//       "type": "string"
41647	//     },
41648	//     "requestId": {
41649	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
41650	//       "location": "query",
41651	//       "type": "string"
41652	//     }
41653	//   },
41654	//   "path": "{project}/global/firewalls/{firewall}",
41655	//   "request": {
41656	//     "$ref": "Firewall"
41657	//   },
41658	//   "response": {
41659	//     "$ref": "Operation"
41660	//   },
41661	//   "scopes": [
41662	//     "https://www.googleapis.com/auth/cloud-platform",
41663	//     "https://www.googleapis.com/auth/compute"
41664	//   ]
41665	// }
41666
41667}
41668
41669// method id "compute.firewalls.update":
41670
41671type FirewallsUpdateCall struct {
41672	s          *Service
41673	project    string
41674	firewall   string
41675	firewall2  *Firewall
41676	urlParams_ gensupport.URLParams
41677	ctx_       context.Context
41678	header_    http.Header
41679}
41680
41681// Update: Updates the specified firewall rule with the data included in
41682// the request. The PUT method can only update the following fields of
41683// firewall rule: allowed, description, sourceRanges, sourceTags,
41684// targetTags.
41685// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/update
41686func (r *FirewallsService) Update(project string, firewall string, firewall2 *Firewall) *FirewallsUpdateCall {
41687	c := &FirewallsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
41688	c.project = project
41689	c.firewall = firewall
41690	c.firewall2 = firewall2
41691	return c
41692}
41693
41694// RequestId sets the optional parameter "requestId": An optional
41695// request ID to identify requests. Specify a unique request ID so that
41696// if you must retry your request, the server will know to ignore the
41697// request if it has already been completed.
41698//
41699// For example, consider a situation where you make an initial request
41700// and the request times out. If you make the request again with the
41701// same request ID, the server can check if original operation with the
41702// same request ID was received, and if so, will ignore the second
41703// request. This prevents clients from accidentally creating duplicate
41704// commitments.
41705//
41706// The request ID must be a valid UUID with the exception that zero UUID
41707// is not supported (00000000-0000-0000-0000-000000000000).
41708func (c *FirewallsUpdateCall) RequestId(requestId string) *FirewallsUpdateCall {
41709	c.urlParams_.Set("requestId", requestId)
41710	return c
41711}
41712
41713// Fields allows partial responses to be retrieved. See
41714// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
41715// for more information.
41716func (c *FirewallsUpdateCall) Fields(s ...googleapi.Field) *FirewallsUpdateCall {
41717	c.urlParams_.Set("fields", googleapi.CombineFields(s))
41718	return c
41719}
41720
41721// Context sets the context to be used in this call's Do method. Any
41722// pending HTTP request will be aborted if the provided context is
41723// canceled.
41724func (c *FirewallsUpdateCall) Context(ctx context.Context) *FirewallsUpdateCall {
41725	c.ctx_ = ctx
41726	return c
41727}
41728
41729// Header returns an http.Header that can be modified by the caller to
41730// add HTTP headers to the request.
41731func (c *FirewallsUpdateCall) Header() http.Header {
41732	if c.header_ == nil {
41733		c.header_ = make(http.Header)
41734	}
41735	return c.header_
41736}
41737
41738func (c *FirewallsUpdateCall) doRequest(alt string) (*http.Response, error) {
41739	reqHeaders := make(http.Header)
41740	for k, v := range c.header_ {
41741		reqHeaders[k] = v
41742	}
41743	reqHeaders.Set("User-Agent", c.s.userAgent())
41744	var body io.Reader = nil
41745	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
41746	if err != nil {
41747		return nil, err
41748	}
41749	reqHeaders.Set("Content-Type", "application/json")
41750	c.urlParams_.Set("alt", alt)
41751	c.urlParams_.Set("prettyPrint", "false")
41752	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
41753	urls += "?" + c.urlParams_.Encode()
41754	req, err := http.NewRequest("PUT", urls, body)
41755	if err != nil {
41756		return nil, err
41757	}
41758	req.Header = reqHeaders
41759	googleapi.Expand(req.URL, map[string]string{
41760		"project":  c.project,
41761		"firewall": c.firewall,
41762	})
41763	return gensupport.SendRequest(c.ctx_, c.s.client, req)
41764}
41765
41766// Do executes the "compute.firewalls.update" call.
41767// Exactly one of *Operation or error will be non-nil. Any non-2xx
41768// status code is an error. Response headers are in either
41769// *Operation.ServerResponse.Header or (if a response was returned at
41770// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
41771// to check whether the returned error was because
41772// http.StatusNotModified was returned.
41773func (c *FirewallsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
41774	gensupport.SetOptions(c.urlParams_, opts...)
41775	res, err := c.doRequest("json")
41776	if res != nil && res.StatusCode == http.StatusNotModified {
41777		if res.Body != nil {
41778			res.Body.Close()
41779		}
41780		return nil, &googleapi.Error{
41781			Code:   res.StatusCode,
41782			Header: res.Header,
41783		}
41784	}
41785	if err != nil {
41786		return nil, err
41787	}
41788	defer googleapi.CloseBody(res)
41789	if err := googleapi.CheckResponse(res); err != nil {
41790		return nil, err
41791	}
41792	ret := &Operation{
41793		ServerResponse: googleapi.ServerResponse{
41794			Header:         res.Header,
41795			HTTPStatusCode: res.StatusCode,
41796		},
41797	}
41798	target := &ret
41799	if err := gensupport.DecodeResponse(target, res); err != nil {
41800		return nil, err
41801	}
41802	return ret, nil
41803	// {
41804	//   "description": "Updates the specified firewall rule with the data included in the request. The PUT method can only update the following fields of firewall rule: allowed, description, sourceRanges, sourceTags, targetTags.",
41805	//   "httpMethod": "PUT",
41806	//   "id": "compute.firewalls.update",
41807	//   "parameterOrder": [
41808	//     "project",
41809	//     "firewall"
41810	//   ],
41811	//   "parameters": {
41812	//     "firewall": {
41813	//       "description": "Name of the firewall rule to update.",
41814	//       "location": "path",
41815	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
41816	//       "required": true,
41817	//       "type": "string"
41818	//     },
41819	//     "project": {
41820	//       "description": "Project ID for this request.",
41821	//       "location": "path",
41822	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
41823	//       "required": true,
41824	//       "type": "string"
41825	//     },
41826	//     "requestId": {
41827	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
41828	//       "location": "query",
41829	//       "type": "string"
41830	//     }
41831	//   },
41832	//   "path": "{project}/global/firewalls/{firewall}",
41833	//   "request": {
41834	//     "$ref": "Firewall"
41835	//   },
41836	//   "response": {
41837	//     "$ref": "Operation"
41838	//   },
41839	//   "scopes": [
41840	//     "https://www.googleapis.com/auth/cloud-platform",
41841	//     "https://www.googleapis.com/auth/compute"
41842	//   ]
41843	// }
41844
41845}
41846
41847// method id "compute.forwardingRules.aggregatedList":
41848
41849type ForwardingRulesAggregatedListCall struct {
41850	s            *Service
41851	project      string
41852	urlParams_   gensupport.URLParams
41853	ifNoneMatch_ string
41854	ctx_         context.Context
41855	header_      http.Header
41856}
41857
41858// AggregatedList: Retrieves an aggregated list of forwarding rules.
41859// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/aggregatedList
41860func (r *ForwardingRulesService) AggregatedList(project string) *ForwardingRulesAggregatedListCall {
41861	c := &ForwardingRulesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
41862	c.project = project
41863	return c
41864}
41865
41866// Filter sets the optional parameter "filter": A filter expression that
41867// filters resources listed in the response. The expression must specify
41868// the field name, a comparison operator, and the value that you want to
41869// use for filtering. The value must be a string, a number, or a
41870// boolean. The comparison operator must be either =, !=, >, or <.
41871//
41872// For example, if you are filtering Compute Engine instances, you can
41873// exclude instances named example-instance by specifying name !=
41874// example-instance.
41875//
41876// You can also filter nested fields. For example, you could specify
41877// scheduling.automaticRestart = false to include instances only if they
41878// are not scheduled for automatic restarts. You can use filtering on
41879// nested fields to filter based on resource labels.
41880//
41881// To filter on multiple expressions, provide each separate expression
41882// within parentheses. For example, (scheduling.automaticRestart = true)
41883// (cpuPlatform = "Intel Skylake"). By default, each expression is an
41884// AND expression. However, you can include AND and OR expressions
41885// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
41886// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
41887// true).
41888func (c *ForwardingRulesAggregatedListCall) Filter(filter string) *ForwardingRulesAggregatedListCall {
41889	c.urlParams_.Set("filter", filter)
41890	return c
41891}
41892
41893// MaxResults sets the optional parameter "maxResults": The maximum
41894// number of results per page that should be returned. If the number of
41895// available results is larger than maxResults, Compute Engine returns a
41896// nextPageToken that can be used to get the next page of results in
41897// subsequent list requests. Acceptable values are 0 to 500, inclusive.
41898// (Default: 500)
41899func (c *ForwardingRulesAggregatedListCall) MaxResults(maxResults int64) *ForwardingRulesAggregatedListCall {
41900	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
41901	return c
41902}
41903
41904// OrderBy sets the optional parameter "orderBy": Sorts list results by
41905// a certain order. By default, results are returned in alphanumerical
41906// order based on the resource name.
41907//
41908// You can also sort results in descending order based on the creation
41909// timestamp using orderBy="creationTimestamp desc". This sorts results
41910// based on the creationTimestamp field in reverse chronological order
41911// (newest result first). Use this to sort resources like operations so
41912// that the newest operation is returned first.
41913//
41914// Currently, only sorting by name or creationTimestamp desc is
41915// supported.
41916func (c *ForwardingRulesAggregatedListCall) OrderBy(orderBy string) *ForwardingRulesAggregatedListCall {
41917	c.urlParams_.Set("orderBy", orderBy)
41918	return c
41919}
41920
41921// PageToken sets the optional parameter "pageToken": Specifies a page
41922// token to use. Set pageToken to the nextPageToken returned by a
41923// previous list request to get the next page of results.
41924func (c *ForwardingRulesAggregatedListCall) PageToken(pageToken string) *ForwardingRulesAggregatedListCall {
41925	c.urlParams_.Set("pageToken", pageToken)
41926	return c
41927}
41928
41929// Fields allows partial responses to be retrieved. See
41930// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
41931// for more information.
41932func (c *ForwardingRulesAggregatedListCall) Fields(s ...googleapi.Field) *ForwardingRulesAggregatedListCall {
41933	c.urlParams_.Set("fields", googleapi.CombineFields(s))
41934	return c
41935}
41936
41937// IfNoneMatch sets the optional parameter which makes the operation
41938// fail if the object's ETag matches the given value. This is useful for
41939// getting updates only after the object has changed since the last
41940// request. Use googleapi.IsNotModified to check whether the response
41941// error from Do is the result of In-None-Match.
41942func (c *ForwardingRulesAggregatedListCall) IfNoneMatch(entityTag string) *ForwardingRulesAggregatedListCall {
41943	c.ifNoneMatch_ = entityTag
41944	return c
41945}
41946
41947// Context sets the context to be used in this call's Do method. Any
41948// pending HTTP request will be aborted if the provided context is
41949// canceled.
41950func (c *ForwardingRulesAggregatedListCall) Context(ctx context.Context) *ForwardingRulesAggregatedListCall {
41951	c.ctx_ = ctx
41952	return c
41953}
41954
41955// Header returns an http.Header that can be modified by the caller to
41956// add HTTP headers to the request.
41957func (c *ForwardingRulesAggregatedListCall) Header() http.Header {
41958	if c.header_ == nil {
41959		c.header_ = make(http.Header)
41960	}
41961	return c.header_
41962}
41963
41964func (c *ForwardingRulesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
41965	reqHeaders := make(http.Header)
41966	for k, v := range c.header_ {
41967		reqHeaders[k] = v
41968	}
41969	reqHeaders.Set("User-Agent", c.s.userAgent())
41970	if c.ifNoneMatch_ != "" {
41971		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
41972	}
41973	var body io.Reader = nil
41974	c.urlParams_.Set("alt", alt)
41975	c.urlParams_.Set("prettyPrint", "false")
41976	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/forwardingRules")
41977	urls += "?" + c.urlParams_.Encode()
41978	req, err := http.NewRequest("GET", urls, body)
41979	if err != nil {
41980		return nil, err
41981	}
41982	req.Header = reqHeaders
41983	googleapi.Expand(req.URL, map[string]string{
41984		"project": c.project,
41985	})
41986	return gensupport.SendRequest(c.ctx_, c.s.client, req)
41987}
41988
41989// Do executes the "compute.forwardingRules.aggregatedList" call.
41990// Exactly one of *ForwardingRuleAggregatedList or error will be
41991// non-nil. Any non-2xx status code is an error. Response headers are in
41992// either *ForwardingRuleAggregatedList.ServerResponse.Header or (if a
41993// response was returned at all) in error.(*googleapi.Error).Header. Use
41994// googleapi.IsNotModified to check whether the returned error was
41995// because http.StatusNotModified was returned.
41996func (c *ForwardingRulesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleAggregatedList, error) {
41997	gensupport.SetOptions(c.urlParams_, opts...)
41998	res, err := c.doRequest("json")
41999	if res != nil && res.StatusCode == http.StatusNotModified {
42000		if res.Body != nil {
42001			res.Body.Close()
42002		}
42003		return nil, &googleapi.Error{
42004			Code:   res.StatusCode,
42005			Header: res.Header,
42006		}
42007	}
42008	if err != nil {
42009		return nil, err
42010	}
42011	defer googleapi.CloseBody(res)
42012	if err := googleapi.CheckResponse(res); err != nil {
42013		return nil, err
42014	}
42015	ret := &ForwardingRuleAggregatedList{
42016		ServerResponse: googleapi.ServerResponse{
42017			Header:         res.Header,
42018			HTTPStatusCode: res.StatusCode,
42019		},
42020	}
42021	target := &ret
42022	if err := gensupport.DecodeResponse(target, res); err != nil {
42023		return nil, err
42024	}
42025	return ret, nil
42026	// {
42027	//   "description": "Retrieves an aggregated list of forwarding rules.",
42028	//   "httpMethod": "GET",
42029	//   "id": "compute.forwardingRules.aggregatedList",
42030	//   "parameterOrder": [
42031	//     "project"
42032	//   ],
42033	//   "parameters": {
42034	//     "filter": {
42035	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
42036	//       "location": "query",
42037	//       "type": "string"
42038	//     },
42039	//     "maxResults": {
42040	//       "default": "500",
42041	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
42042	//       "format": "uint32",
42043	//       "location": "query",
42044	//       "minimum": "0",
42045	//       "type": "integer"
42046	//     },
42047	//     "orderBy": {
42048	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
42049	//       "location": "query",
42050	//       "type": "string"
42051	//     },
42052	//     "pageToken": {
42053	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
42054	//       "location": "query",
42055	//       "type": "string"
42056	//     },
42057	//     "project": {
42058	//       "description": "Project ID for this request.",
42059	//       "location": "path",
42060	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
42061	//       "required": true,
42062	//       "type": "string"
42063	//     }
42064	//   },
42065	//   "path": "{project}/aggregated/forwardingRules",
42066	//   "response": {
42067	//     "$ref": "ForwardingRuleAggregatedList"
42068	//   },
42069	//   "scopes": [
42070	//     "https://www.googleapis.com/auth/cloud-platform",
42071	//     "https://www.googleapis.com/auth/compute",
42072	//     "https://www.googleapis.com/auth/compute.readonly"
42073	//   ]
42074	// }
42075
42076}
42077
42078// Pages invokes f for each page of results.
42079// A non-nil error returned from f will halt the iteration.
42080// The provided context supersedes any context provided to the Context method.
42081func (c *ForwardingRulesAggregatedListCall) Pages(ctx context.Context, f func(*ForwardingRuleAggregatedList) error) error {
42082	c.ctx_ = ctx
42083	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
42084	for {
42085		x, err := c.Do()
42086		if err != nil {
42087			return err
42088		}
42089		if err := f(x); err != nil {
42090			return err
42091		}
42092		if x.NextPageToken == "" {
42093			return nil
42094		}
42095		c.PageToken(x.NextPageToken)
42096	}
42097}
42098
42099// method id "compute.forwardingRules.delete":
42100
42101type ForwardingRulesDeleteCall struct {
42102	s              *Service
42103	project        string
42104	region         string
42105	forwardingRule string
42106	urlParams_     gensupport.URLParams
42107	ctx_           context.Context
42108	header_        http.Header
42109}
42110
42111// Delete: Deletes the specified ForwardingRule resource.
42112// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/delete
42113func (r *ForwardingRulesService) Delete(project string, region string, forwardingRule string) *ForwardingRulesDeleteCall {
42114	c := &ForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42115	c.project = project
42116	c.region = region
42117	c.forwardingRule = forwardingRule
42118	return c
42119}
42120
42121// RequestId sets the optional parameter "requestId": An optional
42122// request ID to identify requests. Specify a unique request ID so that
42123// if you must retry your request, the server will know to ignore the
42124// request if it has already been completed.
42125//
42126// For example, consider a situation where you make an initial request
42127// and the request times out. If you make the request again with the
42128// same request ID, the server can check if original operation with the
42129// same request ID was received, and if so, will ignore the second
42130// request. This prevents clients from accidentally creating duplicate
42131// commitments.
42132//
42133// The request ID must be a valid UUID with the exception that zero UUID
42134// is not supported (00000000-0000-0000-0000-000000000000).
42135func (c *ForwardingRulesDeleteCall) RequestId(requestId string) *ForwardingRulesDeleteCall {
42136	c.urlParams_.Set("requestId", requestId)
42137	return c
42138}
42139
42140// Fields allows partial responses to be retrieved. See
42141// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42142// for more information.
42143func (c *ForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *ForwardingRulesDeleteCall {
42144	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42145	return c
42146}
42147
42148// Context sets the context to be used in this call's Do method. Any
42149// pending HTTP request will be aborted if the provided context is
42150// canceled.
42151func (c *ForwardingRulesDeleteCall) Context(ctx context.Context) *ForwardingRulesDeleteCall {
42152	c.ctx_ = ctx
42153	return c
42154}
42155
42156// Header returns an http.Header that can be modified by the caller to
42157// add HTTP headers to the request.
42158func (c *ForwardingRulesDeleteCall) Header() http.Header {
42159	if c.header_ == nil {
42160		c.header_ = make(http.Header)
42161	}
42162	return c.header_
42163}
42164
42165func (c *ForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
42166	reqHeaders := make(http.Header)
42167	for k, v := range c.header_ {
42168		reqHeaders[k] = v
42169	}
42170	reqHeaders.Set("User-Agent", c.s.userAgent())
42171	var body io.Reader = nil
42172	c.urlParams_.Set("alt", alt)
42173	c.urlParams_.Set("prettyPrint", "false")
42174	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
42175	urls += "?" + c.urlParams_.Encode()
42176	req, err := http.NewRequest("DELETE", urls, body)
42177	if err != nil {
42178		return nil, err
42179	}
42180	req.Header = reqHeaders
42181	googleapi.Expand(req.URL, map[string]string{
42182		"project":        c.project,
42183		"region":         c.region,
42184		"forwardingRule": c.forwardingRule,
42185	})
42186	return gensupport.SendRequest(c.ctx_, c.s.client, req)
42187}
42188
42189// Do executes the "compute.forwardingRules.delete" call.
42190// Exactly one of *Operation or error will be non-nil. Any non-2xx
42191// status code is an error. Response headers are in either
42192// *Operation.ServerResponse.Header or (if a response was returned at
42193// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
42194// to check whether the returned error was because
42195// http.StatusNotModified was returned.
42196func (c *ForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
42197	gensupport.SetOptions(c.urlParams_, opts...)
42198	res, err := c.doRequest("json")
42199	if res != nil && res.StatusCode == http.StatusNotModified {
42200		if res.Body != nil {
42201			res.Body.Close()
42202		}
42203		return nil, &googleapi.Error{
42204			Code:   res.StatusCode,
42205			Header: res.Header,
42206		}
42207	}
42208	if err != nil {
42209		return nil, err
42210	}
42211	defer googleapi.CloseBody(res)
42212	if err := googleapi.CheckResponse(res); err != nil {
42213		return nil, err
42214	}
42215	ret := &Operation{
42216		ServerResponse: googleapi.ServerResponse{
42217			Header:         res.Header,
42218			HTTPStatusCode: res.StatusCode,
42219		},
42220	}
42221	target := &ret
42222	if err := gensupport.DecodeResponse(target, res); err != nil {
42223		return nil, err
42224	}
42225	return ret, nil
42226	// {
42227	//   "description": "Deletes the specified ForwardingRule resource.",
42228	//   "httpMethod": "DELETE",
42229	//   "id": "compute.forwardingRules.delete",
42230	//   "parameterOrder": [
42231	//     "project",
42232	//     "region",
42233	//     "forwardingRule"
42234	//   ],
42235	//   "parameters": {
42236	//     "forwardingRule": {
42237	//       "description": "Name of the ForwardingRule resource to delete.",
42238	//       "location": "path",
42239	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
42240	//       "required": true,
42241	//       "type": "string"
42242	//     },
42243	//     "project": {
42244	//       "description": "Project ID for this request.",
42245	//       "location": "path",
42246	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
42247	//       "required": true,
42248	//       "type": "string"
42249	//     },
42250	//     "region": {
42251	//       "description": "Name of the region scoping this request.",
42252	//       "location": "path",
42253	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
42254	//       "required": true,
42255	//       "type": "string"
42256	//     },
42257	//     "requestId": {
42258	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
42259	//       "location": "query",
42260	//       "type": "string"
42261	//     }
42262	//   },
42263	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
42264	//   "response": {
42265	//     "$ref": "Operation"
42266	//   },
42267	//   "scopes": [
42268	//     "https://www.googleapis.com/auth/cloud-platform",
42269	//     "https://www.googleapis.com/auth/compute"
42270	//   ]
42271	// }
42272
42273}
42274
42275// method id "compute.forwardingRules.get":
42276
42277type ForwardingRulesGetCall struct {
42278	s              *Service
42279	project        string
42280	region         string
42281	forwardingRule string
42282	urlParams_     gensupport.URLParams
42283	ifNoneMatch_   string
42284	ctx_           context.Context
42285	header_        http.Header
42286}
42287
42288// Get: Returns the specified ForwardingRule resource.
42289// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/get
42290func (r *ForwardingRulesService) Get(project string, region string, forwardingRule string) *ForwardingRulesGetCall {
42291	c := &ForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42292	c.project = project
42293	c.region = region
42294	c.forwardingRule = forwardingRule
42295	return c
42296}
42297
42298// Fields allows partial responses to be retrieved. See
42299// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42300// for more information.
42301func (c *ForwardingRulesGetCall) Fields(s ...googleapi.Field) *ForwardingRulesGetCall {
42302	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42303	return c
42304}
42305
42306// IfNoneMatch sets the optional parameter which makes the operation
42307// fail if the object's ETag matches the given value. This is useful for
42308// getting updates only after the object has changed since the last
42309// request. Use googleapi.IsNotModified to check whether the response
42310// error from Do is the result of In-None-Match.
42311func (c *ForwardingRulesGetCall) IfNoneMatch(entityTag string) *ForwardingRulesGetCall {
42312	c.ifNoneMatch_ = entityTag
42313	return c
42314}
42315
42316// Context sets the context to be used in this call's Do method. Any
42317// pending HTTP request will be aborted if the provided context is
42318// canceled.
42319func (c *ForwardingRulesGetCall) Context(ctx context.Context) *ForwardingRulesGetCall {
42320	c.ctx_ = ctx
42321	return c
42322}
42323
42324// Header returns an http.Header that can be modified by the caller to
42325// add HTTP headers to the request.
42326func (c *ForwardingRulesGetCall) Header() http.Header {
42327	if c.header_ == nil {
42328		c.header_ = make(http.Header)
42329	}
42330	return c.header_
42331}
42332
42333func (c *ForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
42334	reqHeaders := make(http.Header)
42335	for k, v := range c.header_ {
42336		reqHeaders[k] = v
42337	}
42338	reqHeaders.Set("User-Agent", c.s.userAgent())
42339	if c.ifNoneMatch_ != "" {
42340		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
42341	}
42342	var body io.Reader = nil
42343	c.urlParams_.Set("alt", alt)
42344	c.urlParams_.Set("prettyPrint", "false")
42345	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
42346	urls += "?" + c.urlParams_.Encode()
42347	req, err := http.NewRequest("GET", urls, body)
42348	if err != nil {
42349		return nil, err
42350	}
42351	req.Header = reqHeaders
42352	googleapi.Expand(req.URL, map[string]string{
42353		"project":        c.project,
42354		"region":         c.region,
42355		"forwardingRule": c.forwardingRule,
42356	})
42357	return gensupport.SendRequest(c.ctx_, c.s.client, req)
42358}
42359
42360// Do executes the "compute.forwardingRules.get" call.
42361// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
42362// status code is an error. Response headers are in either
42363// *ForwardingRule.ServerResponse.Header or (if a response was returned
42364// at all) in error.(*googleapi.Error).Header. Use
42365// googleapi.IsNotModified to check whether the returned error was
42366// because http.StatusNotModified was returned.
42367func (c *ForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
42368	gensupport.SetOptions(c.urlParams_, opts...)
42369	res, err := c.doRequest("json")
42370	if res != nil && res.StatusCode == http.StatusNotModified {
42371		if res.Body != nil {
42372			res.Body.Close()
42373		}
42374		return nil, &googleapi.Error{
42375			Code:   res.StatusCode,
42376			Header: res.Header,
42377		}
42378	}
42379	if err != nil {
42380		return nil, err
42381	}
42382	defer googleapi.CloseBody(res)
42383	if err := googleapi.CheckResponse(res); err != nil {
42384		return nil, err
42385	}
42386	ret := &ForwardingRule{
42387		ServerResponse: googleapi.ServerResponse{
42388			Header:         res.Header,
42389			HTTPStatusCode: res.StatusCode,
42390		},
42391	}
42392	target := &ret
42393	if err := gensupport.DecodeResponse(target, res); err != nil {
42394		return nil, err
42395	}
42396	return ret, nil
42397	// {
42398	//   "description": "Returns the specified ForwardingRule resource.",
42399	//   "httpMethod": "GET",
42400	//   "id": "compute.forwardingRules.get",
42401	//   "parameterOrder": [
42402	//     "project",
42403	//     "region",
42404	//     "forwardingRule"
42405	//   ],
42406	//   "parameters": {
42407	//     "forwardingRule": {
42408	//       "description": "Name of the ForwardingRule resource to return.",
42409	//       "location": "path",
42410	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
42411	//       "required": true,
42412	//       "type": "string"
42413	//     },
42414	//     "project": {
42415	//       "description": "Project ID for this request.",
42416	//       "location": "path",
42417	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
42418	//       "required": true,
42419	//       "type": "string"
42420	//     },
42421	//     "region": {
42422	//       "description": "Name of the region scoping this request.",
42423	//       "location": "path",
42424	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
42425	//       "required": true,
42426	//       "type": "string"
42427	//     }
42428	//   },
42429	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
42430	//   "response": {
42431	//     "$ref": "ForwardingRule"
42432	//   },
42433	//   "scopes": [
42434	//     "https://www.googleapis.com/auth/cloud-platform",
42435	//     "https://www.googleapis.com/auth/compute",
42436	//     "https://www.googleapis.com/auth/compute.readonly"
42437	//   ]
42438	// }
42439
42440}
42441
42442// method id "compute.forwardingRules.insert":
42443
42444type ForwardingRulesInsertCall struct {
42445	s              *Service
42446	project        string
42447	region         string
42448	forwardingrule *ForwardingRule
42449	urlParams_     gensupport.URLParams
42450	ctx_           context.Context
42451	header_        http.Header
42452}
42453
42454// Insert: Creates a ForwardingRule resource in the specified project
42455// and region using the data included in the request.
42456// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/insert
42457func (r *ForwardingRulesService) Insert(project string, region string, forwardingrule *ForwardingRule) *ForwardingRulesInsertCall {
42458	c := &ForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42459	c.project = project
42460	c.region = region
42461	c.forwardingrule = forwardingrule
42462	return c
42463}
42464
42465// RequestId sets the optional parameter "requestId": An optional
42466// request ID to identify requests. Specify a unique request ID so that
42467// if you must retry your request, the server will know to ignore the
42468// request if it has already been completed.
42469//
42470// For example, consider a situation where you make an initial request
42471// and the request times out. If you make the request again with the
42472// same request ID, the server can check if original operation with the
42473// same request ID was received, and if so, will ignore the second
42474// request. This prevents clients from accidentally creating duplicate
42475// commitments.
42476//
42477// The request ID must be a valid UUID with the exception that zero UUID
42478// is not supported (00000000-0000-0000-0000-000000000000).
42479func (c *ForwardingRulesInsertCall) RequestId(requestId string) *ForwardingRulesInsertCall {
42480	c.urlParams_.Set("requestId", requestId)
42481	return c
42482}
42483
42484// Fields allows partial responses to be retrieved. See
42485// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42486// for more information.
42487func (c *ForwardingRulesInsertCall) Fields(s ...googleapi.Field) *ForwardingRulesInsertCall {
42488	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42489	return c
42490}
42491
42492// Context sets the context to be used in this call's Do method. Any
42493// pending HTTP request will be aborted if the provided context is
42494// canceled.
42495func (c *ForwardingRulesInsertCall) Context(ctx context.Context) *ForwardingRulesInsertCall {
42496	c.ctx_ = ctx
42497	return c
42498}
42499
42500// Header returns an http.Header that can be modified by the caller to
42501// add HTTP headers to the request.
42502func (c *ForwardingRulesInsertCall) Header() http.Header {
42503	if c.header_ == nil {
42504		c.header_ = make(http.Header)
42505	}
42506	return c.header_
42507}
42508
42509func (c *ForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
42510	reqHeaders := make(http.Header)
42511	for k, v := range c.header_ {
42512		reqHeaders[k] = v
42513	}
42514	reqHeaders.Set("User-Agent", c.s.userAgent())
42515	var body io.Reader = nil
42516	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
42517	if err != nil {
42518		return nil, err
42519	}
42520	reqHeaders.Set("Content-Type", "application/json")
42521	c.urlParams_.Set("alt", alt)
42522	c.urlParams_.Set("prettyPrint", "false")
42523	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules")
42524	urls += "?" + c.urlParams_.Encode()
42525	req, err := http.NewRequest("POST", urls, body)
42526	if err != nil {
42527		return nil, err
42528	}
42529	req.Header = reqHeaders
42530	googleapi.Expand(req.URL, map[string]string{
42531		"project": c.project,
42532		"region":  c.region,
42533	})
42534	return gensupport.SendRequest(c.ctx_, c.s.client, req)
42535}
42536
42537// Do executes the "compute.forwardingRules.insert" call.
42538// Exactly one of *Operation or error will be non-nil. Any non-2xx
42539// status code is an error. Response headers are in either
42540// *Operation.ServerResponse.Header or (if a response was returned at
42541// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
42542// to check whether the returned error was because
42543// http.StatusNotModified was returned.
42544func (c *ForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
42545	gensupport.SetOptions(c.urlParams_, opts...)
42546	res, err := c.doRequest("json")
42547	if res != nil && res.StatusCode == http.StatusNotModified {
42548		if res.Body != nil {
42549			res.Body.Close()
42550		}
42551		return nil, &googleapi.Error{
42552			Code:   res.StatusCode,
42553			Header: res.Header,
42554		}
42555	}
42556	if err != nil {
42557		return nil, err
42558	}
42559	defer googleapi.CloseBody(res)
42560	if err := googleapi.CheckResponse(res); err != nil {
42561		return nil, err
42562	}
42563	ret := &Operation{
42564		ServerResponse: googleapi.ServerResponse{
42565			Header:         res.Header,
42566			HTTPStatusCode: res.StatusCode,
42567		},
42568	}
42569	target := &ret
42570	if err := gensupport.DecodeResponse(target, res); err != nil {
42571		return nil, err
42572	}
42573	return ret, nil
42574	// {
42575	//   "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request.",
42576	//   "httpMethod": "POST",
42577	//   "id": "compute.forwardingRules.insert",
42578	//   "parameterOrder": [
42579	//     "project",
42580	//     "region"
42581	//   ],
42582	//   "parameters": {
42583	//     "project": {
42584	//       "description": "Project ID for this request.",
42585	//       "location": "path",
42586	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
42587	//       "required": true,
42588	//       "type": "string"
42589	//     },
42590	//     "region": {
42591	//       "description": "Name of the region scoping this request.",
42592	//       "location": "path",
42593	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
42594	//       "required": true,
42595	//       "type": "string"
42596	//     },
42597	//     "requestId": {
42598	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
42599	//       "location": "query",
42600	//       "type": "string"
42601	//     }
42602	//   },
42603	//   "path": "{project}/regions/{region}/forwardingRules",
42604	//   "request": {
42605	//     "$ref": "ForwardingRule"
42606	//   },
42607	//   "response": {
42608	//     "$ref": "Operation"
42609	//   },
42610	//   "scopes": [
42611	//     "https://www.googleapis.com/auth/cloud-platform",
42612	//     "https://www.googleapis.com/auth/compute"
42613	//   ]
42614	// }
42615
42616}
42617
42618// method id "compute.forwardingRules.list":
42619
42620type ForwardingRulesListCall struct {
42621	s            *Service
42622	project      string
42623	region       string
42624	urlParams_   gensupport.URLParams
42625	ifNoneMatch_ string
42626	ctx_         context.Context
42627	header_      http.Header
42628}
42629
42630// List: Retrieves a list of ForwardingRule resources available to the
42631// specified project and region.
42632// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/list
42633func (r *ForwardingRulesService) List(project string, region string) *ForwardingRulesListCall {
42634	c := &ForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42635	c.project = project
42636	c.region = region
42637	return c
42638}
42639
42640// Filter sets the optional parameter "filter": A filter expression that
42641// filters resources listed in the response. The expression must specify
42642// the field name, a comparison operator, and the value that you want to
42643// use for filtering. The value must be a string, a number, or a
42644// boolean. The comparison operator must be either =, !=, >, or <.
42645//
42646// For example, if you are filtering Compute Engine instances, you can
42647// exclude instances named example-instance by specifying name !=
42648// example-instance.
42649//
42650// You can also filter nested fields. For example, you could specify
42651// scheduling.automaticRestart = false to include instances only if they
42652// are not scheduled for automatic restarts. You can use filtering on
42653// nested fields to filter based on resource labels.
42654//
42655// To filter on multiple expressions, provide each separate expression
42656// within parentheses. For example, (scheduling.automaticRestart = true)
42657// (cpuPlatform = "Intel Skylake"). By default, each expression is an
42658// AND expression. However, you can include AND and OR expressions
42659// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
42660// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
42661// true).
42662func (c *ForwardingRulesListCall) Filter(filter string) *ForwardingRulesListCall {
42663	c.urlParams_.Set("filter", filter)
42664	return c
42665}
42666
42667// MaxResults sets the optional parameter "maxResults": The maximum
42668// number of results per page that should be returned. If the number of
42669// available results is larger than maxResults, Compute Engine returns a
42670// nextPageToken that can be used to get the next page of results in
42671// subsequent list requests. Acceptable values are 0 to 500, inclusive.
42672// (Default: 500)
42673func (c *ForwardingRulesListCall) MaxResults(maxResults int64) *ForwardingRulesListCall {
42674	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
42675	return c
42676}
42677
42678// OrderBy sets the optional parameter "orderBy": Sorts list results by
42679// a certain order. By default, results are returned in alphanumerical
42680// order based on the resource name.
42681//
42682// You can also sort results in descending order based on the creation
42683// timestamp using orderBy="creationTimestamp desc". This sorts results
42684// based on the creationTimestamp field in reverse chronological order
42685// (newest result first). Use this to sort resources like operations so
42686// that the newest operation is returned first.
42687//
42688// Currently, only sorting by name or creationTimestamp desc is
42689// supported.
42690func (c *ForwardingRulesListCall) OrderBy(orderBy string) *ForwardingRulesListCall {
42691	c.urlParams_.Set("orderBy", orderBy)
42692	return c
42693}
42694
42695// PageToken sets the optional parameter "pageToken": Specifies a page
42696// token to use. Set pageToken to the nextPageToken returned by a
42697// previous list request to get the next page of results.
42698func (c *ForwardingRulesListCall) PageToken(pageToken string) *ForwardingRulesListCall {
42699	c.urlParams_.Set("pageToken", pageToken)
42700	return c
42701}
42702
42703// Fields allows partial responses to be retrieved. See
42704// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42705// for more information.
42706func (c *ForwardingRulesListCall) Fields(s ...googleapi.Field) *ForwardingRulesListCall {
42707	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42708	return c
42709}
42710
42711// IfNoneMatch sets the optional parameter which makes the operation
42712// fail if the object's ETag matches the given value. This is useful for
42713// getting updates only after the object has changed since the last
42714// request. Use googleapi.IsNotModified to check whether the response
42715// error from Do is the result of In-None-Match.
42716func (c *ForwardingRulesListCall) IfNoneMatch(entityTag string) *ForwardingRulesListCall {
42717	c.ifNoneMatch_ = entityTag
42718	return c
42719}
42720
42721// Context sets the context to be used in this call's Do method. Any
42722// pending HTTP request will be aborted if the provided context is
42723// canceled.
42724func (c *ForwardingRulesListCall) Context(ctx context.Context) *ForwardingRulesListCall {
42725	c.ctx_ = ctx
42726	return c
42727}
42728
42729// Header returns an http.Header that can be modified by the caller to
42730// add HTTP headers to the request.
42731func (c *ForwardingRulesListCall) Header() http.Header {
42732	if c.header_ == nil {
42733		c.header_ = make(http.Header)
42734	}
42735	return c.header_
42736}
42737
42738func (c *ForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
42739	reqHeaders := make(http.Header)
42740	for k, v := range c.header_ {
42741		reqHeaders[k] = v
42742	}
42743	reqHeaders.Set("User-Agent", c.s.userAgent())
42744	if c.ifNoneMatch_ != "" {
42745		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
42746	}
42747	var body io.Reader = nil
42748	c.urlParams_.Set("alt", alt)
42749	c.urlParams_.Set("prettyPrint", "false")
42750	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules")
42751	urls += "?" + c.urlParams_.Encode()
42752	req, err := http.NewRequest("GET", urls, body)
42753	if err != nil {
42754		return nil, err
42755	}
42756	req.Header = reqHeaders
42757	googleapi.Expand(req.URL, map[string]string{
42758		"project": c.project,
42759		"region":  c.region,
42760	})
42761	return gensupport.SendRequest(c.ctx_, c.s.client, req)
42762}
42763
42764// Do executes the "compute.forwardingRules.list" call.
42765// Exactly one of *ForwardingRuleList or error will be non-nil. Any
42766// non-2xx status code is an error. Response headers are in either
42767// *ForwardingRuleList.ServerResponse.Header or (if a response was
42768// returned at all) in error.(*googleapi.Error).Header. Use
42769// googleapi.IsNotModified to check whether the returned error was
42770// because http.StatusNotModified was returned.
42771func (c *ForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
42772	gensupport.SetOptions(c.urlParams_, opts...)
42773	res, err := c.doRequest("json")
42774	if res != nil && res.StatusCode == http.StatusNotModified {
42775		if res.Body != nil {
42776			res.Body.Close()
42777		}
42778		return nil, &googleapi.Error{
42779			Code:   res.StatusCode,
42780			Header: res.Header,
42781		}
42782	}
42783	if err != nil {
42784		return nil, err
42785	}
42786	defer googleapi.CloseBody(res)
42787	if err := googleapi.CheckResponse(res); err != nil {
42788		return nil, err
42789	}
42790	ret := &ForwardingRuleList{
42791		ServerResponse: googleapi.ServerResponse{
42792			Header:         res.Header,
42793			HTTPStatusCode: res.StatusCode,
42794		},
42795	}
42796	target := &ret
42797	if err := gensupport.DecodeResponse(target, res); err != nil {
42798		return nil, err
42799	}
42800	return ret, nil
42801	// {
42802	//   "description": "Retrieves a list of ForwardingRule resources available to the specified project and region.",
42803	//   "httpMethod": "GET",
42804	//   "id": "compute.forwardingRules.list",
42805	//   "parameterOrder": [
42806	//     "project",
42807	//     "region"
42808	//   ],
42809	//   "parameters": {
42810	//     "filter": {
42811	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
42812	//       "location": "query",
42813	//       "type": "string"
42814	//     },
42815	//     "maxResults": {
42816	//       "default": "500",
42817	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
42818	//       "format": "uint32",
42819	//       "location": "query",
42820	//       "minimum": "0",
42821	//       "type": "integer"
42822	//     },
42823	//     "orderBy": {
42824	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
42825	//       "location": "query",
42826	//       "type": "string"
42827	//     },
42828	//     "pageToken": {
42829	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
42830	//       "location": "query",
42831	//       "type": "string"
42832	//     },
42833	//     "project": {
42834	//       "description": "Project ID for this request.",
42835	//       "location": "path",
42836	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
42837	//       "required": true,
42838	//       "type": "string"
42839	//     },
42840	//     "region": {
42841	//       "description": "Name of the region scoping this request.",
42842	//       "location": "path",
42843	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
42844	//       "required": true,
42845	//       "type": "string"
42846	//     }
42847	//   },
42848	//   "path": "{project}/regions/{region}/forwardingRules",
42849	//   "response": {
42850	//     "$ref": "ForwardingRuleList"
42851	//   },
42852	//   "scopes": [
42853	//     "https://www.googleapis.com/auth/cloud-platform",
42854	//     "https://www.googleapis.com/auth/compute",
42855	//     "https://www.googleapis.com/auth/compute.readonly"
42856	//   ]
42857	// }
42858
42859}
42860
42861// Pages invokes f for each page of results.
42862// A non-nil error returned from f will halt the iteration.
42863// The provided context supersedes any context provided to the Context method.
42864func (c *ForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
42865	c.ctx_ = ctx
42866	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
42867	for {
42868		x, err := c.Do()
42869		if err != nil {
42870			return err
42871		}
42872		if err := f(x); err != nil {
42873			return err
42874		}
42875		if x.NextPageToken == "" {
42876			return nil
42877		}
42878		c.PageToken(x.NextPageToken)
42879	}
42880}
42881
42882// method id "compute.forwardingRules.setTarget":
42883
42884type ForwardingRulesSetTargetCall struct {
42885	s               *Service
42886	project         string
42887	region          string
42888	forwardingRule  string
42889	targetreference *TargetReference
42890	urlParams_      gensupport.URLParams
42891	ctx_            context.Context
42892	header_         http.Header
42893}
42894
42895// SetTarget: Changes target URL for forwarding rule. The new target
42896// should be of the same type as the old target.
42897// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/setTarget
42898func (r *ForwardingRulesService) SetTarget(project string, region string, forwardingRule string, targetreference *TargetReference) *ForwardingRulesSetTargetCall {
42899	c := &ForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42900	c.project = project
42901	c.region = region
42902	c.forwardingRule = forwardingRule
42903	c.targetreference = targetreference
42904	return c
42905}
42906
42907// RequestId sets the optional parameter "requestId": An optional
42908// request ID to identify requests. Specify a unique request ID so that
42909// if you must retry your request, the server will know to ignore the
42910// request if it has already been completed.
42911//
42912// For example, consider a situation where you make an initial request
42913// and the request times out. If you make the request again with the
42914// same request ID, the server can check if original operation with the
42915// same request ID was received, and if so, will ignore the second
42916// request. This prevents clients from accidentally creating duplicate
42917// commitments.
42918//
42919// The request ID must be a valid UUID with the exception that zero UUID
42920// is not supported (00000000-0000-0000-0000-000000000000).
42921func (c *ForwardingRulesSetTargetCall) RequestId(requestId string) *ForwardingRulesSetTargetCall {
42922	c.urlParams_.Set("requestId", requestId)
42923	return c
42924}
42925
42926// Fields allows partial responses to be retrieved. See
42927// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42928// for more information.
42929func (c *ForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *ForwardingRulesSetTargetCall {
42930	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42931	return c
42932}
42933
42934// Context sets the context to be used in this call's Do method. Any
42935// pending HTTP request will be aborted if the provided context is
42936// canceled.
42937func (c *ForwardingRulesSetTargetCall) Context(ctx context.Context) *ForwardingRulesSetTargetCall {
42938	c.ctx_ = ctx
42939	return c
42940}
42941
42942// Header returns an http.Header that can be modified by the caller to
42943// add HTTP headers to the request.
42944func (c *ForwardingRulesSetTargetCall) Header() http.Header {
42945	if c.header_ == nil {
42946		c.header_ = make(http.Header)
42947	}
42948	return c.header_
42949}
42950
42951func (c *ForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
42952	reqHeaders := make(http.Header)
42953	for k, v := range c.header_ {
42954		reqHeaders[k] = v
42955	}
42956	reqHeaders.Set("User-Agent", c.s.userAgent())
42957	var body io.Reader = nil
42958	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
42959	if err != nil {
42960		return nil, err
42961	}
42962	reqHeaders.Set("Content-Type", "application/json")
42963	c.urlParams_.Set("alt", alt)
42964	c.urlParams_.Set("prettyPrint", "false")
42965	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget")
42966	urls += "?" + c.urlParams_.Encode()
42967	req, err := http.NewRequest("POST", urls, body)
42968	if err != nil {
42969		return nil, err
42970	}
42971	req.Header = reqHeaders
42972	googleapi.Expand(req.URL, map[string]string{
42973		"project":        c.project,
42974		"region":         c.region,
42975		"forwardingRule": c.forwardingRule,
42976	})
42977	return gensupport.SendRequest(c.ctx_, c.s.client, req)
42978}
42979
42980// Do executes the "compute.forwardingRules.setTarget" call.
42981// Exactly one of *Operation or error will be non-nil. Any non-2xx
42982// status code is an error. Response headers are in either
42983// *Operation.ServerResponse.Header or (if a response was returned at
42984// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
42985// to check whether the returned error was because
42986// http.StatusNotModified was returned.
42987func (c *ForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
42988	gensupport.SetOptions(c.urlParams_, opts...)
42989	res, err := c.doRequest("json")
42990	if res != nil && res.StatusCode == http.StatusNotModified {
42991		if res.Body != nil {
42992			res.Body.Close()
42993		}
42994		return nil, &googleapi.Error{
42995			Code:   res.StatusCode,
42996			Header: res.Header,
42997		}
42998	}
42999	if err != nil {
43000		return nil, err
43001	}
43002	defer googleapi.CloseBody(res)
43003	if err := googleapi.CheckResponse(res); err != nil {
43004		return nil, err
43005	}
43006	ret := &Operation{
43007		ServerResponse: googleapi.ServerResponse{
43008			Header:         res.Header,
43009			HTTPStatusCode: res.StatusCode,
43010		},
43011	}
43012	target := &ret
43013	if err := gensupport.DecodeResponse(target, res); err != nil {
43014		return nil, err
43015	}
43016	return ret, nil
43017	// {
43018	//   "description": "Changes target URL for forwarding rule. The new target should be of the same type as the old target.",
43019	//   "httpMethod": "POST",
43020	//   "id": "compute.forwardingRules.setTarget",
43021	//   "parameterOrder": [
43022	//     "project",
43023	//     "region",
43024	//     "forwardingRule"
43025	//   ],
43026	//   "parameters": {
43027	//     "forwardingRule": {
43028	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
43029	//       "location": "path",
43030	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
43031	//       "required": true,
43032	//       "type": "string"
43033	//     },
43034	//     "project": {
43035	//       "description": "Project ID for this request.",
43036	//       "location": "path",
43037	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43038	//       "required": true,
43039	//       "type": "string"
43040	//     },
43041	//     "region": {
43042	//       "description": "Name of the region scoping this request.",
43043	//       "location": "path",
43044	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
43045	//       "required": true,
43046	//       "type": "string"
43047	//     },
43048	//     "requestId": {
43049	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
43050	//       "location": "query",
43051	//       "type": "string"
43052	//     }
43053	//   },
43054	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget",
43055	//   "request": {
43056	//     "$ref": "TargetReference"
43057	//   },
43058	//   "response": {
43059	//     "$ref": "Operation"
43060	//   },
43061	//   "scopes": [
43062	//     "https://www.googleapis.com/auth/cloud-platform",
43063	//     "https://www.googleapis.com/auth/compute"
43064	//   ]
43065	// }
43066
43067}
43068
43069// method id "compute.globalAddresses.delete":
43070
43071type GlobalAddressesDeleteCall struct {
43072	s          *Service
43073	project    string
43074	address    string
43075	urlParams_ gensupport.URLParams
43076	ctx_       context.Context
43077	header_    http.Header
43078}
43079
43080// Delete: Deletes the specified address resource.
43081// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/delete
43082func (r *GlobalAddressesService) Delete(project string, address string) *GlobalAddressesDeleteCall {
43083	c := &GlobalAddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43084	c.project = project
43085	c.address = address
43086	return c
43087}
43088
43089// RequestId sets the optional parameter "requestId": An optional
43090// request ID to identify requests. Specify a unique request ID so that
43091// if you must retry your request, the server will know to ignore the
43092// request if it has already been completed.
43093//
43094// For example, consider a situation where you make an initial request
43095// and the request times out. If you make the request again with the
43096// same request ID, the server can check if original operation with the
43097// same request ID was received, and if so, will ignore the second
43098// request. This prevents clients from accidentally creating duplicate
43099// commitments.
43100//
43101// The request ID must be a valid UUID with the exception that zero UUID
43102// is not supported (00000000-0000-0000-0000-000000000000).
43103func (c *GlobalAddressesDeleteCall) RequestId(requestId string) *GlobalAddressesDeleteCall {
43104	c.urlParams_.Set("requestId", requestId)
43105	return c
43106}
43107
43108// Fields allows partial responses to be retrieved. See
43109// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43110// for more information.
43111func (c *GlobalAddressesDeleteCall) Fields(s ...googleapi.Field) *GlobalAddressesDeleteCall {
43112	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43113	return c
43114}
43115
43116// Context sets the context to be used in this call's Do method. Any
43117// pending HTTP request will be aborted if the provided context is
43118// canceled.
43119func (c *GlobalAddressesDeleteCall) Context(ctx context.Context) *GlobalAddressesDeleteCall {
43120	c.ctx_ = ctx
43121	return c
43122}
43123
43124// Header returns an http.Header that can be modified by the caller to
43125// add HTTP headers to the request.
43126func (c *GlobalAddressesDeleteCall) Header() http.Header {
43127	if c.header_ == nil {
43128		c.header_ = make(http.Header)
43129	}
43130	return c.header_
43131}
43132
43133func (c *GlobalAddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
43134	reqHeaders := make(http.Header)
43135	for k, v := range c.header_ {
43136		reqHeaders[k] = v
43137	}
43138	reqHeaders.Set("User-Agent", c.s.userAgent())
43139	var body io.Reader = nil
43140	c.urlParams_.Set("alt", alt)
43141	c.urlParams_.Set("prettyPrint", "false")
43142	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{address}")
43143	urls += "?" + c.urlParams_.Encode()
43144	req, err := http.NewRequest("DELETE", urls, body)
43145	if err != nil {
43146		return nil, err
43147	}
43148	req.Header = reqHeaders
43149	googleapi.Expand(req.URL, map[string]string{
43150		"project": c.project,
43151		"address": c.address,
43152	})
43153	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43154}
43155
43156// Do executes the "compute.globalAddresses.delete" call.
43157// Exactly one of *Operation or error will be non-nil. Any non-2xx
43158// status code is an error. Response headers are in either
43159// *Operation.ServerResponse.Header or (if a response was returned at
43160// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
43161// to check whether the returned error was because
43162// http.StatusNotModified was returned.
43163func (c *GlobalAddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
43164	gensupport.SetOptions(c.urlParams_, opts...)
43165	res, err := c.doRequest("json")
43166	if res != nil && res.StatusCode == http.StatusNotModified {
43167		if res.Body != nil {
43168			res.Body.Close()
43169		}
43170		return nil, &googleapi.Error{
43171			Code:   res.StatusCode,
43172			Header: res.Header,
43173		}
43174	}
43175	if err != nil {
43176		return nil, err
43177	}
43178	defer googleapi.CloseBody(res)
43179	if err := googleapi.CheckResponse(res); err != nil {
43180		return nil, err
43181	}
43182	ret := &Operation{
43183		ServerResponse: googleapi.ServerResponse{
43184			Header:         res.Header,
43185			HTTPStatusCode: res.StatusCode,
43186		},
43187	}
43188	target := &ret
43189	if err := gensupport.DecodeResponse(target, res); err != nil {
43190		return nil, err
43191	}
43192	return ret, nil
43193	// {
43194	//   "description": "Deletes the specified address resource.",
43195	//   "httpMethod": "DELETE",
43196	//   "id": "compute.globalAddresses.delete",
43197	//   "parameterOrder": [
43198	//     "project",
43199	//     "address"
43200	//   ],
43201	//   "parameters": {
43202	//     "address": {
43203	//       "description": "Name of the address resource to delete.",
43204	//       "location": "path",
43205	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
43206	//       "required": true,
43207	//       "type": "string"
43208	//     },
43209	//     "project": {
43210	//       "description": "Project ID for this request.",
43211	//       "location": "path",
43212	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43213	//       "required": true,
43214	//       "type": "string"
43215	//     },
43216	//     "requestId": {
43217	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
43218	//       "location": "query",
43219	//       "type": "string"
43220	//     }
43221	//   },
43222	//   "path": "{project}/global/addresses/{address}",
43223	//   "response": {
43224	//     "$ref": "Operation"
43225	//   },
43226	//   "scopes": [
43227	//     "https://www.googleapis.com/auth/cloud-platform",
43228	//     "https://www.googleapis.com/auth/compute"
43229	//   ]
43230	// }
43231
43232}
43233
43234// method id "compute.globalAddresses.get":
43235
43236type GlobalAddressesGetCall struct {
43237	s            *Service
43238	project      string
43239	address      string
43240	urlParams_   gensupport.URLParams
43241	ifNoneMatch_ string
43242	ctx_         context.Context
43243	header_      http.Header
43244}
43245
43246// Get: Returns the specified address resource. Gets a list of available
43247// addresses by making a list() request.
43248// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/get
43249func (r *GlobalAddressesService) Get(project string, address string) *GlobalAddressesGetCall {
43250	c := &GlobalAddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43251	c.project = project
43252	c.address = address
43253	return c
43254}
43255
43256// Fields allows partial responses to be retrieved. See
43257// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43258// for more information.
43259func (c *GlobalAddressesGetCall) Fields(s ...googleapi.Field) *GlobalAddressesGetCall {
43260	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43261	return c
43262}
43263
43264// IfNoneMatch sets the optional parameter which makes the operation
43265// fail if the object's ETag matches the given value. This is useful for
43266// getting updates only after the object has changed since the last
43267// request. Use googleapi.IsNotModified to check whether the response
43268// error from Do is the result of In-None-Match.
43269func (c *GlobalAddressesGetCall) IfNoneMatch(entityTag string) *GlobalAddressesGetCall {
43270	c.ifNoneMatch_ = entityTag
43271	return c
43272}
43273
43274// Context sets the context to be used in this call's Do method. Any
43275// pending HTTP request will be aborted if the provided context is
43276// canceled.
43277func (c *GlobalAddressesGetCall) Context(ctx context.Context) *GlobalAddressesGetCall {
43278	c.ctx_ = ctx
43279	return c
43280}
43281
43282// Header returns an http.Header that can be modified by the caller to
43283// add HTTP headers to the request.
43284func (c *GlobalAddressesGetCall) Header() http.Header {
43285	if c.header_ == nil {
43286		c.header_ = make(http.Header)
43287	}
43288	return c.header_
43289}
43290
43291func (c *GlobalAddressesGetCall) doRequest(alt string) (*http.Response, error) {
43292	reqHeaders := make(http.Header)
43293	for k, v := range c.header_ {
43294		reqHeaders[k] = v
43295	}
43296	reqHeaders.Set("User-Agent", c.s.userAgent())
43297	if c.ifNoneMatch_ != "" {
43298		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
43299	}
43300	var body io.Reader = nil
43301	c.urlParams_.Set("alt", alt)
43302	c.urlParams_.Set("prettyPrint", "false")
43303	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{address}")
43304	urls += "?" + c.urlParams_.Encode()
43305	req, err := http.NewRequest("GET", urls, body)
43306	if err != nil {
43307		return nil, err
43308	}
43309	req.Header = reqHeaders
43310	googleapi.Expand(req.URL, map[string]string{
43311		"project": c.project,
43312		"address": c.address,
43313	})
43314	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43315}
43316
43317// Do executes the "compute.globalAddresses.get" call.
43318// Exactly one of *Address or error will be non-nil. Any non-2xx status
43319// code is an error. Response headers are in either
43320// *Address.ServerResponse.Header or (if a response was returned at all)
43321// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
43322// check whether the returned error was because http.StatusNotModified
43323// was returned.
43324func (c *GlobalAddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
43325	gensupport.SetOptions(c.urlParams_, opts...)
43326	res, err := c.doRequest("json")
43327	if res != nil && res.StatusCode == http.StatusNotModified {
43328		if res.Body != nil {
43329			res.Body.Close()
43330		}
43331		return nil, &googleapi.Error{
43332			Code:   res.StatusCode,
43333			Header: res.Header,
43334		}
43335	}
43336	if err != nil {
43337		return nil, err
43338	}
43339	defer googleapi.CloseBody(res)
43340	if err := googleapi.CheckResponse(res); err != nil {
43341		return nil, err
43342	}
43343	ret := &Address{
43344		ServerResponse: googleapi.ServerResponse{
43345			Header:         res.Header,
43346			HTTPStatusCode: res.StatusCode,
43347		},
43348	}
43349	target := &ret
43350	if err := gensupport.DecodeResponse(target, res); err != nil {
43351		return nil, err
43352	}
43353	return ret, nil
43354	// {
43355	//   "description": "Returns the specified address resource. Gets a list of available addresses by making a list() request.",
43356	//   "httpMethod": "GET",
43357	//   "id": "compute.globalAddresses.get",
43358	//   "parameterOrder": [
43359	//     "project",
43360	//     "address"
43361	//   ],
43362	//   "parameters": {
43363	//     "address": {
43364	//       "description": "Name of the address resource to return.",
43365	//       "location": "path",
43366	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
43367	//       "required": true,
43368	//       "type": "string"
43369	//     },
43370	//     "project": {
43371	//       "description": "Project ID for this request.",
43372	//       "location": "path",
43373	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43374	//       "required": true,
43375	//       "type": "string"
43376	//     }
43377	//   },
43378	//   "path": "{project}/global/addresses/{address}",
43379	//   "response": {
43380	//     "$ref": "Address"
43381	//   },
43382	//   "scopes": [
43383	//     "https://www.googleapis.com/auth/cloud-platform",
43384	//     "https://www.googleapis.com/auth/compute",
43385	//     "https://www.googleapis.com/auth/compute.readonly"
43386	//   ]
43387	// }
43388
43389}
43390
43391// method id "compute.globalAddresses.insert":
43392
43393type GlobalAddressesInsertCall struct {
43394	s          *Service
43395	project    string
43396	address    *Address
43397	urlParams_ gensupport.URLParams
43398	ctx_       context.Context
43399	header_    http.Header
43400}
43401
43402// Insert: Creates an address resource in the specified project using
43403// the data included in the request.
43404// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/insert
43405func (r *GlobalAddressesService) Insert(project string, address *Address) *GlobalAddressesInsertCall {
43406	c := &GlobalAddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43407	c.project = project
43408	c.address = address
43409	return c
43410}
43411
43412// RequestId sets the optional parameter "requestId": An optional
43413// request ID to identify requests. Specify a unique request ID so that
43414// if you must retry your request, the server will know to ignore the
43415// request if it has already been completed.
43416//
43417// For example, consider a situation where you make an initial request
43418// and the request times out. If you make the request again with the
43419// same request ID, the server can check if original operation with the
43420// same request ID was received, and if so, will ignore the second
43421// request. This prevents clients from accidentally creating duplicate
43422// commitments.
43423//
43424// The request ID must be a valid UUID with the exception that zero UUID
43425// is not supported (00000000-0000-0000-0000-000000000000).
43426func (c *GlobalAddressesInsertCall) RequestId(requestId string) *GlobalAddressesInsertCall {
43427	c.urlParams_.Set("requestId", requestId)
43428	return c
43429}
43430
43431// Fields allows partial responses to be retrieved. See
43432// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43433// for more information.
43434func (c *GlobalAddressesInsertCall) Fields(s ...googleapi.Field) *GlobalAddressesInsertCall {
43435	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43436	return c
43437}
43438
43439// Context sets the context to be used in this call's Do method. Any
43440// pending HTTP request will be aborted if the provided context is
43441// canceled.
43442func (c *GlobalAddressesInsertCall) Context(ctx context.Context) *GlobalAddressesInsertCall {
43443	c.ctx_ = ctx
43444	return c
43445}
43446
43447// Header returns an http.Header that can be modified by the caller to
43448// add HTTP headers to the request.
43449func (c *GlobalAddressesInsertCall) Header() http.Header {
43450	if c.header_ == nil {
43451		c.header_ = make(http.Header)
43452	}
43453	return c.header_
43454}
43455
43456func (c *GlobalAddressesInsertCall) doRequest(alt string) (*http.Response, error) {
43457	reqHeaders := make(http.Header)
43458	for k, v := range c.header_ {
43459		reqHeaders[k] = v
43460	}
43461	reqHeaders.Set("User-Agent", c.s.userAgent())
43462	var body io.Reader = nil
43463	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
43464	if err != nil {
43465		return nil, err
43466	}
43467	reqHeaders.Set("Content-Type", "application/json")
43468	c.urlParams_.Set("alt", alt)
43469	c.urlParams_.Set("prettyPrint", "false")
43470	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses")
43471	urls += "?" + c.urlParams_.Encode()
43472	req, err := http.NewRequest("POST", urls, body)
43473	if err != nil {
43474		return nil, err
43475	}
43476	req.Header = reqHeaders
43477	googleapi.Expand(req.URL, map[string]string{
43478		"project": c.project,
43479	})
43480	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43481}
43482
43483// Do executes the "compute.globalAddresses.insert" call.
43484// Exactly one of *Operation or error will be non-nil. Any non-2xx
43485// status code is an error. Response headers are in either
43486// *Operation.ServerResponse.Header or (if a response was returned at
43487// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
43488// to check whether the returned error was because
43489// http.StatusNotModified was returned.
43490func (c *GlobalAddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
43491	gensupport.SetOptions(c.urlParams_, opts...)
43492	res, err := c.doRequest("json")
43493	if res != nil && res.StatusCode == http.StatusNotModified {
43494		if res.Body != nil {
43495			res.Body.Close()
43496		}
43497		return nil, &googleapi.Error{
43498			Code:   res.StatusCode,
43499			Header: res.Header,
43500		}
43501	}
43502	if err != nil {
43503		return nil, err
43504	}
43505	defer googleapi.CloseBody(res)
43506	if err := googleapi.CheckResponse(res); err != nil {
43507		return nil, err
43508	}
43509	ret := &Operation{
43510		ServerResponse: googleapi.ServerResponse{
43511			Header:         res.Header,
43512			HTTPStatusCode: res.StatusCode,
43513		},
43514	}
43515	target := &ret
43516	if err := gensupport.DecodeResponse(target, res); err != nil {
43517		return nil, err
43518	}
43519	return ret, nil
43520	// {
43521	//   "description": "Creates an address resource in the specified project using the data included in the request.",
43522	//   "httpMethod": "POST",
43523	//   "id": "compute.globalAddresses.insert",
43524	//   "parameterOrder": [
43525	//     "project"
43526	//   ],
43527	//   "parameters": {
43528	//     "project": {
43529	//       "description": "Project ID for this request.",
43530	//       "location": "path",
43531	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43532	//       "required": true,
43533	//       "type": "string"
43534	//     },
43535	//     "requestId": {
43536	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
43537	//       "location": "query",
43538	//       "type": "string"
43539	//     }
43540	//   },
43541	//   "path": "{project}/global/addresses",
43542	//   "request": {
43543	//     "$ref": "Address"
43544	//   },
43545	//   "response": {
43546	//     "$ref": "Operation"
43547	//   },
43548	//   "scopes": [
43549	//     "https://www.googleapis.com/auth/cloud-platform",
43550	//     "https://www.googleapis.com/auth/compute"
43551	//   ]
43552	// }
43553
43554}
43555
43556// method id "compute.globalAddresses.list":
43557
43558type GlobalAddressesListCall struct {
43559	s            *Service
43560	project      string
43561	urlParams_   gensupport.URLParams
43562	ifNoneMatch_ string
43563	ctx_         context.Context
43564	header_      http.Header
43565}
43566
43567// List: Retrieves a list of global addresses.
43568// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/list
43569func (r *GlobalAddressesService) List(project string) *GlobalAddressesListCall {
43570	c := &GlobalAddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43571	c.project = project
43572	return c
43573}
43574
43575// Filter sets the optional parameter "filter": A filter expression that
43576// filters resources listed in the response. The expression must specify
43577// the field name, a comparison operator, and the value that you want to
43578// use for filtering. The value must be a string, a number, or a
43579// boolean. The comparison operator must be either =, !=, >, or <.
43580//
43581// For example, if you are filtering Compute Engine instances, you can
43582// exclude instances named example-instance by specifying name !=
43583// example-instance.
43584//
43585// You can also filter nested fields. For example, you could specify
43586// scheduling.automaticRestart = false to include instances only if they
43587// are not scheduled for automatic restarts. You can use filtering on
43588// nested fields to filter based on resource labels.
43589//
43590// To filter on multiple expressions, provide each separate expression
43591// within parentheses. For example, (scheduling.automaticRestart = true)
43592// (cpuPlatform = "Intel Skylake"). By default, each expression is an
43593// AND expression. However, you can include AND and OR expressions
43594// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
43595// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
43596// true).
43597func (c *GlobalAddressesListCall) Filter(filter string) *GlobalAddressesListCall {
43598	c.urlParams_.Set("filter", filter)
43599	return c
43600}
43601
43602// MaxResults sets the optional parameter "maxResults": The maximum
43603// number of results per page that should be returned. If the number of
43604// available results is larger than maxResults, Compute Engine returns a
43605// nextPageToken that can be used to get the next page of results in
43606// subsequent list requests. Acceptable values are 0 to 500, inclusive.
43607// (Default: 500)
43608func (c *GlobalAddressesListCall) MaxResults(maxResults int64) *GlobalAddressesListCall {
43609	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
43610	return c
43611}
43612
43613// OrderBy sets the optional parameter "orderBy": Sorts list results by
43614// a certain order. By default, results are returned in alphanumerical
43615// order based on the resource name.
43616//
43617// You can also sort results in descending order based on the creation
43618// timestamp using orderBy="creationTimestamp desc". This sorts results
43619// based on the creationTimestamp field in reverse chronological order
43620// (newest result first). Use this to sort resources like operations so
43621// that the newest operation is returned first.
43622//
43623// Currently, only sorting by name or creationTimestamp desc is
43624// supported.
43625func (c *GlobalAddressesListCall) OrderBy(orderBy string) *GlobalAddressesListCall {
43626	c.urlParams_.Set("orderBy", orderBy)
43627	return c
43628}
43629
43630// PageToken sets the optional parameter "pageToken": Specifies a page
43631// token to use. Set pageToken to the nextPageToken returned by a
43632// previous list request to get the next page of results.
43633func (c *GlobalAddressesListCall) PageToken(pageToken string) *GlobalAddressesListCall {
43634	c.urlParams_.Set("pageToken", pageToken)
43635	return c
43636}
43637
43638// Fields allows partial responses to be retrieved. See
43639// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43640// for more information.
43641func (c *GlobalAddressesListCall) Fields(s ...googleapi.Field) *GlobalAddressesListCall {
43642	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43643	return c
43644}
43645
43646// IfNoneMatch sets the optional parameter which makes the operation
43647// fail if the object's ETag matches the given value. This is useful for
43648// getting updates only after the object has changed since the last
43649// request. Use googleapi.IsNotModified to check whether the response
43650// error from Do is the result of In-None-Match.
43651func (c *GlobalAddressesListCall) IfNoneMatch(entityTag string) *GlobalAddressesListCall {
43652	c.ifNoneMatch_ = entityTag
43653	return c
43654}
43655
43656// Context sets the context to be used in this call's Do method. Any
43657// pending HTTP request will be aborted if the provided context is
43658// canceled.
43659func (c *GlobalAddressesListCall) Context(ctx context.Context) *GlobalAddressesListCall {
43660	c.ctx_ = ctx
43661	return c
43662}
43663
43664// Header returns an http.Header that can be modified by the caller to
43665// add HTTP headers to the request.
43666func (c *GlobalAddressesListCall) Header() http.Header {
43667	if c.header_ == nil {
43668		c.header_ = make(http.Header)
43669	}
43670	return c.header_
43671}
43672
43673func (c *GlobalAddressesListCall) doRequest(alt string) (*http.Response, error) {
43674	reqHeaders := make(http.Header)
43675	for k, v := range c.header_ {
43676		reqHeaders[k] = v
43677	}
43678	reqHeaders.Set("User-Agent", c.s.userAgent())
43679	if c.ifNoneMatch_ != "" {
43680		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
43681	}
43682	var body io.Reader = nil
43683	c.urlParams_.Set("alt", alt)
43684	c.urlParams_.Set("prettyPrint", "false")
43685	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses")
43686	urls += "?" + c.urlParams_.Encode()
43687	req, err := http.NewRequest("GET", urls, body)
43688	if err != nil {
43689		return nil, err
43690	}
43691	req.Header = reqHeaders
43692	googleapi.Expand(req.URL, map[string]string{
43693		"project": c.project,
43694	})
43695	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43696}
43697
43698// Do executes the "compute.globalAddresses.list" call.
43699// Exactly one of *AddressList or error will be non-nil. Any non-2xx
43700// status code is an error. Response headers are in either
43701// *AddressList.ServerResponse.Header or (if a response was returned at
43702// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
43703// to check whether the returned error was because
43704// http.StatusNotModified was returned.
43705func (c *GlobalAddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
43706	gensupport.SetOptions(c.urlParams_, opts...)
43707	res, err := c.doRequest("json")
43708	if res != nil && res.StatusCode == http.StatusNotModified {
43709		if res.Body != nil {
43710			res.Body.Close()
43711		}
43712		return nil, &googleapi.Error{
43713			Code:   res.StatusCode,
43714			Header: res.Header,
43715		}
43716	}
43717	if err != nil {
43718		return nil, err
43719	}
43720	defer googleapi.CloseBody(res)
43721	if err := googleapi.CheckResponse(res); err != nil {
43722		return nil, err
43723	}
43724	ret := &AddressList{
43725		ServerResponse: googleapi.ServerResponse{
43726			Header:         res.Header,
43727			HTTPStatusCode: res.StatusCode,
43728		},
43729	}
43730	target := &ret
43731	if err := gensupport.DecodeResponse(target, res); err != nil {
43732		return nil, err
43733	}
43734	return ret, nil
43735	// {
43736	//   "description": "Retrieves a list of global addresses.",
43737	//   "httpMethod": "GET",
43738	//   "id": "compute.globalAddresses.list",
43739	//   "parameterOrder": [
43740	//     "project"
43741	//   ],
43742	//   "parameters": {
43743	//     "filter": {
43744	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
43745	//       "location": "query",
43746	//       "type": "string"
43747	//     },
43748	//     "maxResults": {
43749	//       "default": "500",
43750	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
43751	//       "format": "uint32",
43752	//       "location": "query",
43753	//       "minimum": "0",
43754	//       "type": "integer"
43755	//     },
43756	//     "orderBy": {
43757	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
43758	//       "location": "query",
43759	//       "type": "string"
43760	//     },
43761	//     "pageToken": {
43762	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
43763	//       "location": "query",
43764	//       "type": "string"
43765	//     },
43766	//     "project": {
43767	//       "description": "Project ID for this request.",
43768	//       "location": "path",
43769	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43770	//       "required": true,
43771	//       "type": "string"
43772	//     }
43773	//   },
43774	//   "path": "{project}/global/addresses",
43775	//   "response": {
43776	//     "$ref": "AddressList"
43777	//   },
43778	//   "scopes": [
43779	//     "https://www.googleapis.com/auth/cloud-platform",
43780	//     "https://www.googleapis.com/auth/compute",
43781	//     "https://www.googleapis.com/auth/compute.readonly"
43782	//   ]
43783	// }
43784
43785}
43786
43787// Pages invokes f for each page of results.
43788// A non-nil error returned from f will halt the iteration.
43789// The provided context supersedes any context provided to the Context method.
43790func (c *GlobalAddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
43791	c.ctx_ = ctx
43792	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
43793	for {
43794		x, err := c.Do()
43795		if err != nil {
43796			return err
43797		}
43798		if err := f(x); err != nil {
43799			return err
43800		}
43801		if x.NextPageToken == "" {
43802			return nil
43803		}
43804		c.PageToken(x.NextPageToken)
43805	}
43806}
43807
43808// method id "compute.globalForwardingRules.delete":
43809
43810type GlobalForwardingRulesDeleteCall struct {
43811	s              *Service
43812	project        string
43813	forwardingRule string
43814	urlParams_     gensupport.URLParams
43815	ctx_           context.Context
43816	header_        http.Header
43817}
43818
43819// Delete: Deletes the specified GlobalForwardingRule resource.
43820// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/delete
43821func (r *GlobalForwardingRulesService) Delete(project string, forwardingRule string) *GlobalForwardingRulesDeleteCall {
43822	c := &GlobalForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43823	c.project = project
43824	c.forwardingRule = forwardingRule
43825	return c
43826}
43827
43828// RequestId sets the optional parameter "requestId": An optional
43829// request ID to identify requests. Specify a unique request ID so that
43830// if you must retry your request, the server will know to ignore the
43831// request if it has already been completed.
43832//
43833// For example, consider a situation where you make an initial request
43834// and the request times out. If you make the request again with the
43835// same request ID, the server can check if original operation with the
43836// same request ID was received, and if so, will ignore the second
43837// request. This prevents clients from accidentally creating duplicate
43838// commitments.
43839//
43840// The request ID must be a valid UUID with the exception that zero UUID
43841// is not supported (00000000-0000-0000-0000-000000000000).
43842func (c *GlobalForwardingRulesDeleteCall) RequestId(requestId string) *GlobalForwardingRulesDeleteCall {
43843	c.urlParams_.Set("requestId", requestId)
43844	return c
43845}
43846
43847// Fields allows partial responses to be retrieved. See
43848// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43849// for more information.
43850func (c *GlobalForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesDeleteCall {
43851	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43852	return c
43853}
43854
43855// Context sets the context to be used in this call's Do method. Any
43856// pending HTTP request will be aborted if the provided context is
43857// canceled.
43858func (c *GlobalForwardingRulesDeleteCall) Context(ctx context.Context) *GlobalForwardingRulesDeleteCall {
43859	c.ctx_ = ctx
43860	return c
43861}
43862
43863// Header returns an http.Header that can be modified by the caller to
43864// add HTTP headers to the request.
43865func (c *GlobalForwardingRulesDeleteCall) Header() http.Header {
43866	if c.header_ == nil {
43867		c.header_ = make(http.Header)
43868	}
43869	return c.header_
43870}
43871
43872func (c *GlobalForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
43873	reqHeaders := make(http.Header)
43874	for k, v := range c.header_ {
43875		reqHeaders[k] = v
43876	}
43877	reqHeaders.Set("User-Agent", c.s.userAgent())
43878	var body io.Reader = nil
43879	c.urlParams_.Set("alt", alt)
43880	c.urlParams_.Set("prettyPrint", "false")
43881	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
43882	urls += "?" + c.urlParams_.Encode()
43883	req, err := http.NewRequest("DELETE", urls, body)
43884	if err != nil {
43885		return nil, err
43886	}
43887	req.Header = reqHeaders
43888	googleapi.Expand(req.URL, map[string]string{
43889		"project":        c.project,
43890		"forwardingRule": c.forwardingRule,
43891	})
43892	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43893}
43894
43895// Do executes the "compute.globalForwardingRules.delete" call.
43896// Exactly one of *Operation or error will be non-nil. Any non-2xx
43897// status code is an error. Response headers are in either
43898// *Operation.ServerResponse.Header or (if a response was returned at
43899// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
43900// to check whether the returned error was because
43901// http.StatusNotModified was returned.
43902func (c *GlobalForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
43903	gensupport.SetOptions(c.urlParams_, opts...)
43904	res, err := c.doRequest("json")
43905	if res != nil && res.StatusCode == http.StatusNotModified {
43906		if res.Body != nil {
43907			res.Body.Close()
43908		}
43909		return nil, &googleapi.Error{
43910			Code:   res.StatusCode,
43911			Header: res.Header,
43912		}
43913	}
43914	if err != nil {
43915		return nil, err
43916	}
43917	defer googleapi.CloseBody(res)
43918	if err := googleapi.CheckResponse(res); err != nil {
43919		return nil, err
43920	}
43921	ret := &Operation{
43922		ServerResponse: googleapi.ServerResponse{
43923			Header:         res.Header,
43924			HTTPStatusCode: res.StatusCode,
43925		},
43926	}
43927	target := &ret
43928	if err := gensupport.DecodeResponse(target, res); err != nil {
43929		return nil, err
43930	}
43931	return ret, nil
43932	// {
43933	//   "description": "Deletes the specified GlobalForwardingRule resource.",
43934	//   "httpMethod": "DELETE",
43935	//   "id": "compute.globalForwardingRules.delete",
43936	//   "parameterOrder": [
43937	//     "project",
43938	//     "forwardingRule"
43939	//   ],
43940	//   "parameters": {
43941	//     "forwardingRule": {
43942	//       "description": "Name of the ForwardingRule resource to delete.",
43943	//       "location": "path",
43944	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
43945	//       "required": true,
43946	//       "type": "string"
43947	//     },
43948	//     "project": {
43949	//       "description": "Project ID for this request.",
43950	//       "location": "path",
43951	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43952	//       "required": true,
43953	//       "type": "string"
43954	//     },
43955	//     "requestId": {
43956	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
43957	//       "location": "query",
43958	//       "type": "string"
43959	//     }
43960	//   },
43961	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
43962	//   "response": {
43963	//     "$ref": "Operation"
43964	//   },
43965	//   "scopes": [
43966	//     "https://www.googleapis.com/auth/cloud-platform",
43967	//     "https://www.googleapis.com/auth/compute"
43968	//   ]
43969	// }
43970
43971}
43972
43973// method id "compute.globalForwardingRules.get":
43974
43975type GlobalForwardingRulesGetCall struct {
43976	s              *Service
43977	project        string
43978	forwardingRule string
43979	urlParams_     gensupport.URLParams
43980	ifNoneMatch_   string
43981	ctx_           context.Context
43982	header_        http.Header
43983}
43984
43985// Get: Returns the specified GlobalForwardingRule resource. Gets a list
43986// of available forwarding rules by making a list() request.
43987// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/get
43988func (r *GlobalForwardingRulesService) Get(project string, forwardingRule string) *GlobalForwardingRulesGetCall {
43989	c := &GlobalForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43990	c.project = project
43991	c.forwardingRule = forwardingRule
43992	return c
43993}
43994
43995// Fields allows partial responses to be retrieved. See
43996// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43997// for more information.
43998func (c *GlobalForwardingRulesGetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesGetCall {
43999	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44000	return c
44001}
44002
44003// IfNoneMatch sets the optional parameter which makes the operation
44004// fail if the object's ETag matches the given value. This is useful for
44005// getting updates only after the object has changed since the last
44006// request. Use googleapi.IsNotModified to check whether the response
44007// error from Do is the result of In-None-Match.
44008func (c *GlobalForwardingRulesGetCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesGetCall {
44009	c.ifNoneMatch_ = entityTag
44010	return c
44011}
44012
44013// Context sets the context to be used in this call's Do method. Any
44014// pending HTTP request will be aborted if the provided context is
44015// canceled.
44016func (c *GlobalForwardingRulesGetCall) Context(ctx context.Context) *GlobalForwardingRulesGetCall {
44017	c.ctx_ = ctx
44018	return c
44019}
44020
44021// Header returns an http.Header that can be modified by the caller to
44022// add HTTP headers to the request.
44023func (c *GlobalForwardingRulesGetCall) Header() http.Header {
44024	if c.header_ == nil {
44025		c.header_ = make(http.Header)
44026	}
44027	return c.header_
44028}
44029
44030func (c *GlobalForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
44031	reqHeaders := make(http.Header)
44032	for k, v := range c.header_ {
44033		reqHeaders[k] = v
44034	}
44035	reqHeaders.Set("User-Agent", c.s.userAgent())
44036	if c.ifNoneMatch_ != "" {
44037		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
44038	}
44039	var body io.Reader = nil
44040	c.urlParams_.Set("alt", alt)
44041	c.urlParams_.Set("prettyPrint", "false")
44042	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
44043	urls += "?" + c.urlParams_.Encode()
44044	req, err := http.NewRequest("GET", urls, body)
44045	if err != nil {
44046		return nil, err
44047	}
44048	req.Header = reqHeaders
44049	googleapi.Expand(req.URL, map[string]string{
44050		"project":        c.project,
44051		"forwardingRule": c.forwardingRule,
44052	})
44053	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44054}
44055
44056// Do executes the "compute.globalForwardingRules.get" call.
44057// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
44058// status code is an error. Response headers are in either
44059// *ForwardingRule.ServerResponse.Header or (if a response was returned
44060// at all) in error.(*googleapi.Error).Header. Use
44061// googleapi.IsNotModified to check whether the returned error was
44062// because http.StatusNotModified was returned.
44063func (c *GlobalForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
44064	gensupport.SetOptions(c.urlParams_, opts...)
44065	res, err := c.doRequest("json")
44066	if res != nil && res.StatusCode == http.StatusNotModified {
44067		if res.Body != nil {
44068			res.Body.Close()
44069		}
44070		return nil, &googleapi.Error{
44071			Code:   res.StatusCode,
44072			Header: res.Header,
44073		}
44074	}
44075	if err != nil {
44076		return nil, err
44077	}
44078	defer googleapi.CloseBody(res)
44079	if err := googleapi.CheckResponse(res); err != nil {
44080		return nil, err
44081	}
44082	ret := &ForwardingRule{
44083		ServerResponse: googleapi.ServerResponse{
44084			Header:         res.Header,
44085			HTTPStatusCode: res.StatusCode,
44086		},
44087	}
44088	target := &ret
44089	if err := gensupport.DecodeResponse(target, res); err != nil {
44090		return nil, err
44091	}
44092	return ret, nil
44093	// {
44094	//   "description": "Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request.",
44095	//   "httpMethod": "GET",
44096	//   "id": "compute.globalForwardingRules.get",
44097	//   "parameterOrder": [
44098	//     "project",
44099	//     "forwardingRule"
44100	//   ],
44101	//   "parameters": {
44102	//     "forwardingRule": {
44103	//       "description": "Name of the ForwardingRule resource to return.",
44104	//       "location": "path",
44105	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
44106	//       "required": true,
44107	//       "type": "string"
44108	//     },
44109	//     "project": {
44110	//       "description": "Project ID for this request.",
44111	//       "location": "path",
44112	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44113	//       "required": true,
44114	//       "type": "string"
44115	//     }
44116	//   },
44117	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
44118	//   "response": {
44119	//     "$ref": "ForwardingRule"
44120	//   },
44121	//   "scopes": [
44122	//     "https://www.googleapis.com/auth/cloud-platform",
44123	//     "https://www.googleapis.com/auth/compute",
44124	//     "https://www.googleapis.com/auth/compute.readonly"
44125	//   ]
44126	// }
44127
44128}
44129
44130// method id "compute.globalForwardingRules.insert":
44131
44132type GlobalForwardingRulesInsertCall struct {
44133	s              *Service
44134	project        string
44135	forwardingrule *ForwardingRule
44136	urlParams_     gensupport.URLParams
44137	ctx_           context.Context
44138	header_        http.Header
44139}
44140
44141// Insert: Creates a GlobalForwardingRule resource in the specified
44142// project using the data included in the request.
44143// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/insert
44144func (r *GlobalForwardingRulesService) Insert(project string, forwardingrule *ForwardingRule) *GlobalForwardingRulesInsertCall {
44145	c := &GlobalForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44146	c.project = project
44147	c.forwardingrule = forwardingrule
44148	return c
44149}
44150
44151// RequestId sets the optional parameter "requestId": An optional
44152// request ID to identify requests. Specify a unique request ID so that
44153// if you must retry your request, the server will know to ignore the
44154// request if it has already been completed.
44155//
44156// For example, consider a situation where you make an initial request
44157// and the request times out. If you make the request again with the
44158// same request ID, the server can check if original operation with the
44159// same request ID was received, and if so, will ignore the second
44160// request. This prevents clients from accidentally creating duplicate
44161// commitments.
44162//
44163// The request ID must be a valid UUID with the exception that zero UUID
44164// is not supported (00000000-0000-0000-0000-000000000000).
44165func (c *GlobalForwardingRulesInsertCall) RequestId(requestId string) *GlobalForwardingRulesInsertCall {
44166	c.urlParams_.Set("requestId", requestId)
44167	return c
44168}
44169
44170// Fields allows partial responses to be retrieved. See
44171// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44172// for more information.
44173func (c *GlobalForwardingRulesInsertCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesInsertCall {
44174	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44175	return c
44176}
44177
44178// Context sets the context to be used in this call's Do method. Any
44179// pending HTTP request will be aborted if the provided context is
44180// canceled.
44181func (c *GlobalForwardingRulesInsertCall) Context(ctx context.Context) *GlobalForwardingRulesInsertCall {
44182	c.ctx_ = ctx
44183	return c
44184}
44185
44186// Header returns an http.Header that can be modified by the caller to
44187// add HTTP headers to the request.
44188func (c *GlobalForwardingRulesInsertCall) Header() http.Header {
44189	if c.header_ == nil {
44190		c.header_ = make(http.Header)
44191	}
44192	return c.header_
44193}
44194
44195func (c *GlobalForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
44196	reqHeaders := make(http.Header)
44197	for k, v := range c.header_ {
44198		reqHeaders[k] = v
44199	}
44200	reqHeaders.Set("User-Agent", c.s.userAgent())
44201	var body io.Reader = nil
44202	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
44203	if err != nil {
44204		return nil, err
44205	}
44206	reqHeaders.Set("Content-Type", "application/json")
44207	c.urlParams_.Set("alt", alt)
44208	c.urlParams_.Set("prettyPrint", "false")
44209	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules")
44210	urls += "?" + c.urlParams_.Encode()
44211	req, err := http.NewRequest("POST", urls, body)
44212	if err != nil {
44213		return nil, err
44214	}
44215	req.Header = reqHeaders
44216	googleapi.Expand(req.URL, map[string]string{
44217		"project": c.project,
44218	})
44219	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44220}
44221
44222// Do executes the "compute.globalForwardingRules.insert" call.
44223// Exactly one of *Operation or error will be non-nil. Any non-2xx
44224// status code is an error. Response headers are in either
44225// *Operation.ServerResponse.Header or (if a response was returned at
44226// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
44227// to check whether the returned error was because
44228// http.StatusNotModified was returned.
44229func (c *GlobalForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
44230	gensupport.SetOptions(c.urlParams_, opts...)
44231	res, err := c.doRequest("json")
44232	if res != nil && res.StatusCode == http.StatusNotModified {
44233		if res.Body != nil {
44234			res.Body.Close()
44235		}
44236		return nil, &googleapi.Error{
44237			Code:   res.StatusCode,
44238			Header: res.Header,
44239		}
44240	}
44241	if err != nil {
44242		return nil, err
44243	}
44244	defer googleapi.CloseBody(res)
44245	if err := googleapi.CheckResponse(res); err != nil {
44246		return nil, err
44247	}
44248	ret := &Operation{
44249		ServerResponse: googleapi.ServerResponse{
44250			Header:         res.Header,
44251			HTTPStatusCode: res.StatusCode,
44252		},
44253	}
44254	target := &ret
44255	if err := gensupport.DecodeResponse(target, res); err != nil {
44256		return nil, err
44257	}
44258	return ret, nil
44259	// {
44260	//   "description": "Creates a GlobalForwardingRule resource in the specified project using the data included in the request.",
44261	//   "httpMethod": "POST",
44262	//   "id": "compute.globalForwardingRules.insert",
44263	//   "parameterOrder": [
44264	//     "project"
44265	//   ],
44266	//   "parameters": {
44267	//     "project": {
44268	//       "description": "Project ID for this request.",
44269	//       "location": "path",
44270	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44271	//       "required": true,
44272	//       "type": "string"
44273	//     },
44274	//     "requestId": {
44275	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
44276	//       "location": "query",
44277	//       "type": "string"
44278	//     }
44279	//   },
44280	//   "path": "{project}/global/forwardingRules",
44281	//   "request": {
44282	//     "$ref": "ForwardingRule"
44283	//   },
44284	//   "response": {
44285	//     "$ref": "Operation"
44286	//   },
44287	//   "scopes": [
44288	//     "https://www.googleapis.com/auth/cloud-platform",
44289	//     "https://www.googleapis.com/auth/compute"
44290	//   ]
44291	// }
44292
44293}
44294
44295// method id "compute.globalForwardingRules.list":
44296
44297type GlobalForwardingRulesListCall struct {
44298	s            *Service
44299	project      string
44300	urlParams_   gensupport.URLParams
44301	ifNoneMatch_ string
44302	ctx_         context.Context
44303	header_      http.Header
44304}
44305
44306// List: Retrieves a list of GlobalForwardingRule resources available to
44307// the specified project.
44308// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/list
44309func (r *GlobalForwardingRulesService) List(project string) *GlobalForwardingRulesListCall {
44310	c := &GlobalForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44311	c.project = project
44312	return c
44313}
44314
44315// Filter sets the optional parameter "filter": A filter expression that
44316// filters resources listed in the response. The expression must specify
44317// the field name, a comparison operator, and the value that you want to
44318// use for filtering. The value must be a string, a number, or a
44319// boolean. The comparison operator must be either =, !=, >, or <.
44320//
44321// For example, if you are filtering Compute Engine instances, you can
44322// exclude instances named example-instance by specifying name !=
44323// example-instance.
44324//
44325// You can also filter nested fields. For example, you could specify
44326// scheduling.automaticRestart = false to include instances only if they
44327// are not scheduled for automatic restarts. You can use filtering on
44328// nested fields to filter based on resource labels.
44329//
44330// To filter on multiple expressions, provide each separate expression
44331// within parentheses. For example, (scheduling.automaticRestart = true)
44332// (cpuPlatform = "Intel Skylake"). By default, each expression is an
44333// AND expression. However, you can include AND and OR expressions
44334// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
44335// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
44336// true).
44337func (c *GlobalForwardingRulesListCall) Filter(filter string) *GlobalForwardingRulesListCall {
44338	c.urlParams_.Set("filter", filter)
44339	return c
44340}
44341
44342// MaxResults sets the optional parameter "maxResults": The maximum
44343// number of results per page that should be returned. If the number of
44344// available results is larger than maxResults, Compute Engine returns a
44345// nextPageToken that can be used to get the next page of results in
44346// subsequent list requests. Acceptable values are 0 to 500, inclusive.
44347// (Default: 500)
44348func (c *GlobalForwardingRulesListCall) MaxResults(maxResults int64) *GlobalForwardingRulesListCall {
44349	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
44350	return c
44351}
44352
44353// OrderBy sets the optional parameter "orderBy": Sorts list results by
44354// a certain order. By default, results are returned in alphanumerical
44355// order based on the resource name.
44356//
44357// You can also sort results in descending order based on the creation
44358// timestamp using orderBy="creationTimestamp desc". This sorts results
44359// based on the creationTimestamp field in reverse chronological order
44360// (newest result first). Use this to sort resources like operations so
44361// that the newest operation is returned first.
44362//
44363// Currently, only sorting by name or creationTimestamp desc is
44364// supported.
44365func (c *GlobalForwardingRulesListCall) OrderBy(orderBy string) *GlobalForwardingRulesListCall {
44366	c.urlParams_.Set("orderBy", orderBy)
44367	return c
44368}
44369
44370// PageToken sets the optional parameter "pageToken": Specifies a page
44371// token to use. Set pageToken to the nextPageToken returned by a
44372// previous list request to get the next page of results.
44373func (c *GlobalForwardingRulesListCall) PageToken(pageToken string) *GlobalForwardingRulesListCall {
44374	c.urlParams_.Set("pageToken", pageToken)
44375	return c
44376}
44377
44378// Fields allows partial responses to be retrieved. See
44379// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44380// for more information.
44381func (c *GlobalForwardingRulesListCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesListCall {
44382	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44383	return c
44384}
44385
44386// IfNoneMatch sets the optional parameter which makes the operation
44387// fail if the object's ETag matches the given value. This is useful for
44388// getting updates only after the object has changed since the last
44389// request. Use googleapi.IsNotModified to check whether the response
44390// error from Do is the result of In-None-Match.
44391func (c *GlobalForwardingRulesListCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesListCall {
44392	c.ifNoneMatch_ = entityTag
44393	return c
44394}
44395
44396// Context sets the context to be used in this call's Do method. Any
44397// pending HTTP request will be aborted if the provided context is
44398// canceled.
44399func (c *GlobalForwardingRulesListCall) Context(ctx context.Context) *GlobalForwardingRulesListCall {
44400	c.ctx_ = ctx
44401	return c
44402}
44403
44404// Header returns an http.Header that can be modified by the caller to
44405// add HTTP headers to the request.
44406func (c *GlobalForwardingRulesListCall) Header() http.Header {
44407	if c.header_ == nil {
44408		c.header_ = make(http.Header)
44409	}
44410	return c.header_
44411}
44412
44413func (c *GlobalForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
44414	reqHeaders := make(http.Header)
44415	for k, v := range c.header_ {
44416		reqHeaders[k] = v
44417	}
44418	reqHeaders.Set("User-Agent", c.s.userAgent())
44419	if c.ifNoneMatch_ != "" {
44420		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
44421	}
44422	var body io.Reader = nil
44423	c.urlParams_.Set("alt", alt)
44424	c.urlParams_.Set("prettyPrint", "false")
44425	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules")
44426	urls += "?" + c.urlParams_.Encode()
44427	req, err := http.NewRequest("GET", urls, body)
44428	if err != nil {
44429		return nil, err
44430	}
44431	req.Header = reqHeaders
44432	googleapi.Expand(req.URL, map[string]string{
44433		"project": c.project,
44434	})
44435	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44436}
44437
44438// Do executes the "compute.globalForwardingRules.list" call.
44439// Exactly one of *ForwardingRuleList or error will be non-nil. Any
44440// non-2xx status code is an error. Response headers are in either
44441// *ForwardingRuleList.ServerResponse.Header or (if a response was
44442// returned at all) in error.(*googleapi.Error).Header. Use
44443// googleapi.IsNotModified to check whether the returned error was
44444// because http.StatusNotModified was returned.
44445func (c *GlobalForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
44446	gensupport.SetOptions(c.urlParams_, opts...)
44447	res, err := c.doRequest("json")
44448	if res != nil && res.StatusCode == http.StatusNotModified {
44449		if res.Body != nil {
44450			res.Body.Close()
44451		}
44452		return nil, &googleapi.Error{
44453			Code:   res.StatusCode,
44454			Header: res.Header,
44455		}
44456	}
44457	if err != nil {
44458		return nil, err
44459	}
44460	defer googleapi.CloseBody(res)
44461	if err := googleapi.CheckResponse(res); err != nil {
44462		return nil, err
44463	}
44464	ret := &ForwardingRuleList{
44465		ServerResponse: googleapi.ServerResponse{
44466			Header:         res.Header,
44467			HTTPStatusCode: res.StatusCode,
44468		},
44469	}
44470	target := &ret
44471	if err := gensupport.DecodeResponse(target, res); err != nil {
44472		return nil, err
44473	}
44474	return ret, nil
44475	// {
44476	//   "description": "Retrieves a list of GlobalForwardingRule resources available to the specified project.",
44477	//   "httpMethod": "GET",
44478	//   "id": "compute.globalForwardingRules.list",
44479	//   "parameterOrder": [
44480	//     "project"
44481	//   ],
44482	//   "parameters": {
44483	//     "filter": {
44484	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
44485	//       "location": "query",
44486	//       "type": "string"
44487	//     },
44488	//     "maxResults": {
44489	//       "default": "500",
44490	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
44491	//       "format": "uint32",
44492	//       "location": "query",
44493	//       "minimum": "0",
44494	//       "type": "integer"
44495	//     },
44496	//     "orderBy": {
44497	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
44498	//       "location": "query",
44499	//       "type": "string"
44500	//     },
44501	//     "pageToken": {
44502	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
44503	//       "location": "query",
44504	//       "type": "string"
44505	//     },
44506	//     "project": {
44507	//       "description": "Project ID for this request.",
44508	//       "location": "path",
44509	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44510	//       "required": true,
44511	//       "type": "string"
44512	//     }
44513	//   },
44514	//   "path": "{project}/global/forwardingRules",
44515	//   "response": {
44516	//     "$ref": "ForwardingRuleList"
44517	//   },
44518	//   "scopes": [
44519	//     "https://www.googleapis.com/auth/cloud-platform",
44520	//     "https://www.googleapis.com/auth/compute",
44521	//     "https://www.googleapis.com/auth/compute.readonly"
44522	//   ]
44523	// }
44524
44525}
44526
44527// Pages invokes f for each page of results.
44528// A non-nil error returned from f will halt the iteration.
44529// The provided context supersedes any context provided to the Context method.
44530func (c *GlobalForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
44531	c.ctx_ = ctx
44532	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
44533	for {
44534		x, err := c.Do()
44535		if err != nil {
44536			return err
44537		}
44538		if err := f(x); err != nil {
44539			return err
44540		}
44541		if x.NextPageToken == "" {
44542			return nil
44543		}
44544		c.PageToken(x.NextPageToken)
44545	}
44546}
44547
44548// method id "compute.globalForwardingRules.setTarget":
44549
44550type GlobalForwardingRulesSetTargetCall struct {
44551	s               *Service
44552	project         string
44553	forwardingRule  string
44554	targetreference *TargetReference
44555	urlParams_      gensupport.URLParams
44556	ctx_            context.Context
44557	header_         http.Header
44558}
44559
44560// SetTarget: Changes target URL for the GlobalForwardingRule resource.
44561// The new target should be of the same type as the old target.
44562// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/setTarget
44563func (r *GlobalForwardingRulesService) SetTarget(project string, forwardingRule string, targetreference *TargetReference) *GlobalForwardingRulesSetTargetCall {
44564	c := &GlobalForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44565	c.project = project
44566	c.forwardingRule = forwardingRule
44567	c.targetreference = targetreference
44568	return c
44569}
44570
44571// RequestId sets the optional parameter "requestId": An optional
44572// request ID to identify requests. Specify a unique request ID so that
44573// if you must retry your request, the server will know to ignore the
44574// request if it has already been completed.
44575//
44576// For example, consider a situation where you make an initial request
44577// and the request times out. If you make the request again with the
44578// same request ID, the server can check if original operation with the
44579// same request ID was received, and if so, will ignore the second
44580// request. This prevents clients from accidentally creating duplicate
44581// commitments.
44582//
44583// The request ID must be a valid UUID with the exception that zero UUID
44584// is not supported (00000000-0000-0000-0000-000000000000).
44585func (c *GlobalForwardingRulesSetTargetCall) RequestId(requestId string) *GlobalForwardingRulesSetTargetCall {
44586	c.urlParams_.Set("requestId", requestId)
44587	return c
44588}
44589
44590// Fields allows partial responses to be retrieved. See
44591// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44592// for more information.
44593func (c *GlobalForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetTargetCall {
44594	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44595	return c
44596}
44597
44598// Context sets the context to be used in this call's Do method. Any
44599// pending HTTP request will be aborted if the provided context is
44600// canceled.
44601func (c *GlobalForwardingRulesSetTargetCall) Context(ctx context.Context) *GlobalForwardingRulesSetTargetCall {
44602	c.ctx_ = ctx
44603	return c
44604}
44605
44606// Header returns an http.Header that can be modified by the caller to
44607// add HTTP headers to the request.
44608func (c *GlobalForwardingRulesSetTargetCall) Header() http.Header {
44609	if c.header_ == nil {
44610		c.header_ = make(http.Header)
44611	}
44612	return c.header_
44613}
44614
44615func (c *GlobalForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
44616	reqHeaders := make(http.Header)
44617	for k, v := range c.header_ {
44618		reqHeaders[k] = v
44619	}
44620	reqHeaders.Set("User-Agent", c.s.userAgent())
44621	var body io.Reader = nil
44622	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
44623	if err != nil {
44624		return nil, err
44625	}
44626	reqHeaders.Set("Content-Type", "application/json")
44627	c.urlParams_.Set("alt", alt)
44628	c.urlParams_.Set("prettyPrint", "false")
44629	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}/setTarget")
44630	urls += "?" + c.urlParams_.Encode()
44631	req, err := http.NewRequest("POST", urls, body)
44632	if err != nil {
44633		return nil, err
44634	}
44635	req.Header = reqHeaders
44636	googleapi.Expand(req.URL, map[string]string{
44637		"project":        c.project,
44638		"forwardingRule": c.forwardingRule,
44639	})
44640	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44641}
44642
44643// Do executes the "compute.globalForwardingRules.setTarget" call.
44644// Exactly one of *Operation or error will be non-nil. Any non-2xx
44645// status code is an error. Response headers are in either
44646// *Operation.ServerResponse.Header or (if a response was returned at
44647// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
44648// to check whether the returned error was because
44649// http.StatusNotModified was returned.
44650func (c *GlobalForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
44651	gensupport.SetOptions(c.urlParams_, opts...)
44652	res, err := c.doRequest("json")
44653	if res != nil && res.StatusCode == http.StatusNotModified {
44654		if res.Body != nil {
44655			res.Body.Close()
44656		}
44657		return nil, &googleapi.Error{
44658			Code:   res.StatusCode,
44659			Header: res.Header,
44660		}
44661	}
44662	if err != nil {
44663		return nil, err
44664	}
44665	defer googleapi.CloseBody(res)
44666	if err := googleapi.CheckResponse(res); err != nil {
44667		return nil, err
44668	}
44669	ret := &Operation{
44670		ServerResponse: googleapi.ServerResponse{
44671			Header:         res.Header,
44672			HTTPStatusCode: res.StatusCode,
44673		},
44674	}
44675	target := &ret
44676	if err := gensupport.DecodeResponse(target, res); err != nil {
44677		return nil, err
44678	}
44679	return ret, nil
44680	// {
44681	//   "description": "Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.",
44682	//   "httpMethod": "POST",
44683	//   "id": "compute.globalForwardingRules.setTarget",
44684	//   "parameterOrder": [
44685	//     "project",
44686	//     "forwardingRule"
44687	//   ],
44688	//   "parameters": {
44689	//     "forwardingRule": {
44690	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
44691	//       "location": "path",
44692	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
44693	//       "required": true,
44694	//       "type": "string"
44695	//     },
44696	//     "project": {
44697	//       "description": "Project ID for this request.",
44698	//       "location": "path",
44699	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44700	//       "required": true,
44701	//       "type": "string"
44702	//     },
44703	//     "requestId": {
44704	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
44705	//       "location": "query",
44706	//       "type": "string"
44707	//     }
44708	//   },
44709	//   "path": "{project}/global/forwardingRules/{forwardingRule}/setTarget",
44710	//   "request": {
44711	//     "$ref": "TargetReference"
44712	//   },
44713	//   "response": {
44714	//     "$ref": "Operation"
44715	//   },
44716	//   "scopes": [
44717	//     "https://www.googleapis.com/auth/cloud-platform",
44718	//     "https://www.googleapis.com/auth/compute"
44719	//   ]
44720	// }
44721
44722}
44723
44724// method id "compute.globalOperations.aggregatedList":
44725
44726type GlobalOperationsAggregatedListCall struct {
44727	s            *Service
44728	project      string
44729	urlParams_   gensupport.URLParams
44730	ifNoneMatch_ string
44731	ctx_         context.Context
44732	header_      http.Header
44733}
44734
44735// AggregatedList: Retrieves an aggregated list of all operations.
44736// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/aggregatedList
44737func (r *GlobalOperationsService) AggregatedList(project string) *GlobalOperationsAggregatedListCall {
44738	c := &GlobalOperationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44739	c.project = project
44740	return c
44741}
44742
44743// Filter sets the optional parameter "filter": A filter expression that
44744// filters resources listed in the response. The expression must specify
44745// the field name, a comparison operator, and the value that you want to
44746// use for filtering. The value must be a string, a number, or a
44747// boolean. The comparison operator must be either =, !=, >, or <.
44748//
44749// For example, if you are filtering Compute Engine instances, you can
44750// exclude instances named example-instance by specifying name !=
44751// example-instance.
44752//
44753// You can also filter nested fields. For example, you could specify
44754// scheduling.automaticRestart = false to include instances only if they
44755// are not scheduled for automatic restarts. You can use filtering on
44756// nested fields to filter based on resource labels.
44757//
44758// To filter on multiple expressions, provide each separate expression
44759// within parentheses. For example, (scheduling.automaticRestart = true)
44760// (cpuPlatform = "Intel Skylake"). By default, each expression is an
44761// AND expression. However, you can include AND and OR expressions
44762// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
44763// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
44764// true).
44765func (c *GlobalOperationsAggregatedListCall) Filter(filter string) *GlobalOperationsAggregatedListCall {
44766	c.urlParams_.Set("filter", filter)
44767	return c
44768}
44769
44770// MaxResults sets the optional parameter "maxResults": The maximum
44771// number of results per page that should be returned. If the number of
44772// available results is larger than maxResults, Compute Engine returns a
44773// nextPageToken that can be used to get the next page of results in
44774// subsequent list requests. Acceptable values are 0 to 500, inclusive.
44775// (Default: 500)
44776func (c *GlobalOperationsAggregatedListCall) MaxResults(maxResults int64) *GlobalOperationsAggregatedListCall {
44777	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
44778	return c
44779}
44780
44781// OrderBy sets the optional parameter "orderBy": Sorts list results by
44782// a certain order. By default, results are returned in alphanumerical
44783// order based on the resource name.
44784//
44785// You can also sort results in descending order based on the creation
44786// timestamp using orderBy="creationTimestamp desc". This sorts results
44787// based on the creationTimestamp field in reverse chronological order
44788// (newest result first). Use this to sort resources like operations so
44789// that the newest operation is returned first.
44790//
44791// Currently, only sorting by name or creationTimestamp desc is
44792// supported.
44793func (c *GlobalOperationsAggregatedListCall) OrderBy(orderBy string) *GlobalOperationsAggregatedListCall {
44794	c.urlParams_.Set("orderBy", orderBy)
44795	return c
44796}
44797
44798// PageToken sets the optional parameter "pageToken": Specifies a page
44799// token to use. Set pageToken to the nextPageToken returned by a
44800// previous list request to get the next page of results.
44801func (c *GlobalOperationsAggregatedListCall) PageToken(pageToken string) *GlobalOperationsAggregatedListCall {
44802	c.urlParams_.Set("pageToken", pageToken)
44803	return c
44804}
44805
44806// Fields allows partial responses to be retrieved. See
44807// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44808// for more information.
44809func (c *GlobalOperationsAggregatedListCall) Fields(s ...googleapi.Field) *GlobalOperationsAggregatedListCall {
44810	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44811	return c
44812}
44813
44814// IfNoneMatch sets the optional parameter which makes the operation
44815// fail if the object's ETag matches the given value. This is useful for
44816// getting updates only after the object has changed since the last
44817// request. Use googleapi.IsNotModified to check whether the response
44818// error from Do is the result of In-None-Match.
44819func (c *GlobalOperationsAggregatedListCall) IfNoneMatch(entityTag string) *GlobalOperationsAggregatedListCall {
44820	c.ifNoneMatch_ = entityTag
44821	return c
44822}
44823
44824// Context sets the context to be used in this call's Do method. Any
44825// pending HTTP request will be aborted if the provided context is
44826// canceled.
44827func (c *GlobalOperationsAggregatedListCall) Context(ctx context.Context) *GlobalOperationsAggregatedListCall {
44828	c.ctx_ = ctx
44829	return c
44830}
44831
44832// Header returns an http.Header that can be modified by the caller to
44833// add HTTP headers to the request.
44834func (c *GlobalOperationsAggregatedListCall) Header() http.Header {
44835	if c.header_ == nil {
44836		c.header_ = make(http.Header)
44837	}
44838	return c.header_
44839}
44840
44841func (c *GlobalOperationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
44842	reqHeaders := make(http.Header)
44843	for k, v := range c.header_ {
44844		reqHeaders[k] = v
44845	}
44846	reqHeaders.Set("User-Agent", c.s.userAgent())
44847	if c.ifNoneMatch_ != "" {
44848		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
44849	}
44850	var body io.Reader = nil
44851	c.urlParams_.Set("alt", alt)
44852	c.urlParams_.Set("prettyPrint", "false")
44853	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/operations")
44854	urls += "?" + c.urlParams_.Encode()
44855	req, err := http.NewRequest("GET", urls, body)
44856	if err != nil {
44857		return nil, err
44858	}
44859	req.Header = reqHeaders
44860	googleapi.Expand(req.URL, map[string]string{
44861		"project": c.project,
44862	})
44863	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44864}
44865
44866// Do executes the "compute.globalOperations.aggregatedList" call.
44867// Exactly one of *OperationAggregatedList or error will be non-nil. Any
44868// non-2xx status code is an error. Response headers are in either
44869// *OperationAggregatedList.ServerResponse.Header or (if a response was
44870// returned at all) in error.(*googleapi.Error).Header. Use
44871// googleapi.IsNotModified to check whether the returned error was
44872// because http.StatusNotModified was returned.
44873func (c *GlobalOperationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*OperationAggregatedList, error) {
44874	gensupport.SetOptions(c.urlParams_, opts...)
44875	res, err := c.doRequest("json")
44876	if res != nil && res.StatusCode == http.StatusNotModified {
44877		if res.Body != nil {
44878			res.Body.Close()
44879		}
44880		return nil, &googleapi.Error{
44881			Code:   res.StatusCode,
44882			Header: res.Header,
44883		}
44884	}
44885	if err != nil {
44886		return nil, err
44887	}
44888	defer googleapi.CloseBody(res)
44889	if err := googleapi.CheckResponse(res); err != nil {
44890		return nil, err
44891	}
44892	ret := &OperationAggregatedList{
44893		ServerResponse: googleapi.ServerResponse{
44894			Header:         res.Header,
44895			HTTPStatusCode: res.StatusCode,
44896		},
44897	}
44898	target := &ret
44899	if err := gensupport.DecodeResponse(target, res); err != nil {
44900		return nil, err
44901	}
44902	return ret, nil
44903	// {
44904	//   "description": "Retrieves an aggregated list of all operations.",
44905	//   "httpMethod": "GET",
44906	//   "id": "compute.globalOperations.aggregatedList",
44907	//   "parameterOrder": [
44908	//     "project"
44909	//   ],
44910	//   "parameters": {
44911	//     "filter": {
44912	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
44913	//       "location": "query",
44914	//       "type": "string"
44915	//     },
44916	//     "maxResults": {
44917	//       "default": "500",
44918	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
44919	//       "format": "uint32",
44920	//       "location": "query",
44921	//       "minimum": "0",
44922	//       "type": "integer"
44923	//     },
44924	//     "orderBy": {
44925	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
44926	//       "location": "query",
44927	//       "type": "string"
44928	//     },
44929	//     "pageToken": {
44930	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
44931	//       "location": "query",
44932	//       "type": "string"
44933	//     },
44934	//     "project": {
44935	//       "description": "Project ID for this request.",
44936	//       "location": "path",
44937	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44938	//       "required": true,
44939	//       "type": "string"
44940	//     }
44941	//   },
44942	//   "path": "{project}/aggregated/operations",
44943	//   "response": {
44944	//     "$ref": "OperationAggregatedList"
44945	//   },
44946	//   "scopes": [
44947	//     "https://www.googleapis.com/auth/cloud-platform",
44948	//     "https://www.googleapis.com/auth/compute",
44949	//     "https://www.googleapis.com/auth/compute.readonly"
44950	//   ]
44951	// }
44952
44953}
44954
44955// Pages invokes f for each page of results.
44956// A non-nil error returned from f will halt the iteration.
44957// The provided context supersedes any context provided to the Context method.
44958func (c *GlobalOperationsAggregatedListCall) Pages(ctx context.Context, f func(*OperationAggregatedList) error) error {
44959	c.ctx_ = ctx
44960	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
44961	for {
44962		x, err := c.Do()
44963		if err != nil {
44964			return err
44965		}
44966		if err := f(x); err != nil {
44967			return err
44968		}
44969		if x.NextPageToken == "" {
44970			return nil
44971		}
44972		c.PageToken(x.NextPageToken)
44973	}
44974}
44975
44976// method id "compute.globalOperations.delete":
44977
44978type GlobalOperationsDeleteCall struct {
44979	s          *Service
44980	project    string
44981	operation  string
44982	urlParams_ gensupport.URLParams
44983	ctx_       context.Context
44984	header_    http.Header
44985}
44986
44987// Delete: Deletes the specified Operations resource.
44988// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/delete
44989func (r *GlobalOperationsService) Delete(project string, operation string) *GlobalOperationsDeleteCall {
44990	c := &GlobalOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44991	c.project = project
44992	c.operation = operation
44993	return c
44994}
44995
44996// Fields allows partial responses to be retrieved. See
44997// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44998// for more information.
44999func (c *GlobalOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOperationsDeleteCall {
45000	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45001	return c
45002}
45003
45004// Context sets the context to be used in this call's Do method. Any
45005// pending HTTP request will be aborted if the provided context is
45006// canceled.
45007func (c *GlobalOperationsDeleteCall) Context(ctx context.Context) *GlobalOperationsDeleteCall {
45008	c.ctx_ = ctx
45009	return c
45010}
45011
45012// Header returns an http.Header that can be modified by the caller to
45013// add HTTP headers to the request.
45014func (c *GlobalOperationsDeleteCall) Header() http.Header {
45015	if c.header_ == nil {
45016		c.header_ = make(http.Header)
45017	}
45018	return c.header_
45019}
45020
45021func (c *GlobalOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
45022	reqHeaders := make(http.Header)
45023	for k, v := range c.header_ {
45024		reqHeaders[k] = v
45025	}
45026	reqHeaders.Set("User-Agent", c.s.userAgent())
45027	var body io.Reader = nil
45028	c.urlParams_.Set("alt", alt)
45029	c.urlParams_.Set("prettyPrint", "false")
45030	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}")
45031	urls += "?" + c.urlParams_.Encode()
45032	req, err := http.NewRequest("DELETE", urls, body)
45033	if err != nil {
45034		return nil, err
45035	}
45036	req.Header = reqHeaders
45037	googleapi.Expand(req.URL, map[string]string{
45038		"project":   c.project,
45039		"operation": c.operation,
45040	})
45041	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45042}
45043
45044// Do executes the "compute.globalOperations.delete" call.
45045func (c *GlobalOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
45046	gensupport.SetOptions(c.urlParams_, opts...)
45047	res, err := c.doRequest("json")
45048	if err != nil {
45049		return err
45050	}
45051	defer googleapi.CloseBody(res)
45052	if err := googleapi.CheckResponse(res); err != nil {
45053		return err
45054	}
45055	return nil
45056	// {
45057	//   "description": "Deletes the specified Operations resource.",
45058	//   "httpMethod": "DELETE",
45059	//   "id": "compute.globalOperations.delete",
45060	//   "parameterOrder": [
45061	//     "project",
45062	//     "operation"
45063	//   ],
45064	//   "parameters": {
45065	//     "operation": {
45066	//       "description": "Name of the Operations resource to delete.",
45067	//       "location": "path",
45068	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
45069	//       "required": true,
45070	//       "type": "string"
45071	//     },
45072	//     "project": {
45073	//       "description": "Project ID for this request.",
45074	//       "location": "path",
45075	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45076	//       "required": true,
45077	//       "type": "string"
45078	//     }
45079	//   },
45080	//   "path": "{project}/global/operations/{operation}",
45081	//   "scopes": [
45082	//     "https://www.googleapis.com/auth/cloud-platform",
45083	//     "https://www.googleapis.com/auth/compute"
45084	//   ]
45085	// }
45086
45087}
45088
45089// method id "compute.globalOperations.get":
45090
45091type GlobalOperationsGetCall struct {
45092	s            *Service
45093	project      string
45094	operation    string
45095	urlParams_   gensupport.URLParams
45096	ifNoneMatch_ string
45097	ctx_         context.Context
45098	header_      http.Header
45099}
45100
45101// Get: Retrieves the specified Operations resource. Gets a list of
45102// operations by making a list() request.
45103// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/get
45104func (r *GlobalOperationsService) Get(project string, operation string) *GlobalOperationsGetCall {
45105	c := &GlobalOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45106	c.project = project
45107	c.operation = operation
45108	return c
45109}
45110
45111// Fields allows partial responses to be retrieved. See
45112// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45113// for more information.
45114func (c *GlobalOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOperationsGetCall {
45115	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45116	return c
45117}
45118
45119// IfNoneMatch sets the optional parameter which makes the operation
45120// fail if the object's ETag matches the given value. This is useful for
45121// getting updates only after the object has changed since the last
45122// request. Use googleapi.IsNotModified to check whether the response
45123// error from Do is the result of In-None-Match.
45124func (c *GlobalOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOperationsGetCall {
45125	c.ifNoneMatch_ = entityTag
45126	return c
45127}
45128
45129// Context sets the context to be used in this call's Do method. Any
45130// pending HTTP request will be aborted if the provided context is
45131// canceled.
45132func (c *GlobalOperationsGetCall) Context(ctx context.Context) *GlobalOperationsGetCall {
45133	c.ctx_ = ctx
45134	return c
45135}
45136
45137// Header returns an http.Header that can be modified by the caller to
45138// add HTTP headers to the request.
45139func (c *GlobalOperationsGetCall) Header() http.Header {
45140	if c.header_ == nil {
45141		c.header_ = make(http.Header)
45142	}
45143	return c.header_
45144}
45145
45146func (c *GlobalOperationsGetCall) doRequest(alt string) (*http.Response, error) {
45147	reqHeaders := make(http.Header)
45148	for k, v := range c.header_ {
45149		reqHeaders[k] = v
45150	}
45151	reqHeaders.Set("User-Agent", c.s.userAgent())
45152	if c.ifNoneMatch_ != "" {
45153		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
45154	}
45155	var body io.Reader = nil
45156	c.urlParams_.Set("alt", alt)
45157	c.urlParams_.Set("prettyPrint", "false")
45158	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}")
45159	urls += "?" + c.urlParams_.Encode()
45160	req, err := http.NewRequest("GET", urls, body)
45161	if err != nil {
45162		return nil, err
45163	}
45164	req.Header = reqHeaders
45165	googleapi.Expand(req.URL, map[string]string{
45166		"project":   c.project,
45167		"operation": c.operation,
45168	})
45169	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45170}
45171
45172// Do executes the "compute.globalOperations.get" call.
45173// Exactly one of *Operation or error will be non-nil. Any non-2xx
45174// status code is an error. Response headers are in either
45175// *Operation.ServerResponse.Header or (if a response was returned at
45176// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
45177// to check whether the returned error was because
45178// http.StatusNotModified was returned.
45179func (c *GlobalOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
45180	gensupport.SetOptions(c.urlParams_, opts...)
45181	res, err := c.doRequest("json")
45182	if res != nil && res.StatusCode == http.StatusNotModified {
45183		if res.Body != nil {
45184			res.Body.Close()
45185		}
45186		return nil, &googleapi.Error{
45187			Code:   res.StatusCode,
45188			Header: res.Header,
45189		}
45190	}
45191	if err != nil {
45192		return nil, err
45193	}
45194	defer googleapi.CloseBody(res)
45195	if err := googleapi.CheckResponse(res); err != nil {
45196		return nil, err
45197	}
45198	ret := &Operation{
45199		ServerResponse: googleapi.ServerResponse{
45200			Header:         res.Header,
45201			HTTPStatusCode: res.StatusCode,
45202		},
45203	}
45204	target := &ret
45205	if err := gensupport.DecodeResponse(target, res); err != nil {
45206		return nil, err
45207	}
45208	return ret, nil
45209	// {
45210	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a list() request.",
45211	//   "httpMethod": "GET",
45212	//   "id": "compute.globalOperations.get",
45213	//   "parameterOrder": [
45214	//     "project",
45215	//     "operation"
45216	//   ],
45217	//   "parameters": {
45218	//     "operation": {
45219	//       "description": "Name of the Operations resource to return.",
45220	//       "location": "path",
45221	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
45222	//       "required": true,
45223	//       "type": "string"
45224	//     },
45225	//     "project": {
45226	//       "description": "Project ID for this request.",
45227	//       "location": "path",
45228	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45229	//       "required": true,
45230	//       "type": "string"
45231	//     }
45232	//   },
45233	//   "path": "{project}/global/operations/{operation}",
45234	//   "response": {
45235	//     "$ref": "Operation"
45236	//   },
45237	//   "scopes": [
45238	//     "https://www.googleapis.com/auth/cloud-platform",
45239	//     "https://www.googleapis.com/auth/compute",
45240	//     "https://www.googleapis.com/auth/compute.readonly"
45241	//   ]
45242	// }
45243
45244}
45245
45246// method id "compute.globalOperations.list":
45247
45248type GlobalOperationsListCall struct {
45249	s            *Service
45250	project      string
45251	urlParams_   gensupport.URLParams
45252	ifNoneMatch_ string
45253	ctx_         context.Context
45254	header_      http.Header
45255}
45256
45257// List: Retrieves a list of Operation resources contained within the
45258// specified project.
45259// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/list
45260func (r *GlobalOperationsService) List(project string) *GlobalOperationsListCall {
45261	c := &GlobalOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45262	c.project = project
45263	return c
45264}
45265
45266// Filter sets the optional parameter "filter": A filter expression that
45267// filters resources listed in the response. The expression must specify
45268// the field name, a comparison operator, and the value that you want to
45269// use for filtering. The value must be a string, a number, or a
45270// boolean. The comparison operator must be either =, !=, >, or <.
45271//
45272// For example, if you are filtering Compute Engine instances, you can
45273// exclude instances named example-instance by specifying name !=
45274// example-instance.
45275//
45276// You can also filter nested fields. For example, you could specify
45277// scheduling.automaticRestart = false to include instances only if they
45278// are not scheduled for automatic restarts. You can use filtering on
45279// nested fields to filter based on resource labels.
45280//
45281// To filter on multiple expressions, provide each separate expression
45282// within parentheses. For example, (scheduling.automaticRestart = true)
45283// (cpuPlatform = "Intel Skylake"). By default, each expression is an
45284// AND expression. However, you can include AND and OR expressions
45285// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
45286// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
45287// true).
45288func (c *GlobalOperationsListCall) Filter(filter string) *GlobalOperationsListCall {
45289	c.urlParams_.Set("filter", filter)
45290	return c
45291}
45292
45293// MaxResults sets the optional parameter "maxResults": The maximum
45294// number of results per page that should be returned. If the number of
45295// available results is larger than maxResults, Compute Engine returns a
45296// nextPageToken that can be used to get the next page of results in
45297// subsequent list requests. Acceptable values are 0 to 500, inclusive.
45298// (Default: 500)
45299func (c *GlobalOperationsListCall) MaxResults(maxResults int64) *GlobalOperationsListCall {
45300	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
45301	return c
45302}
45303
45304// OrderBy sets the optional parameter "orderBy": Sorts list results by
45305// a certain order. By default, results are returned in alphanumerical
45306// order based on the resource name.
45307//
45308// You can also sort results in descending order based on the creation
45309// timestamp using orderBy="creationTimestamp desc". This sorts results
45310// based on the creationTimestamp field in reverse chronological order
45311// (newest result first). Use this to sort resources like operations so
45312// that the newest operation is returned first.
45313//
45314// Currently, only sorting by name or creationTimestamp desc is
45315// supported.
45316func (c *GlobalOperationsListCall) OrderBy(orderBy string) *GlobalOperationsListCall {
45317	c.urlParams_.Set("orderBy", orderBy)
45318	return c
45319}
45320
45321// PageToken sets the optional parameter "pageToken": Specifies a page
45322// token to use. Set pageToken to the nextPageToken returned by a
45323// previous list request to get the next page of results.
45324func (c *GlobalOperationsListCall) PageToken(pageToken string) *GlobalOperationsListCall {
45325	c.urlParams_.Set("pageToken", pageToken)
45326	return c
45327}
45328
45329// Fields allows partial responses to be retrieved. See
45330// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45331// for more information.
45332func (c *GlobalOperationsListCall) Fields(s ...googleapi.Field) *GlobalOperationsListCall {
45333	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45334	return c
45335}
45336
45337// IfNoneMatch sets the optional parameter which makes the operation
45338// fail if the object's ETag matches the given value. This is useful for
45339// getting updates only after the object has changed since the last
45340// request. Use googleapi.IsNotModified to check whether the response
45341// error from Do is the result of In-None-Match.
45342func (c *GlobalOperationsListCall) IfNoneMatch(entityTag string) *GlobalOperationsListCall {
45343	c.ifNoneMatch_ = entityTag
45344	return c
45345}
45346
45347// Context sets the context to be used in this call's Do method. Any
45348// pending HTTP request will be aborted if the provided context is
45349// canceled.
45350func (c *GlobalOperationsListCall) Context(ctx context.Context) *GlobalOperationsListCall {
45351	c.ctx_ = ctx
45352	return c
45353}
45354
45355// Header returns an http.Header that can be modified by the caller to
45356// add HTTP headers to the request.
45357func (c *GlobalOperationsListCall) Header() http.Header {
45358	if c.header_ == nil {
45359		c.header_ = make(http.Header)
45360	}
45361	return c.header_
45362}
45363
45364func (c *GlobalOperationsListCall) doRequest(alt string) (*http.Response, error) {
45365	reqHeaders := make(http.Header)
45366	for k, v := range c.header_ {
45367		reqHeaders[k] = v
45368	}
45369	reqHeaders.Set("User-Agent", c.s.userAgent())
45370	if c.ifNoneMatch_ != "" {
45371		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
45372	}
45373	var body io.Reader = nil
45374	c.urlParams_.Set("alt", alt)
45375	c.urlParams_.Set("prettyPrint", "false")
45376	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations")
45377	urls += "?" + c.urlParams_.Encode()
45378	req, err := http.NewRequest("GET", urls, body)
45379	if err != nil {
45380		return nil, err
45381	}
45382	req.Header = reqHeaders
45383	googleapi.Expand(req.URL, map[string]string{
45384		"project": c.project,
45385	})
45386	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45387}
45388
45389// Do executes the "compute.globalOperations.list" call.
45390// Exactly one of *OperationList or error will be non-nil. Any non-2xx
45391// status code is an error. Response headers are in either
45392// *OperationList.ServerResponse.Header or (if a response was returned
45393// at all) in error.(*googleapi.Error).Header. Use
45394// googleapi.IsNotModified to check whether the returned error was
45395// because http.StatusNotModified was returned.
45396func (c *GlobalOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
45397	gensupport.SetOptions(c.urlParams_, opts...)
45398	res, err := c.doRequest("json")
45399	if res != nil && res.StatusCode == http.StatusNotModified {
45400		if res.Body != nil {
45401			res.Body.Close()
45402		}
45403		return nil, &googleapi.Error{
45404			Code:   res.StatusCode,
45405			Header: res.Header,
45406		}
45407	}
45408	if err != nil {
45409		return nil, err
45410	}
45411	defer googleapi.CloseBody(res)
45412	if err := googleapi.CheckResponse(res); err != nil {
45413		return nil, err
45414	}
45415	ret := &OperationList{
45416		ServerResponse: googleapi.ServerResponse{
45417			Header:         res.Header,
45418			HTTPStatusCode: res.StatusCode,
45419		},
45420	}
45421	target := &ret
45422	if err := gensupport.DecodeResponse(target, res); err != nil {
45423		return nil, err
45424	}
45425	return ret, nil
45426	// {
45427	//   "description": "Retrieves a list of Operation resources contained within the specified project.",
45428	//   "httpMethod": "GET",
45429	//   "id": "compute.globalOperations.list",
45430	//   "parameterOrder": [
45431	//     "project"
45432	//   ],
45433	//   "parameters": {
45434	//     "filter": {
45435	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
45436	//       "location": "query",
45437	//       "type": "string"
45438	//     },
45439	//     "maxResults": {
45440	//       "default": "500",
45441	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
45442	//       "format": "uint32",
45443	//       "location": "query",
45444	//       "minimum": "0",
45445	//       "type": "integer"
45446	//     },
45447	//     "orderBy": {
45448	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
45449	//       "location": "query",
45450	//       "type": "string"
45451	//     },
45452	//     "pageToken": {
45453	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
45454	//       "location": "query",
45455	//       "type": "string"
45456	//     },
45457	//     "project": {
45458	//       "description": "Project ID for this request.",
45459	//       "location": "path",
45460	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45461	//       "required": true,
45462	//       "type": "string"
45463	//     }
45464	//   },
45465	//   "path": "{project}/global/operations",
45466	//   "response": {
45467	//     "$ref": "OperationList"
45468	//   },
45469	//   "scopes": [
45470	//     "https://www.googleapis.com/auth/cloud-platform",
45471	//     "https://www.googleapis.com/auth/compute",
45472	//     "https://www.googleapis.com/auth/compute.readonly"
45473	//   ]
45474	// }
45475
45476}
45477
45478// Pages invokes f for each page of results.
45479// A non-nil error returned from f will halt the iteration.
45480// The provided context supersedes any context provided to the Context method.
45481func (c *GlobalOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
45482	c.ctx_ = ctx
45483	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
45484	for {
45485		x, err := c.Do()
45486		if err != nil {
45487			return err
45488		}
45489		if err := f(x); err != nil {
45490			return err
45491		}
45492		if x.NextPageToken == "" {
45493			return nil
45494		}
45495		c.PageToken(x.NextPageToken)
45496	}
45497}
45498
45499// method id "compute.healthChecks.delete":
45500
45501type HealthChecksDeleteCall struct {
45502	s           *Service
45503	project     string
45504	healthCheck string
45505	urlParams_  gensupport.URLParams
45506	ctx_        context.Context
45507	header_     http.Header
45508}
45509
45510// Delete: Deletes the specified HealthCheck resource.
45511func (r *HealthChecksService) Delete(project string, healthCheck string) *HealthChecksDeleteCall {
45512	c := &HealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45513	c.project = project
45514	c.healthCheck = healthCheck
45515	return c
45516}
45517
45518// RequestId sets the optional parameter "requestId": An optional
45519// request ID to identify requests. Specify a unique request ID so that
45520// if you must retry your request, the server will know to ignore the
45521// request if it has already been completed.
45522//
45523// For example, consider a situation where you make an initial request
45524// and the request times out. If you make the request again with the
45525// same request ID, the server can check if original operation with the
45526// same request ID was received, and if so, will ignore the second
45527// request. This prevents clients from accidentally creating duplicate
45528// commitments.
45529//
45530// The request ID must be a valid UUID with the exception that zero UUID
45531// is not supported (00000000-0000-0000-0000-000000000000).
45532func (c *HealthChecksDeleteCall) RequestId(requestId string) *HealthChecksDeleteCall {
45533	c.urlParams_.Set("requestId", requestId)
45534	return c
45535}
45536
45537// Fields allows partial responses to be retrieved. See
45538// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45539// for more information.
45540func (c *HealthChecksDeleteCall) Fields(s ...googleapi.Field) *HealthChecksDeleteCall {
45541	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45542	return c
45543}
45544
45545// Context sets the context to be used in this call's Do method. Any
45546// pending HTTP request will be aborted if the provided context is
45547// canceled.
45548func (c *HealthChecksDeleteCall) Context(ctx context.Context) *HealthChecksDeleteCall {
45549	c.ctx_ = ctx
45550	return c
45551}
45552
45553// Header returns an http.Header that can be modified by the caller to
45554// add HTTP headers to the request.
45555func (c *HealthChecksDeleteCall) Header() http.Header {
45556	if c.header_ == nil {
45557		c.header_ = make(http.Header)
45558	}
45559	return c.header_
45560}
45561
45562func (c *HealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
45563	reqHeaders := make(http.Header)
45564	for k, v := range c.header_ {
45565		reqHeaders[k] = v
45566	}
45567	reqHeaders.Set("User-Agent", c.s.userAgent())
45568	var body io.Reader = nil
45569	c.urlParams_.Set("alt", alt)
45570	c.urlParams_.Set("prettyPrint", "false")
45571	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
45572	urls += "?" + c.urlParams_.Encode()
45573	req, err := http.NewRequest("DELETE", urls, body)
45574	if err != nil {
45575		return nil, err
45576	}
45577	req.Header = reqHeaders
45578	googleapi.Expand(req.URL, map[string]string{
45579		"project":     c.project,
45580		"healthCheck": c.healthCheck,
45581	})
45582	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45583}
45584
45585// Do executes the "compute.healthChecks.delete" call.
45586// Exactly one of *Operation or error will be non-nil. Any non-2xx
45587// status code is an error. Response headers are in either
45588// *Operation.ServerResponse.Header or (if a response was returned at
45589// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
45590// to check whether the returned error was because
45591// http.StatusNotModified was returned.
45592func (c *HealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
45593	gensupport.SetOptions(c.urlParams_, opts...)
45594	res, err := c.doRequest("json")
45595	if res != nil && res.StatusCode == http.StatusNotModified {
45596		if res.Body != nil {
45597			res.Body.Close()
45598		}
45599		return nil, &googleapi.Error{
45600			Code:   res.StatusCode,
45601			Header: res.Header,
45602		}
45603	}
45604	if err != nil {
45605		return nil, err
45606	}
45607	defer googleapi.CloseBody(res)
45608	if err := googleapi.CheckResponse(res); err != nil {
45609		return nil, err
45610	}
45611	ret := &Operation{
45612		ServerResponse: googleapi.ServerResponse{
45613			Header:         res.Header,
45614			HTTPStatusCode: res.StatusCode,
45615		},
45616	}
45617	target := &ret
45618	if err := gensupport.DecodeResponse(target, res); err != nil {
45619		return nil, err
45620	}
45621	return ret, nil
45622	// {
45623	//   "description": "Deletes the specified HealthCheck resource.",
45624	//   "httpMethod": "DELETE",
45625	//   "id": "compute.healthChecks.delete",
45626	//   "parameterOrder": [
45627	//     "project",
45628	//     "healthCheck"
45629	//   ],
45630	//   "parameters": {
45631	//     "healthCheck": {
45632	//       "description": "Name of the HealthCheck resource to delete.",
45633	//       "location": "path",
45634	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
45635	//       "required": true,
45636	//       "type": "string"
45637	//     },
45638	//     "project": {
45639	//       "description": "Project ID for this request.",
45640	//       "location": "path",
45641	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45642	//       "required": true,
45643	//       "type": "string"
45644	//     },
45645	//     "requestId": {
45646	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
45647	//       "location": "query",
45648	//       "type": "string"
45649	//     }
45650	//   },
45651	//   "path": "{project}/global/healthChecks/{healthCheck}",
45652	//   "response": {
45653	//     "$ref": "Operation"
45654	//   },
45655	//   "scopes": [
45656	//     "https://www.googleapis.com/auth/cloud-platform",
45657	//     "https://www.googleapis.com/auth/compute"
45658	//   ]
45659	// }
45660
45661}
45662
45663// method id "compute.healthChecks.get":
45664
45665type HealthChecksGetCall struct {
45666	s            *Service
45667	project      string
45668	healthCheck  string
45669	urlParams_   gensupport.URLParams
45670	ifNoneMatch_ string
45671	ctx_         context.Context
45672	header_      http.Header
45673}
45674
45675// Get: Returns the specified HealthCheck resource. Gets a list of
45676// available health checks by making a list() request.
45677func (r *HealthChecksService) Get(project string, healthCheck string) *HealthChecksGetCall {
45678	c := &HealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45679	c.project = project
45680	c.healthCheck = healthCheck
45681	return c
45682}
45683
45684// Fields allows partial responses to be retrieved. See
45685// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45686// for more information.
45687func (c *HealthChecksGetCall) Fields(s ...googleapi.Field) *HealthChecksGetCall {
45688	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45689	return c
45690}
45691
45692// IfNoneMatch sets the optional parameter which makes the operation
45693// fail if the object's ETag matches the given value. This is useful for
45694// getting updates only after the object has changed since the last
45695// request. Use googleapi.IsNotModified to check whether the response
45696// error from Do is the result of In-None-Match.
45697func (c *HealthChecksGetCall) IfNoneMatch(entityTag string) *HealthChecksGetCall {
45698	c.ifNoneMatch_ = entityTag
45699	return c
45700}
45701
45702// Context sets the context to be used in this call's Do method. Any
45703// pending HTTP request will be aborted if the provided context is
45704// canceled.
45705func (c *HealthChecksGetCall) Context(ctx context.Context) *HealthChecksGetCall {
45706	c.ctx_ = ctx
45707	return c
45708}
45709
45710// Header returns an http.Header that can be modified by the caller to
45711// add HTTP headers to the request.
45712func (c *HealthChecksGetCall) Header() http.Header {
45713	if c.header_ == nil {
45714		c.header_ = make(http.Header)
45715	}
45716	return c.header_
45717}
45718
45719func (c *HealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
45720	reqHeaders := make(http.Header)
45721	for k, v := range c.header_ {
45722		reqHeaders[k] = v
45723	}
45724	reqHeaders.Set("User-Agent", c.s.userAgent())
45725	if c.ifNoneMatch_ != "" {
45726		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
45727	}
45728	var body io.Reader = nil
45729	c.urlParams_.Set("alt", alt)
45730	c.urlParams_.Set("prettyPrint", "false")
45731	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
45732	urls += "?" + c.urlParams_.Encode()
45733	req, err := http.NewRequest("GET", urls, body)
45734	if err != nil {
45735		return nil, err
45736	}
45737	req.Header = reqHeaders
45738	googleapi.Expand(req.URL, map[string]string{
45739		"project":     c.project,
45740		"healthCheck": c.healthCheck,
45741	})
45742	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45743}
45744
45745// Do executes the "compute.healthChecks.get" call.
45746// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
45747// status code is an error. Response headers are in either
45748// *HealthCheck.ServerResponse.Header or (if a response was returned at
45749// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
45750// to check whether the returned error was because
45751// http.StatusNotModified was returned.
45752func (c *HealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
45753	gensupport.SetOptions(c.urlParams_, opts...)
45754	res, err := c.doRequest("json")
45755	if res != nil && res.StatusCode == http.StatusNotModified {
45756		if res.Body != nil {
45757			res.Body.Close()
45758		}
45759		return nil, &googleapi.Error{
45760			Code:   res.StatusCode,
45761			Header: res.Header,
45762		}
45763	}
45764	if err != nil {
45765		return nil, err
45766	}
45767	defer googleapi.CloseBody(res)
45768	if err := googleapi.CheckResponse(res); err != nil {
45769		return nil, err
45770	}
45771	ret := &HealthCheck{
45772		ServerResponse: googleapi.ServerResponse{
45773			Header:         res.Header,
45774			HTTPStatusCode: res.StatusCode,
45775		},
45776	}
45777	target := &ret
45778	if err := gensupport.DecodeResponse(target, res); err != nil {
45779		return nil, err
45780	}
45781	return ret, nil
45782	// {
45783	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
45784	//   "httpMethod": "GET",
45785	//   "id": "compute.healthChecks.get",
45786	//   "parameterOrder": [
45787	//     "project",
45788	//     "healthCheck"
45789	//   ],
45790	//   "parameters": {
45791	//     "healthCheck": {
45792	//       "description": "Name of the HealthCheck resource to return.",
45793	//       "location": "path",
45794	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
45795	//       "required": true,
45796	//       "type": "string"
45797	//     },
45798	//     "project": {
45799	//       "description": "Project ID for this request.",
45800	//       "location": "path",
45801	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45802	//       "required": true,
45803	//       "type": "string"
45804	//     }
45805	//   },
45806	//   "path": "{project}/global/healthChecks/{healthCheck}",
45807	//   "response": {
45808	//     "$ref": "HealthCheck"
45809	//   },
45810	//   "scopes": [
45811	//     "https://www.googleapis.com/auth/cloud-platform",
45812	//     "https://www.googleapis.com/auth/compute",
45813	//     "https://www.googleapis.com/auth/compute.readonly"
45814	//   ]
45815	// }
45816
45817}
45818
45819// method id "compute.healthChecks.insert":
45820
45821type HealthChecksInsertCall struct {
45822	s           *Service
45823	project     string
45824	healthcheck *HealthCheck
45825	urlParams_  gensupport.URLParams
45826	ctx_        context.Context
45827	header_     http.Header
45828}
45829
45830// Insert: Creates a HealthCheck resource in the specified project using
45831// the data included in the request.
45832func (r *HealthChecksService) Insert(project string, healthcheck *HealthCheck) *HealthChecksInsertCall {
45833	c := &HealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45834	c.project = project
45835	c.healthcheck = healthcheck
45836	return c
45837}
45838
45839// RequestId sets the optional parameter "requestId": An optional
45840// request ID to identify requests. Specify a unique request ID so that
45841// if you must retry your request, the server will know to ignore the
45842// request if it has already been completed.
45843//
45844// For example, consider a situation where you make an initial request
45845// and the request times out. If you make the request again with the
45846// same request ID, the server can check if original operation with the
45847// same request ID was received, and if so, will ignore the second
45848// request. This prevents clients from accidentally creating duplicate
45849// commitments.
45850//
45851// The request ID must be a valid UUID with the exception that zero UUID
45852// is not supported (00000000-0000-0000-0000-000000000000).
45853func (c *HealthChecksInsertCall) RequestId(requestId string) *HealthChecksInsertCall {
45854	c.urlParams_.Set("requestId", requestId)
45855	return c
45856}
45857
45858// Fields allows partial responses to be retrieved. See
45859// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45860// for more information.
45861func (c *HealthChecksInsertCall) Fields(s ...googleapi.Field) *HealthChecksInsertCall {
45862	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45863	return c
45864}
45865
45866// Context sets the context to be used in this call's Do method. Any
45867// pending HTTP request will be aborted if the provided context is
45868// canceled.
45869func (c *HealthChecksInsertCall) Context(ctx context.Context) *HealthChecksInsertCall {
45870	c.ctx_ = ctx
45871	return c
45872}
45873
45874// Header returns an http.Header that can be modified by the caller to
45875// add HTTP headers to the request.
45876func (c *HealthChecksInsertCall) Header() http.Header {
45877	if c.header_ == nil {
45878		c.header_ = make(http.Header)
45879	}
45880	return c.header_
45881}
45882
45883func (c *HealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
45884	reqHeaders := make(http.Header)
45885	for k, v := range c.header_ {
45886		reqHeaders[k] = v
45887	}
45888	reqHeaders.Set("User-Agent", c.s.userAgent())
45889	var body io.Reader = nil
45890	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
45891	if err != nil {
45892		return nil, err
45893	}
45894	reqHeaders.Set("Content-Type", "application/json")
45895	c.urlParams_.Set("alt", alt)
45896	c.urlParams_.Set("prettyPrint", "false")
45897	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks")
45898	urls += "?" + c.urlParams_.Encode()
45899	req, err := http.NewRequest("POST", urls, body)
45900	if err != nil {
45901		return nil, err
45902	}
45903	req.Header = reqHeaders
45904	googleapi.Expand(req.URL, map[string]string{
45905		"project": c.project,
45906	})
45907	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45908}
45909
45910// Do executes the "compute.healthChecks.insert" call.
45911// Exactly one of *Operation or error will be non-nil. Any non-2xx
45912// status code is an error. Response headers are in either
45913// *Operation.ServerResponse.Header or (if a response was returned at
45914// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
45915// to check whether the returned error was because
45916// http.StatusNotModified was returned.
45917func (c *HealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
45918	gensupport.SetOptions(c.urlParams_, opts...)
45919	res, err := c.doRequest("json")
45920	if res != nil && res.StatusCode == http.StatusNotModified {
45921		if res.Body != nil {
45922			res.Body.Close()
45923		}
45924		return nil, &googleapi.Error{
45925			Code:   res.StatusCode,
45926			Header: res.Header,
45927		}
45928	}
45929	if err != nil {
45930		return nil, err
45931	}
45932	defer googleapi.CloseBody(res)
45933	if err := googleapi.CheckResponse(res); err != nil {
45934		return nil, err
45935	}
45936	ret := &Operation{
45937		ServerResponse: googleapi.ServerResponse{
45938			Header:         res.Header,
45939			HTTPStatusCode: res.StatusCode,
45940		},
45941	}
45942	target := &ret
45943	if err := gensupport.DecodeResponse(target, res); err != nil {
45944		return nil, err
45945	}
45946	return ret, nil
45947	// {
45948	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
45949	//   "httpMethod": "POST",
45950	//   "id": "compute.healthChecks.insert",
45951	//   "parameterOrder": [
45952	//     "project"
45953	//   ],
45954	//   "parameters": {
45955	//     "project": {
45956	//       "description": "Project ID for this request.",
45957	//       "location": "path",
45958	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45959	//       "required": true,
45960	//       "type": "string"
45961	//     },
45962	//     "requestId": {
45963	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
45964	//       "location": "query",
45965	//       "type": "string"
45966	//     }
45967	//   },
45968	//   "path": "{project}/global/healthChecks",
45969	//   "request": {
45970	//     "$ref": "HealthCheck"
45971	//   },
45972	//   "response": {
45973	//     "$ref": "Operation"
45974	//   },
45975	//   "scopes": [
45976	//     "https://www.googleapis.com/auth/cloud-platform",
45977	//     "https://www.googleapis.com/auth/compute"
45978	//   ]
45979	// }
45980
45981}
45982
45983// method id "compute.healthChecks.list":
45984
45985type HealthChecksListCall struct {
45986	s            *Service
45987	project      string
45988	urlParams_   gensupport.URLParams
45989	ifNoneMatch_ string
45990	ctx_         context.Context
45991	header_      http.Header
45992}
45993
45994// List: Retrieves the list of HealthCheck resources available to the
45995// specified project.
45996func (r *HealthChecksService) List(project string) *HealthChecksListCall {
45997	c := &HealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45998	c.project = project
45999	return c
46000}
46001
46002// Filter sets the optional parameter "filter": A filter expression that
46003// filters resources listed in the response. The expression must specify
46004// the field name, a comparison operator, and the value that you want to
46005// use for filtering. The value must be a string, a number, or a
46006// boolean. The comparison operator must be either =, !=, >, or <.
46007//
46008// For example, if you are filtering Compute Engine instances, you can
46009// exclude instances named example-instance by specifying name !=
46010// example-instance.
46011//
46012// You can also filter nested fields. For example, you could specify
46013// scheduling.automaticRestart = false to include instances only if they
46014// are not scheduled for automatic restarts. You can use filtering on
46015// nested fields to filter based on resource labels.
46016//
46017// To filter on multiple expressions, provide each separate expression
46018// within parentheses. For example, (scheduling.automaticRestart = true)
46019// (cpuPlatform = "Intel Skylake"). By default, each expression is an
46020// AND expression. However, you can include AND and OR expressions
46021// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
46022// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
46023// true).
46024func (c *HealthChecksListCall) Filter(filter string) *HealthChecksListCall {
46025	c.urlParams_.Set("filter", filter)
46026	return c
46027}
46028
46029// MaxResults sets the optional parameter "maxResults": The maximum
46030// number of results per page that should be returned. If the number of
46031// available results is larger than maxResults, Compute Engine returns a
46032// nextPageToken that can be used to get the next page of results in
46033// subsequent list requests. Acceptable values are 0 to 500, inclusive.
46034// (Default: 500)
46035func (c *HealthChecksListCall) MaxResults(maxResults int64) *HealthChecksListCall {
46036	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
46037	return c
46038}
46039
46040// OrderBy sets the optional parameter "orderBy": Sorts list results by
46041// a certain order. By default, results are returned in alphanumerical
46042// order based on the resource name.
46043//
46044// You can also sort results in descending order based on the creation
46045// timestamp using orderBy="creationTimestamp desc". This sorts results
46046// based on the creationTimestamp field in reverse chronological order
46047// (newest result first). Use this to sort resources like operations so
46048// that the newest operation is returned first.
46049//
46050// Currently, only sorting by name or creationTimestamp desc is
46051// supported.
46052func (c *HealthChecksListCall) OrderBy(orderBy string) *HealthChecksListCall {
46053	c.urlParams_.Set("orderBy", orderBy)
46054	return c
46055}
46056
46057// PageToken sets the optional parameter "pageToken": Specifies a page
46058// token to use. Set pageToken to the nextPageToken returned by a
46059// previous list request to get the next page of results.
46060func (c *HealthChecksListCall) PageToken(pageToken string) *HealthChecksListCall {
46061	c.urlParams_.Set("pageToken", pageToken)
46062	return c
46063}
46064
46065// Fields allows partial responses to be retrieved. See
46066// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46067// for more information.
46068func (c *HealthChecksListCall) Fields(s ...googleapi.Field) *HealthChecksListCall {
46069	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46070	return c
46071}
46072
46073// IfNoneMatch sets the optional parameter which makes the operation
46074// fail if the object's ETag matches the given value. This is useful for
46075// getting updates only after the object has changed since the last
46076// request. Use googleapi.IsNotModified to check whether the response
46077// error from Do is the result of In-None-Match.
46078func (c *HealthChecksListCall) IfNoneMatch(entityTag string) *HealthChecksListCall {
46079	c.ifNoneMatch_ = entityTag
46080	return c
46081}
46082
46083// Context sets the context to be used in this call's Do method. Any
46084// pending HTTP request will be aborted if the provided context is
46085// canceled.
46086func (c *HealthChecksListCall) Context(ctx context.Context) *HealthChecksListCall {
46087	c.ctx_ = ctx
46088	return c
46089}
46090
46091// Header returns an http.Header that can be modified by the caller to
46092// add HTTP headers to the request.
46093func (c *HealthChecksListCall) Header() http.Header {
46094	if c.header_ == nil {
46095		c.header_ = make(http.Header)
46096	}
46097	return c.header_
46098}
46099
46100func (c *HealthChecksListCall) doRequest(alt string) (*http.Response, error) {
46101	reqHeaders := make(http.Header)
46102	for k, v := range c.header_ {
46103		reqHeaders[k] = v
46104	}
46105	reqHeaders.Set("User-Agent", c.s.userAgent())
46106	if c.ifNoneMatch_ != "" {
46107		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
46108	}
46109	var body io.Reader = nil
46110	c.urlParams_.Set("alt", alt)
46111	c.urlParams_.Set("prettyPrint", "false")
46112	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks")
46113	urls += "?" + c.urlParams_.Encode()
46114	req, err := http.NewRequest("GET", urls, body)
46115	if err != nil {
46116		return nil, err
46117	}
46118	req.Header = reqHeaders
46119	googleapi.Expand(req.URL, map[string]string{
46120		"project": c.project,
46121	})
46122	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46123}
46124
46125// Do executes the "compute.healthChecks.list" call.
46126// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
46127// status code is an error. Response headers are in either
46128// *HealthCheckList.ServerResponse.Header or (if a response was returned
46129// at all) in error.(*googleapi.Error).Header. Use
46130// googleapi.IsNotModified to check whether the returned error was
46131// because http.StatusNotModified was returned.
46132func (c *HealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
46133	gensupport.SetOptions(c.urlParams_, opts...)
46134	res, err := c.doRequest("json")
46135	if res != nil && res.StatusCode == http.StatusNotModified {
46136		if res.Body != nil {
46137			res.Body.Close()
46138		}
46139		return nil, &googleapi.Error{
46140			Code:   res.StatusCode,
46141			Header: res.Header,
46142		}
46143	}
46144	if err != nil {
46145		return nil, err
46146	}
46147	defer googleapi.CloseBody(res)
46148	if err := googleapi.CheckResponse(res); err != nil {
46149		return nil, err
46150	}
46151	ret := &HealthCheckList{
46152		ServerResponse: googleapi.ServerResponse{
46153			Header:         res.Header,
46154			HTTPStatusCode: res.StatusCode,
46155		},
46156	}
46157	target := &ret
46158	if err := gensupport.DecodeResponse(target, res); err != nil {
46159		return nil, err
46160	}
46161	return ret, nil
46162	// {
46163	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
46164	//   "httpMethod": "GET",
46165	//   "id": "compute.healthChecks.list",
46166	//   "parameterOrder": [
46167	//     "project"
46168	//   ],
46169	//   "parameters": {
46170	//     "filter": {
46171	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
46172	//       "location": "query",
46173	//       "type": "string"
46174	//     },
46175	//     "maxResults": {
46176	//       "default": "500",
46177	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
46178	//       "format": "uint32",
46179	//       "location": "query",
46180	//       "minimum": "0",
46181	//       "type": "integer"
46182	//     },
46183	//     "orderBy": {
46184	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
46185	//       "location": "query",
46186	//       "type": "string"
46187	//     },
46188	//     "pageToken": {
46189	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
46190	//       "location": "query",
46191	//       "type": "string"
46192	//     },
46193	//     "project": {
46194	//       "description": "Project ID for this request.",
46195	//       "location": "path",
46196	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46197	//       "required": true,
46198	//       "type": "string"
46199	//     }
46200	//   },
46201	//   "path": "{project}/global/healthChecks",
46202	//   "response": {
46203	//     "$ref": "HealthCheckList"
46204	//   },
46205	//   "scopes": [
46206	//     "https://www.googleapis.com/auth/cloud-platform",
46207	//     "https://www.googleapis.com/auth/compute",
46208	//     "https://www.googleapis.com/auth/compute.readonly"
46209	//   ]
46210	// }
46211
46212}
46213
46214// Pages invokes f for each page of results.
46215// A non-nil error returned from f will halt the iteration.
46216// The provided context supersedes any context provided to the Context method.
46217func (c *HealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
46218	c.ctx_ = ctx
46219	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
46220	for {
46221		x, err := c.Do()
46222		if err != nil {
46223			return err
46224		}
46225		if err := f(x); err != nil {
46226			return err
46227		}
46228		if x.NextPageToken == "" {
46229			return nil
46230		}
46231		c.PageToken(x.NextPageToken)
46232	}
46233}
46234
46235// method id "compute.healthChecks.patch":
46236
46237type HealthChecksPatchCall struct {
46238	s           *Service
46239	project     string
46240	healthCheck string
46241	healthcheck *HealthCheck
46242	urlParams_  gensupport.URLParams
46243	ctx_        context.Context
46244	header_     http.Header
46245}
46246
46247// Patch: Updates a HealthCheck resource in the specified project using
46248// the data included in the request. This method supports PATCH
46249// semantics and uses the JSON merge patch format and processing rules.
46250func (r *HealthChecksService) Patch(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksPatchCall {
46251	c := &HealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46252	c.project = project
46253	c.healthCheck = healthCheck
46254	c.healthcheck = healthcheck
46255	return c
46256}
46257
46258// RequestId sets the optional parameter "requestId": An optional
46259// request ID to identify requests. Specify a unique request ID so that
46260// if you must retry your request, the server will know to ignore the
46261// request if it has already been completed.
46262//
46263// For example, consider a situation where you make an initial request
46264// and the request times out. If you make the request again with the
46265// same request ID, the server can check if original operation with the
46266// same request ID was received, and if so, will ignore the second
46267// request. This prevents clients from accidentally creating duplicate
46268// commitments.
46269//
46270// The request ID must be a valid UUID with the exception that zero UUID
46271// is not supported (00000000-0000-0000-0000-000000000000).
46272func (c *HealthChecksPatchCall) RequestId(requestId string) *HealthChecksPatchCall {
46273	c.urlParams_.Set("requestId", requestId)
46274	return c
46275}
46276
46277// Fields allows partial responses to be retrieved. See
46278// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46279// for more information.
46280func (c *HealthChecksPatchCall) Fields(s ...googleapi.Field) *HealthChecksPatchCall {
46281	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46282	return c
46283}
46284
46285// Context sets the context to be used in this call's Do method. Any
46286// pending HTTP request will be aborted if the provided context is
46287// canceled.
46288func (c *HealthChecksPatchCall) Context(ctx context.Context) *HealthChecksPatchCall {
46289	c.ctx_ = ctx
46290	return c
46291}
46292
46293// Header returns an http.Header that can be modified by the caller to
46294// add HTTP headers to the request.
46295func (c *HealthChecksPatchCall) Header() http.Header {
46296	if c.header_ == nil {
46297		c.header_ = make(http.Header)
46298	}
46299	return c.header_
46300}
46301
46302func (c *HealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
46303	reqHeaders := make(http.Header)
46304	for k, v := range c.header_ {
46305		reqHeaders[k] = v
46306	}
46307	reqHeaders.Set("User-Agent", c.s.userAgent())
46308	var body io.Reader = nil
46309	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
46310	if err != nil {
46311		return nil, err
46312	}
46313	reqHeaders.Set("Content-Type", "application/json")
46314	c.urlParams_.Set("alt", alt)
46315	c.urlParams_.Set("prettyPrint", "false")
46316	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
46317	urls += "?" + c.urlParams_.Encode()
46318	req, err := http.NewRequest("PATCH", urls, body)
46319	if err != nil {
46320		return nil, err
46321	}
46322	req.Header = reqHeaders
46323	googleapi.Expand(req.URL, map[string]string{
46324		"project":     c.project,
46325		"healthCheck": c.healthCheck,
46326	})
46327	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46328}
46329
46330// Do executes the "compute.healthChecks.patch" call.
46331// Exactly one of *Operation or error will be non-nil. Any non-2xx
46332// status code is an error. Response headers are in either
46333// *Operation.ServerResponse.Header or (if a response was returned at
46334// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46335// to check whether the returned error was because
46336// http.StatusNotModified was returned.
46337func (c *HealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
46338	gensupport.SetOptions(c.urlParams_, opts...)
46339	res, err := c.doRequest("json")
46340	if res != nil && res.StatusCode == http.StatusNotModified {
46341		if res.Body != nil {
46342			res.Body.Close()
46343		}
46344		return nil, &googleapi.Error{
46345			Code:   res.StatusCode,
46346			Header: res.Header,
46347		}
46348	}
46349	if err != nil {
46350		return nil, err
46351	}
46352	defer googleapi.CloseBody(res)
46353	if err := googleapi.CheckResponse(res); err != nil {
46354		return nil, err
46355	}
46356	ret := &Operation{
46357		ServerResponse: googleapi.ServerResponse{
46358			Header:         res.Header,
46359			HTTPStatusCode: res.StatusCode,
46360		},
46361	}
46362	target := &ret
46363	if err := gensupport.DecodeResponse(target, res); err != nil {
46364		return nil, err
46365	}
46366	return ret, nil
46367	// {
46368	//   "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.",
46369	//   "httpMethod": "PATCH",
46370	//   "id": "compute.healthChecks.patch",
46371	//   "parameterOrder": [
46372	//     "project",
46373	//     "healthCheck"
46374	//   ],
46375	//   "parameters": {
46376	//     "healthCheck": {
46377	//       "description": "Name of the HealthCheck resource to patch.",
46378	//       "location": "path",
46379	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
46380	//       "required": true,
46381	//       "type": "string"
46382	//     },
46383	//     "project": {
46384	//       "description": "Project ID for this request.",
46385	//       "location": "path",
46386	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46387	//       "required": true,
46388	//       "type": "string"
46389	//     },
46390	//     "requestId": {
46391	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
46392	//       "location": "query",
46393	//       "type": "string"
46394	//     }
46395	//   },
46396	//   "path": "{project}/global/healthChecks/{healthCheck}",
46397	//   "request": {
46398	//     "$ref": "HealthCheck"
46399	//   },
46400	//   "response": {
46401	//     "$ref": "Operation"
46402	//   },
46403	//   "scopes": [
46404	//     "https://www.googleapis.com/auth/cloud-platform",
46405	//     "https://www.googleapis.com/auth/compute"
46406	//   ]
46407	// }
46408
46409}
46410
46411// method id "compute.healthChecks.update":
46412
46413type HealthChecksUpdateCall struct {
46414	s           *Service
46415	project     string
46416	healthCheck string
46417	healthcheck *HealthCheck
46418	urlParams_  gensupport.URLParams
46419	ctx_        context.Context
46420	header_     http.Header
46421}
46422
46423// Update: Updates a HealthCheck resource in the specified project using
46424// the data included in the request.
46425func (r *HealthChecksService) Update(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksUpdateCall {
46426	c := &HealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46427	c.project = project
46428	c.healthCheck = healthCheck
46429	c.healthcheck = healthcheck
46430	return c
46431}
46432
46433// RequestId sets the optional parameter "requestId": An optional
46434// request ID to identify requests. Specify a unique request ID so that
46435// if you must retry your request, the server will know to ignore the
46436// request if it has already been completed.
46437//
46438// For example, consider a situation where you make an initial request
46439// and the request times out. If you make the request again with the
46440// same request ID, the server can check if original operation with the
46441// same request ID was received, and if so, will ignore the second
46442// request. This prevents clients from accidentally creating duplicate
46443// commitments.
46444//
46445// The request ID must be a valid UUID with the exception that zero UUID
46446// is not supported (00000000-0000-0000-0000-000000000000).
46447func (c *HealthChecksUpdateCall) RequestId(requestId string) *HealthChecksUpdateCall {
46448	c.urlParams_.Set("requestId", requestId)
46449	return c
46450}
46451
46452// Fields allows partial responses to be retrieved. See
46453// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46454// for more information.
46455func (c *HealthChecksUpdateCall) Fields(s ...googleapi.Field) *HealthChecksUpdateCall {
46456	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46457	return c
46458}
46459
46460// Context sets the context to be used in this call's Do method. Any
46461// pending HTTP request will be aborted if the provided context is
46462// canceled.
46463func (c *HealthChecksUpdateCall) Context(ctx context.Context) *HealthChecksUpdateCall {
46464	c.ctx_ = ctx
46465	return c
46466}
46467
46468// Header returns an http.Header that can be modified by the caller to
46469// add HTTP headers to the request.
46470func (c *HealthChecksUpdateCall) Header() http.Header {
46471	if c.header_ == nil {
46472		c.header_ = make(http.Header)
46473	}
46474	return c.header_
46475}
46476
46477func (c *HealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
46478	reqHeaders := make(http.Header)
46479	for k, v := range c.header_ {
46480		reqHeaders[k] = v
46481	}
46482	reqHeaders.Set("User-Agent", c.s.userAgent())
46483	var body io.Reader = nil
46484	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
46485	if err != nil {
46486		return nil, err
46487	}
46488	reqHeaders.Set("Content-Type", "application/json")
46489	c.urlParams_.Set("alt", alt)
46490	c.urlParams_.Set("prettyPrint", "false")
46491	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
46492	urls += "?" + c.urlParams_.Encode()
46493	req, err := http.NewRequest("PUT", urls, body)
46494	if err != nil {
46495		return nil, err
46496	}
46497	req.Header = reqHeaders
46498	googleapi.Expand(req.URL, map[string]string{
46499		"project":     c.project,
46500		"healthCheck": c.healthCheck,
46501	})
46502	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46503}
46504
46505// Do executes the "compute.healthChecks.update" call.
46506// Exactly one of *Operation or error will be non-nil. Any non-2xx
46507// status code is an error. Response headers are in either
46508// *Operation.ServerResponse.Header or (if a response was returned at
46509// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46510// to check whether the returned error was because
46511// http.StatusNotModified was returned.
46512func (c *HealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
46513	gensupport.SetOptions(c.urlParams_, opts...)
46514	res, err := c.doRequest("json")
46515	if res != nil && res.StatusCode == http.StatusNotModified {
46516		if res.Body != nil {
46517			res.Body.Close()
46518		}
46519		return nil, &googleapi.Error{
46520			Code:   res.StatusCode,
46521			Header: res.Header,
46522		}
46523	}
46524	if err != nil {
46525		return nil, err
46526	}
46527	defer googleapi.CloseBody(res)
46528	if err := googleapi.CheckResponse(res); err != nil {
46529		return nil, err
46530	}
46531	ret := &Operation{
46532		ServerResponse: googleapi.ServerResponse{
46533			Header:         res.Header,
46534			HTTPStatusCode: res.StatusCode,
46535		},
46536	}
46537	target := &ret
46538	if err := gensupport.DecodeResponse(target, res); err != nil {
46539		return nil, err
46540	}
46541	return ret, nil
46542	// {
46543	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
46544	//   "httpMethod": "PUT",
46545	//   "id": "compute.healthChecks.update",
46546	//   "parameterOrder": [
46547	//     "project",
46548	//     "healthCheck"
46549	//   ],
46550	//   "parameters": {
46551	//     "healthCheck": {
46552	//       "description": "Name of the HealthCheck resource to update.",
46553	//       "location": "path",
46554	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
46555	//       "required": true,
46556	//       "type": "string"
46557	//     },
46558	//     "project": {
46559	//       "description": "Project ID for this request.",
46560	//       "location": "path",
46561	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46562	//       "required": true,
46563	//       "type": "string"
46564	//     },
46565	//     "requestId": {
46566	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
46567	//       "location": "query",
46568	//       "type": "string"
46569	//     }
46570	//   },
46571	//   "path": "{project}/global/healthChecks/{healthCheck}",
46572	//   "request": {
46573	//     "$ref": "HealthCheck"
46574	//   },
46575	//   "response": {
46576	//     "$ref": "Operation"
46577	//   },
46578	//   "scopes": [
46579	//     "https://www.googleapis.com/auth/cloud-platform",
46580	//     "https://www.googleapis.com/auth/compute"
46581	//   ]
46582	// }
46583
46584}
46585
46586// method id "compute.httpHealthChecks.delete":
46587
46588type HttpHealthChecksDeleteCall struct {
46589	s               *Service
46590	project         string
46591	httpHealthCheck string
46592	urlParams_      gensupport.URLParams
46593	ctx_            context.Context
46594	header_         http.Header
46595}
46596
46597// Delete: Deletes the specified HttpHealthCheck resource.
46598// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/delete
46599func (r *HttpHealthChecksService) Delete(project string, httpHealthCheck string) *HttpHealthChecksDeleteCall {
46600	c := &HttpHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46601	c.project = project
46602	c.httpHealthCheck = httpHealthCheck
46603	return c
46604}
46605
46606// RequestId sets the optional parameter "requestId": An optional
46607// request ID to identify requests. Specify a unique request ID so that
46608// if you must retry your request, the server will know to ignore the
46609// request if it has already been completed.
46610//
46611// For example, consider a situation where you make an initial request
46612// and the request times out. If you make the request again with the
46613// same request ID, the server can check if original operation with the
46614// same request ID was received, and if so, will ignore the second
46615// request. This prevents clients from accidentally creating duplicate
46616// commitments.
46617//
46618// The request ID must be a valid UUID with the exception that zero UUID
46619// is not supported (00000000-0000-0000-0000-000000000000).
46620func (c *HttpHealthChecksDeleteCall) RequestId(requestId string) *HttpHealthChecksDeleteCall {
46621	c.urlParams_.Set("requestId", requestId)
46622	return c
46623}
46624
46625// Fields allows partial responses to be retrieved. See
46626// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46627// for more information.
46628func (c *HttpHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpHealthChecksDeleteCall {
46629	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46630	return c
46631}
46632
46633// Context sets the context to be used in this call's Do method. Any
46634// pending HTTP request will be aborted if the provided context is
46635// canceled.
46636func (c *HttpHealthChecksDeleteCall) Context(ctx context.Context) *HttpHealthChecksDeleteCall {
46637	c.ctx_ = ctx
46638	return c
46639}
46640
46641// Header returns an http.Header that can be modified by the caller to
46642// add HTTP headers to the request.
46643func (c *HttpHealthChecksDeleteCall) Header() http.Header {
46644	if c.header_ == nil {
46645		c.header_ = make(http.Header)
46646	}
46647	return c.header_
46648}
46649
46650func (c *HttpHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
46651	reqHeaders := make(http.Header)
46652	for k, v := range c.header_ {
46653		reqHeaders[k] = v
46654	}
46655	reqHeaders.Set("User-Agent", c.s.userAgent())
46656	var body io.Reader = nil
46657	c.urlParams_.Set("alt", alt)
46658	c.urlParams_.Set("prettyPrint", "false")
46659	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
46660	urls += "?" + c.urlParams_.Encode()
46661	req, err := http.NewRequest("DELETE", urls, body)
46662	if err != nil {
46663		return nil, err
46664	}
46665	req.Header = reqHeaders
46666	googleapi.Expand(req.URL, map[string]string{
46667		"project":         c.project,
46668		"httpHealthCheck": c.httpHealthCheck,
46669	})
46670	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46671}
46672
46673// Do executes the "compute.httpHealthChecks.delete" call.
46674// Exactly one of *Operation or error will be non-nil. Any non-2xx
46675// status code is an error. Response headers are in either
46676// *Operation.ServerResponse.Header or (if a response was returned at
46677// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46678// to check whether the returned error was because
46679// http.StatusNotModified was returned.
46680func (c *HttpHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
46681	gensupport.SetOptions(c.urlParams_, opts...)
46682	res, err := c.doRequest("json")
46683	if res != nil && res.StatusCode == http.StatusNotModified {
46684		if res.Body != nil {
46685			res.Body.Close()
46686		}
46687		return nil, &googleapi.Error{
46688			Code:   res.StatusCode,
46689			Header: res.Header,
46690		}
46691	}
46692	if err != nil {
46693		return nil, err
46694	}
46695	defer googleapi.CloseBody(res)
46696	if err := googleapi.CheckResponse(res); err != nil {
46697		return nil, err
46698	}
46699	ret := &Operation{
46700		ServerResponse: googleapi.ServerResponse{
46701			Header:         res.Header,
46702			HTTPStatusCode: res.StatusCode,
46703		},
46704	}
46705	target := &ret
46706	if err := gensupport.DecodeResponse(target, res); err != nil {
46707		return nil, err
46708	}
46709	return ret, nil
46710	// {
46711	//   "description": "Deletes the specified HttpHealthCheck resource.",
46712	//   "httpMethod": "DELETE",
46713	//   "id": "compute.httpHealthChecks.delete",
46714	//   "parameterOrder": [
46715	//     "project",
46716	//     "httpHealthCheck"
46717	//   ],
46718	//   "parameters": {
46719	//     "httpHealthCheck": {
46720	//       "description": "Name of the HttpHealthCheck resource to delete.",
46721	//       "location": "path",
46722	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
46723	//       "required": true,
46724	//       "type": "string"
46725	//     },
46726	//     "project": {
46727	//       "description": "Project ID for this request.",
46728	//       "location": "path",
46729	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46730	//       "required": true,
46731	//       "type": "string"
46732	//     },
46733	//     "requestId": {
46734	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
46735	//       "location": "query",
46736	//       "type": "string"
46737	//     }
46738	//   },
46739	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
46740	//   "response": {
46741	//     "$ref": "Operation"
46742	//   },
46743	//   "scopes": [
46744	//     "https://www.googleapis.com/auth/cloud-platform",
46745	//     "https://www.googleapis.com/auth/compute"
46746	//   ]
46747	// }
46748
46749}
46750
46751// method id "compute.httpHealthChecks.get":
46752
46753type HttpHealthChecksGetCall struct {
46754	s               *Service
46755	project         string
46756	httpHealthCheck string
46757	urlParams_      gensupport.URLParams
46758	ifNoneMatch_    string
46759	ctx_            context.Context
46760	header_         http.Header
46761}
46762
46763// Get: Returns the specified HttpHealthCheck resource. Gets a list of
46764// available HTTP health checks by making a list() request.
46765// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/get
46766func (r *HttpHealthChecksService) Get(project string, httpHealthCheck string) *HttpHealthChecksGetCall {
46767	c := &HttpHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46768	c.project = project
46769	c.httpHealthCheck = httpHealthCheck
46770	return c
46771}
46772
46773// Fields allows partial responses to be retrieved. See
46774// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46775// for more information.
46776func (c *HttpHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpHealthChecksGetCall {
46777	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46778	return c
46779}
46780
46781// IfNoneMatch sets the optional parameter which makes the operation
46782// fail if the object's ETag matches the given value. This is useful for
46783// getting updates only after the object has changed since the last
46784// request. Use googleapi.IsNotModified to check whether the response
46785// error from Do is the result of In-None-Match.
46786func (c *HttpHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpHealthChecksGetCall {
46787	c.ifNoneMatch_ = entityTag
46788	return c
46789}
46790
46791// Context sets the context to be used in this call's Do method. Any
46792// pending HTTP request will be aborted if the provided context is
46793// canceled.
46794func (c *HttpHealthChecksGetCall) Context(ctx context.Context) *HttpHealthChecksGetCall {
46795	c.ctx_ = ctx
46796	return c
46797}
46798
46799// Header returns an http.Header that can be modified by the caller to
46800// add HTTP headers to the request.
46801func (c *HttpHealthChecksGetCall) Header() http.Header {
46802	if c.header_ == nil {
46803		c.header_ = make(http.Header)
46804	}
46805	return c.header_
46806}
46807
46808func (c *HttpHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
46809	reqHeaders := make(http.Header)
46810	for k, v := range c.header_ {
46811		reqHeaders[k] = v
46812	}
46813	reqHeaders.Set("User-Agent", c.s.userAgent())
46814	if c.ifNoneMatch_ != "" {
46815		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
46816	}
46817	var body io.Reader = nil
46818	c.urlParams_.Set("alt", alt)
46819	c.urlParams_.Set("prettyPrint", "false")
46820	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
46821	urls += "?" + c.urlParams_.Encode()
46822	req, err := http.NewRequest("GET", urls, body)
46823	if err != nil {
46824		return nil, err
46825	}
46826	req.Header = reqHeaders
46827	googleapi.Expand(req.URL, map[string]string{
46828		"project":         c.project,
46829		"httpHealthCheck": c.httpHealthCheck,
46830	})
46831	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46832}
46833
46834// Do executes the "compute.httpHealthChecks.get" call.
46835// Exactly one of *HttpHealthCheck or error will be non-nil. Any non-2xx
46836// status code is an error. Response headers are in either
46837// *HttpHealthCheck.ServerResponse.Header or (if a response was returned
46838// at all) in error.(*googleapi.Error).Header. Use
46839// googleapi.IsNotModified to check whether the returned error was
46840// because http.StatusNotModified was returned.
46841func (c *HttpHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheck, error) {
46842	gensupport.SetOptions(c.urlParams_, opts...)
46843	res, err := c.doRequest("json")
46844	if res != nil && res.StatusCode == http.StatusNotModified {
46845		if res.Body != nil {
46846			res.Body.Close()
46847		}
46848		return nil, &googleapi.Error{
46849			Code:   res.StatusCode,
46850			Header: res.Header,
46851		}
46852	}
46853	if err != nil {
46854		return nil, err
46855	}
46856	defer googleapi.CloseBody(res)
46857	if err := googleapi.CheckResponse(res); err != nil {
46858		return nil, err
46859	}
46860	ret := &HttpHealthCheck{
46861		ServerResponse: googleapi.ServerResponse{
46862			Header:         res.Header,
46863			HTTPStatusCode: res.StatusCode,
46864		},
46865	}
46866	target := &ret
46867	if err := gensupport.DecodeResponse(target, res); err != nil {
46868		return nil, err
46869	}
46870	return ret, nil
46871	// {
46872	//   "description": "Returns the specified HttpHealthCheck resource. Gets a list of available HTTP health checks by making a list() request.",
46873	//   "httpMethod": "GET",
46874	//   "id": "compute.httpHealthChecks.get",
46875	//   "parameterOrder": [
46876	//     "project",
46877	//     "httpHealthCheck"
46878	//   ],
46879	//   "parameters": {
46880	//     "httpHealthCheck": {
46881	//       "description": "Name of the HttpHealthCheck resource to return.",
46882	//       "location": "path",
46883	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
46884	//       "required": true,
46885	//       "type": "string"
46886	//     },
46887	//     "project": {
46888	//       "description": "Project ID for this request.",
46889	//       "location": "path",
46890	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46891	//       "required": true,
46892	//       "type": "string"
46893	//     }
46894	//   },
46895	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
46896	//   "response": {
46897	//     "$ref": "HttpHealthCheck"
46898	//   },
46899	//   "scopes": [
46900	//     "https://www.googleapis.com/auth/cloud-platform",
46901	//     "https://www.googleapis.com/auth/compute",
46902	//     "https://www.googleapis.com/auth/compute.readonly"
46903	//   ]
46904	// }
46905
46906}
46907
46908// method id "compute.httpHealthChecks.insert":
46909
46910type HttpHealthChecksInsertCall struct {
46911	s               *Service
46912	project         string
46913	httphealthcheck *HttpHealthCheck
46914	urlParams_      gensupport.URLParams
46915	ctx_            context.Context
46916	header_         http.Header
46917}
46918
46919// Insert: Creates a HttpHealthCheck resource in the specified project
46920// using the data included in the request.
46921// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/insert
46922func (r *HttpHealthChecksService) Insert(project string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksInsertCall {
46923	c := &HttpHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46924	c.project = project
46925	c.httphealthcheck = httphealthcheck
46926	return c
46927}
46928
46929// RequestId sets the optional parameter "requestId": An optional
46930// request ID to identify requests. Specify a unique request ID so that
46931// if you must retry your request, the server will know to ignore the
46932// request if it has already been completed.
46933//
46934// For example, consider a situation where you make an initial request
46935// and the request times out. If you make the request again with the
46936// same request ID, the server can check if original operation with the
46937// same request ID was received, and if so, will ignore the second
46938// request. This prevents clients from accidentally creating duplicate
46939// commitments.
46940//
46941// The request ID must be a valid UUID with the exception that zero UUID
46942// is not supported (00000000-0000-0000-0000-000000000000).
46943func (c *HttpHealthChecksInsertCall) RequestId(requestId string) *HttpHealthChecksInsertCall {
46944	c.urlParams_.Set("requestId", requestId)
46945	return c
46946}
46947
46948// Fields allows partial responses to be retrieved. See
46949// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46950// for more information.
46951func (c *HttpHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpHealthChecksInsertCall {
46952	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46953	return c
46954}
46955
46956// Context sets the context to be used in this call's Do method. Any
46957// pending HTTP request will be aborted if the provided context is
46958// canceled.
46959func (c *HttpHealthChecksInsertCall) Context(ctx context.Context) *HttpHealthChecksInsertCall {
46960	c.ctx_ = ctx
46961	return c
46962}
46963
46964// Header returns an http.Header that can be modified by the caller to
46965// add HTTP headers to the request.
46966func (c *HttpHealthChecksInsertCall) Header() http.Header {
46967	if c.header_ == nil {
46968		c.header_ = make(http.Header)
46969	}
46970	return c.header_
46971}
46972
46973func (c *HttpHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
46974	reqHeaders := make(http.Header)
46975	for k, v := range c.header_ {
46976		reqHeaders[k] = v
46977	}
46978	reqHeaders.Set("User-Agent", c.s.userAgent())
46979	var body io.Reader = nil
46980	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
46981	if err != nil {
46982		return nil, err
46983	}
46984	reqHeaders.Set("Content-Type", "application/json")
46985	c.urlParams_.Set("alt", alt)
46986	c.urlParams_.Set("prettyPrint", "false")
46987	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks")
46988	urls += "?" + c.urlParams_.Encode()
46989	req, err := http.NewRequest("POST", urls, body)
46990	if err != nil {
46991		return nil, err
46992	}
46993	req.Header = reqHeaders
46994	googleapi.Expand(req.URL, map[string]string{
46995		"project": c.project,
46996	})
46997	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46998}
46999
47000// Do executes the "compute.httpHealthChecks.insert" call.
47001// Exactly one of *Operation or error will be non-nil. Any non-2xx
47002// status code is an error. Response headers are in either
47003// *Operation.ServerResponse.Header or (if a response was returned at
47004// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47005// to check whether the returned error was because
47006// http.StatusNotModified was returned.
47007func (c *HttpHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
47008	gensupport.SetOptions(c.urlParams_, opts...)
47009	res, err := c.doRequest("json")
47010	if res != nil && res.StatusCode == http.StatusNotModified {
47011		if res.Body != nil {
47012			res.Body.Close()
47013		}
47014		return nil, &googleapi.Error{
47015			Code:   res.StatusCode,
47016			Header: res.Header,
47017		}
47018	}
47019	if err != nil {
47020		return nil, err
47021	}
47022	defer googleapi.CloseBody(res)
47023	if err := googleapi.CheckResponse(res); err != nil {
47024		return nil, err
47025	}
47026	ret := &Operation{
47027		ServerResponse: googleapi.ServerResponse{
47028			Header:         res.Header,
47029			HTTPStatusCode: res.StatusCode,
47030		},
47031	}
47032	target := &ret
47033	if err := gensupport.DecodeResponse(target, res); err != nil {
47034		return nil, err
47035	}
47036	return ret, nil
47037	// {
47038	//   "description": "Creates a HttpHealthCheck resource in the specified project using the data included in the request.",
47039	//   "httpMethod": "POST",
47040	//   "id": "compute.httpHealthChecks.insert",
47041	//   "parameterOrder": [
47042	//     "project"
47043	//   ],
47044	//   "parameters": {
47045	//     "project": {
47046	//       "description": "Project ID for this request.",
47047	//       "location": "path",
47048	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47049	//       "required": true,
47050	//       "type": "string"
47051	//     },
47052	//     "requestId": {
47053	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
47054	//       "location": "query",
47055	//       "type": "string"
47056	//     }
47057	//   },
47058	//   "path": "{project}/global/httpHealthChecks",
47059	//   "request": {
47060	//     "$ref": "HttpHealthCheck"
47061	//   },
47062	//   "response": {
47063	//     "$ref": "Operation"
47064	//   },
47065	//   "scopes": [
47066	//     "https://www.googleapis.com/auth/cloud-platform",
47067	//     "https://www.googleapis.com/auth/compute"
47068	//   ]
47069	// }
47070
47071}
47072
47073// method id "compute.httpHealthChecks.list":
47074
47075type HttpHealthChecksListCall struct {
47076	s            *Service
47077	project      string
47078	urlParams_   gensupport.URLParams
47079	ifNoneMatch_ string
47080	ctx_         context.Context
47081	header_      http.Header
47082}
47083
47084// List: Retrieves the list of HttpHealthCheck resources available to
47085// the specified project.
47086// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/list
47087func (r *HttpHealthChecksService) List(project string) *HttpHealthChecksListCall {
47088	c := &HttpHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47089	c.project = project
47090	return c
47091}
47092
47093// Filter sets the optional parameter "filter": A filter expression that
47094// filters resources listed in the response. The expression must specify
47095// the field name, a comparison operator, and the value that you want to
47096// use for filtering. The value must be a string, a number, or a
47097// boolean. The comparison operator must be either =, !=, >, or <.
47098//
47099// For example, if you are filtering Compute Engine instances, you can
47100// exclude instances named example-instance by specifying name !=
47101// example-instance.
47102//
47103// You can also filter nested fields. For example, you could specify
47104// scheduling.automaticRestart = false to include instances only if they
47105// are not scheduled for automatic restarts. You can use filtering on
47106// nested fields to filter based on resource labels.
47107//
47108// To filter on multiple expressions, provide each separate expression
47109// within parentheses. For example, (scheduling.automaticRestart = true)
47110// (cpuPlatform = "Intel Skylake"). By default, each expression is an
47111// AND expression. However, you can include AND and OR expressions
47112// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
47113// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
47114// true).
47115func (c *HttpHealthChecksListCall) Filter(filter string) *HttpHealthChecksListCall {
47116	c.urlParams_.Set("filter", filter)
47117	return c
47118}
47119
47120// MaxResults sets the optional parameter "maxResults": The maximum
47121// number of results per page that should be returned. If the number of
47122// available results is larger than maxResults, Compute Engine returns a
47123// nextPageToken that can be used to get the next page of results in
47124// subsequent list requests. Acceptable values are 0 to 500, inclusive.
47125// (Default: 500)
47126func (c *HttpHealthChecksListCall) MaxResults(maxResults int64) *HttpHealthChecksListCall {
47127	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
47128	return c
47129}
47130
47131// OrderBy sets the optional parameter "orderBy": Sorts list results by
47132// a certain order. By default, results are returned in alphanumerical
47133// order based on the resource name.
47134//
47135// You can also sort results in descending order based on the creation
47136// timestamp using orderBy="creationTimestamp desc". This sorts results
47137// based on the creationTimestamp field in reverse chronological order
47138// (newest result first). Use this to sort resources like operations so
47139// that the newest operation is returned first.
47140//
47141// Currently, only sorting by name or creationTimestamp desc is
47142// supported.
47143func (c *HttpHealthChecksListCall) OrderBy(orderBy string) *HttpHealthChecksListCall {
47144	c.urlParams_.Set("orderBy", orderBy)
47145	return c
47146}
47147
47148// PageToken sets the optional parameter "pageToken": Specifies a page
47149// token to use. Set pageToken to the nextPageToken returned by a
47150// previous list request to get the next page of results.
47151func (c *HttpHealthChecksListCall) PageToken(pageToken string) *HttpHealthChecksListCall {
47152	c.urlParams_.Set("pageToken", pageToken)
47153	return c
47154}
47155
47156// Fields allows partial responses to be retrieved. See
47157// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47158// for more information.
47159func (c *HttpHealthChecksListCall) Fields(s ...googleapi.Field) *HttpHealthChecksListCall {
47160	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47161	return c
47162}
47163
47164// IfNoneMatch sets the optional parameter which makes the operation
47165// fail if the object's ETag matches the given value. This is useful for
47166// getting updates only after the object has changed since the last
47167// request. Use googleapi.IsNotModified to check whether the response
47168// error from Do is the result of In-None-Match.
47169func (c *HttpHealthChecksListCall) IfNoneMatch(entityTag string) *HttpHealthChecksListCall {
47170	c.ifNoneMatch_ = entityTag
47171	return c
47172}
47173
47174// Context sets the context to be used in this call's Do method. Any
47175// pending HTTP request will be aborted if the provided context is
47176// canceled.
47177func (c *HttpHealthChecksListCall) Context(ctx context.Context) *HttpHealthChecksListCall {
47178	c.ctx_ = ctx
47179	return c
47180}
47181
47182// Header returns an http.Header that can be modified by the caller to
47183// add HTTP headers to the request.
47184func (c *HttpHealthChecksListCall) Header() http.Header {
47185	if c.header_ == nil {
47186		c.header_ = make(http.Header)
47187	}
47188	return c.header_
47189}
47190
47191func (c *HttpHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
47192	reqHeaders := make(http.Header)
47193	for k, v := range c.header_ {
47194		reqHeaders[k] = v
47195	}
47196	reqHeaders.Set("User-Agent", c.s.userAgent())
47197	if c.ifNoneMatch_ != "" {
47198		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
47199	}
47200	var body io.Reader = nil
47201	c.urlParams_.Set("alt", alt)
47202	c.urlParams_.Set("prettyPrint", "false")
47203	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks")
47204	urls += "?" + c.urlParams_.Encode()
47205	req, err := http.NewRequest("GET", urls, body)
47206	if err != nil {
47207		return nil, err
47208	}
47209	req.Header = reqHeaders
47210	googleapi.Expand(req.URL, map[string]string{
47211		"project": c.project,
47212	})
47213	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47214}
47215
47216// Do executes the "compute.httpHealthChecks.list" call.
47217// Exactly one of *HttpHealthCheckList or error will be non-nil. Any
47218// non-2xx status code is an error. Response headers are in either
47219// *HttpHealthCheckList.ServerResponse.Header or (if a response was
47220// returned at all) in error.(*googleapi.Error).Header. Use
47221// googleapi.IsNotModified to check whether the returned error was
47222// because http.StatusNotModified was returned.
47223func (c *HttpHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheckList, error) {
47224	gensupport.SetOptions(c.urlParams_, opts...)
47225	res, err := c.doRequest("json")
47226	if res != nil && res.StatusCode == http.StatusNotModified {
47227		if res.Body != nil {
47228			res.Body.Close()
47229		}
47230		return nil, &googleapi.Error{
47231			Code:   res.StatusCode,
47232			Header: res.Header,
47233		}
47234	}
47235	if err != nil {
47236		return nil, err
47237	}
47238	defer googleapi.CloseBody(res)
47239	if err := googleapi.CheckResponse(res); err != nil {
47240		return nil, err
47241	}
47242	ret := &HttpHealthCheckList{
47243		ServerResponse: googleapi.ServerResponse{
47244			Header:         res.Header,
47245			HTTPStatusCode: res.StatusCode,
47246		},
47247	}
47248	target := &ret
47249	if err := gensupport.DecodeResponse(target, res); err != nil {
47250		return nil, err
47251	}
47252	return ret, nil
47253	// {
47254	//   "description": "Retrieves the list of HttpHealthCheck resources available to the specified project.",
47255	//   "httpMethod": "GET",
47256	//   "id": "compute.httpHealthChecks.list",
47257	//   "parameterOrder": [
47258	//     "project"
47259	//   ],
47260	//   "parameters": {
47261	//     "filter": {
47262	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
47263	//       "location": "query",
47264	//       "type": "string"
47265	//     },
47266	//     "maxResults": {
47267	//       "default": "500",
47268	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
47269	//       "format": "uint32",
47270	//       "location": "query",
47271	//       "minimum": "0",
47272	//       "type": "integer"
47273	//     },
47274	//     "orderBy": {
47275	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
47276	//       "location": "query",
47277	//       "type": "string"
47278	//     },
47279	//     "pageToken": {
47280	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
47281	//       "location": "query",
47282	//       "type": "string"
47283	//     },
47284	//     "project": {
47285	//       "description": "Project ID for this request.",
47286	//       "location": "path",
47287	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47288	//       "required": true,
47289	//       "type": "string"
47290	//     }
47291	//   },
47292	//   "path": "{project}/global/httpHealthChecks",
47293	//   "response": {
47294	//     "$ref": "HttpHealthCheckList"
47295	//   },
47296	//   "scopes": [
47297	//     "https://www.googleapis.com/auth/cloud-platform",
47298	//     "https://www.googleapis.com/auth/compute",
47299	//     "https://www.googleapis.com/auth/compute.readonly"
47300	//   ]
47301	// }
47302
47303}
47304
47305// Pages invokes f for each page of results.
47306// A non-nil error returned from f will halt the iteration.
47307// The provided context supersedes any context provided to the Context method.
47308func (c *HttpHealthChecksListCall) Pages(ctx context.Context, f func(*HttpHealthCheckList) error) error {
47309	c.ctx_ = ctx
47310	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
47311	for {
47312		x, err := c.Do()
47313		if err != nil {
47314			return err
47315		}
47316		if err := f(x); err != nil {
47317			return err
47318		}
47319		if x.NextPageToken == "" {
47320			return nil
47321		}
47322		c.PageToken(x.NextPageToken)
47323	}
47324}
47325
47326// method id "compute.httpHealthChecks.patch":
47327
47328type HttpHealthChecksPatchCall struct {
47329	s               *Service
47330	project         string
47331	httpHealthCheck string
47332	httphealthcheck *HttpHealthCheck
47333	urlParams_      gensupport.URLParams
47334	ctx_            context.Context
47335	header_         http.Header
47336}
47337
47338// Patch: Updates a HttpHealthCheck resource in the specified project
47339// using the data included in the request. This method supports PATCH
47340// semantics and uses the JSON merge patch format and processing rules.
47341// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/patch
47342func (r *HttpHealthChecksService) Patch(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksPatchCall {
47343	c := &HttpHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47344	c.project = project
47345	c.httpHealthCheck = httpHealthCheck
47346	c.httphealthcheck = httphealthcheck
47347	return c
47348}
47349
47350// RequestId sets the optional parameter "requestId": An optional
47351// request ID to identify requests. Specify a unique request ID so that
47352// if you must retry your request, the server will know to ignore the
47353// request if it has already been completed.
47354//
47355// For example, consider a situation where you make an initial request
47356// and the request times out. If you make the request again with the
47357// same request ID, the server can check if original operation with the
47358// same request ID was received, and if so, will ignore the second
47359// request. This prevents clients from accidentally creating duplicate
47360// commitments.
47361//
47362// The request ID must be a valid UUID with the exception that zero UUID
47363// is not supported (00000000-0000-0000-0000-000000000000).
47364func (c *HttpHealthChecksPatchCall) RequestId(requestId string) *HttpHealthChecksPatchCall {
47365	c.urlParams_.Set("requestId", requestId)
47366	return c
47367}
47368
47369// Fields allows partial responses to be retrieved. See
47370// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47371// for more information.
47372func (c *HttpHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpHealthChecksPatchCall {
47373	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47374	return c
47375}
47376
47377// Context sets the context to be used in this call's Do method. Any
47378// pending HTTP request will be aborted if the provided context is
47379// canceled.
47380func (c *HttpHealthChecksPatchCall) Context(ctx context.Context) *HttpHealthChecksPatchCall {
47381	c.ctx_ = ctx
47382	return c
47383}
47384
47385// Header returns an http.Header that can be modified by the caller to
47386// add HTTP headers to the request.
47387func (c *HttpHealthChecksPatchCall) Header() http.Header {
47388	if c.header_ == nil {
47389		c.header_ = make(http.Header)
47390	}
47391	return c.header_
47392}
47393
47394func (c *HttpHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
47395	reqHeaders := make(http.Header)
47396	for k, v := range c.header_ {
47397		reqHeaders[k] = v
47398	}
47399	reqHeaders.Set("User-Agent", c.s.userAgent())
47400	var body io.Reader = nil
47401	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
47402	if err != nil {
47403		return nil, err
47404	}
47405	reqHeaders.Set("Content-Type", "application/json")
47406	c.urlParams_.Set("alt", alt)
47407	c.urlParams_.Set("prettyPrint", "false")
47408	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
47409	urls += "?" + c.urlParams_.Encode()
47410	req, err := http.NewRequest("PATCH", urls, body)
47411	if err != nil {
47412		return nil, err
47413	}
47414	req.Header = reqHeaders
47415	googleapi.Expand(req.URL, map[string]string{
47416		"project":         c.project,
47417		"httpHealthCheck": c.httpHealthCheck,
47418	})
47419	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47420}
47421
47422// Do executes the "compute.httpHealthChecks.patch" call.
47423// Exactly one of *Operation or error will be non-nil. Any non-2xx
47424// status code is an error. Response headers are in either
47425// *Operation.ServerResponse.Header or (if a response was returned at
47426// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47427// to check whether the returned error was because
47428// http.StatusNotModified was returned.
47429func (c *HttpHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
47430	gensupport.SetOptions(c.urlParams_, opts...)
47431	res, err := c.doRequest("json")
47432	if res != nil && res.StatusCode == http.StatusNotModified {
47433		if res.Body != nil {
47434			res.Body.Close()
47435		}
47436		return nil, &googleapi.Error{
47437			Code:   res.StatusCode,
47438			Header: res.Header,
47439		}
47440	}
47441	if err != nil {
47442		return nil, err
47443	}
47444	defer googleapi.CloseBody(res)
47445	if err := googleapi.CheckResponse(res); err != nil {
47446		return nil, err
47447	}
47448	ret := &Operation{
47449		ServerResponse: googleapi.ServerResponse{
47450			Header:         res.Header,
47451			HTTPStatusCode: res.StatusCode,
47452		},
47453	}
47454	target := &ret
47455	if err := gensupport.DecodeResponse(target, res); err != nil {
47456		return nil, err
47457	}
47458	return ret, nil
47459	// {
47460	//   "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.",
47461	//   "httpMethod": "PATCH",
47462	//   "id": "compute.httpHealthChecks.patch",
47463	//   "parameterOrder": [
47464	//     "project",
47465	//     "httpHealthCheck"
47466	//   ],
47467	//   "parameters": {
47468	//     "httpHealthCheck": {
47469	//       "description": "Name of the HttpHealthCheck resource to patch.",
47470	//       "location": "path",
47471	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
47472	//       "required": true,
47473	//       "type": "string"
47474	//     },
47475	//     "project": {
47476	//       "description": "Project ID for this request.",
47477	//       "location": "path",
47478	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47479	//       "required": true,
47480	//       "type": "string"
47481	//     },
47482	//     "requestId": {
47483	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
47484	//       "location": "query",
47485	//       "type": "string"
47486	//     }
47487	//   },
47488	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
47489	//   "request": {
47490	//     "$ref": "HttpHealthCheck"
47491	//   },
47492	//   "response": {
47493	//     "$ref": "Operation"
47494	//   },
47495	//   "scopes": [
47496	//     "https://www.googleapis.com/auth/cloud-platform",
47497	//     "https://www.googleapis.com/auth/compute"
47498	//   ]
47499	// }
47500
47501}
47502
47503// method id "compute.httpHealthChecks.update":
47504
47505type HttpHealthChecksUpdateCall struct {
47506	s               *Service
47507	project         string
47508	httpHealthCheck string
47509	httphealthcheck *HttpHealthCheck
47510	urlParams_      gensupport.URLParams
47511	ctx_            context.Context
47512	header_         http.Header
47513}
47514
47515// Update: Updates a HttpHealthCheck resource in the specified project
47516// using the data included in the request.
47517// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/update
47518func (r *HttpHealthChecksService) Update(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksUpdateCall {
47519	c := &HttpHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47520	c.project = project
47521	c.httpHealthCheck = httpHealthCheck
47522	c.httphealthcheck = httphealthcheck
47523	return c
47524}
47525
47526// RequestId sets the optional parameter "requestId": An optional
47527// request ID to identify requests. Specify a unique request ID so that
47528// if you must retry your request, the server will know to ignore the
47529// request if it has already been completed.
47530//
47531// For example, consider a situation where you make an initial request
47532// and the request times out. If you make the request again with the
47533// same request ID, the server can check if original operation with the
47534// same request ID was received, and if so, will ignore the second
47535// request. This prevents clients from accidentally creating duplicate
47536// commitments.
47537//
47538// The request ID must be a valid UUID with the exception that zero UUID
47539// is not supported (00000000-0000-0000-0000-000000000000).
47540func (c *HttpHealthChecksUpdateCall) RequestId(requestId string) *HttpHealthChecksUpdateCall {
47541	c.urlParams_.Set("requestId", requestId)
47542	return c
47543}
47544
47545// Fields allows partial responses to be retrieved. See
47546// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47547// for more information.
47548func (c *HttpHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpHealthChecksUpdateCall {
47549	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47550	return c
47551}
47552
47553// Context sets the context to be used in this call's Do method. Any
47554// pending HTTP request will be aborted if the provided context is
47555// canceled.
47556func (c *HttpHealthChecksUpdateCall) Context(ctx context.Context) *HttpHealthChecksUpdateCall {
47557	c.ctx_ = ctx
47558	return c
47559}
47560
47561// Header returns an http.Header that can be modified by the caller to
47562// add HTTP headers to the request.
47563func (c *HttpHealthChecksUpdateCall) Header() http.Header {
47564	if c.header_ == nil {
47565		c.header_ = make(http.Header)
47566	}
47567	return c.header_
47568}
47569
47570func (c *HttpHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
47571	reqHeaders := make(http.Header)
47572	for k, v := range c.header_ {
47573		reqHeaders[k] = v
47574	}
47575	reqHeaders.Set("User-Agent", c.s.userAgent())
47576	var body io.Reader = nil
47577	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
47578	if err != nil {
47579		return nil, err
47580	}
47581	reqHeaders.Set("Content-Type", "application/json")
47582	c.urlParams_.Set("alt", alt)
47583	c.urlParams_.Set("prettyPrint", "false")
47584	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
47585	urls += "?" + c.urlParams_.Encode()
47586	req, err := http.NewRequest("PUT", urls, body)
47587	if err != nil {
47588		return nil, err
47589	}
47590	req.Header = reqHeaders
47591	googleapi.Expand(req.URL, map[string]string{
47592		"project":         c.project,
47593		"httpHealthCheck": c.httpHealthCheck,
47594	})
47595	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47596}
47597
47598// Do executes the "compute.httpHealthChecks.update" call.
47599// Exactly one of *Operation or error will be non-nil. Any non-2xx
47600// status code is an error. Response headers are in either
47601// *Operation.ServerResponse.Header or (if a response was returned at
47602// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47603// to check whether the returned error was because
47604// http.StatusNotModified was returned.
47605func (c *HttpHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
47606	gensupport.SetOptions(c.urlParams_, opts...)
47607	res, err := c.doRequest("json")
47608	if res != nil && res.StatusCode == http.StatusNotModified {
47609		if res.Body != nil {
47610			res.Body.Close()
47611		}
47612		return nil, &googleapi.Error{
47613			Code:   res.StatusCode,
47614			Header: res.Header,
47615		}
47616	}
47617	if err != nil {
47618		return nil, err
47619	}
47620	defer googleapi.CloseBody(res)
47621	if err := googleapi.CheckResponse(res); err != nil {
47622		return nil, err
47623	}
47624	ret := &Operation{
47625		ServerResponse: googleapi.ServerResponse{
47626			Header:         res.Header,
47627			HTTPStatusCode: res.StatusCode,
47628		},
47629	}
47630	target := &ret
47631	if err := gensupport.DecodeResponse(target, res); err != nil {
47632		return nil, err
47633	}
47634	return ret, nil
47635	// {
47636	//   "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request.",
47637	//   "httpMethod": "PUT",
47638	//   "id": "compute.httpHealthChecks.update",
47639	//   "parameterOrder": [
47640	//     "project",
47641	//     "httpHealthCheck"
47642	//   ],
47643	//   "parameters": {
47644	//     "httpHealthCheck": {
47645	//       "description": "Name of the HttpHealthCheck resource to update.",
47646	//       "location": "path",
47647	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
47648	//       "required": true,
47649	//       "type": "string"
47650	//     },
47651	//     "project": {
47652	//       "description": "Project ID for this request.",
47653	//       "location": "path",
47654	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47655	//       "required": true,
47656	//       "type": "string"
47657	//     },
47658	//     "requestId": {
47659	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
47660	//       "location": "query",
47661	//       "type": "string"
47662	//     }
47663	//   },
47664	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
47665	//   "request": {
47666	//     "$ref": "HttpHealthCheck"
47667	//   },
47668	//   "response": {
47669	//     "$ref": "Operation"
47670	//   },
47671	//   "scopes": [
47672	//     "https://www.googleapis.com/auth/cloud-platform",
47673	//     "https://www.googleapis.com/auth/compute"
47674	//   ]
47675	// }
47676
47677}
47678
47679// method id "compute.httpsHealthChecks.delete":
47680
47681type HttpsHealthChecksDeleteCall struct {
47682	s                *Service
47683	project          string
47684	httpsHealthCheck string
47685	urlParams_       gensupport.URLParams
47686	ctx_             context.Context
47687	header_          http.Header
47688}
47689
47690// Delete: Deletes the specified HttpsHealthCheck resource.
47691func (r *HttpsHealthChecksService) Delete(project string, httpsHealthCheck string) *HttpsHealthChecksDeleteCall {
47692	c := &HttpsHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47693	c.project = project
47694	c.httpsHealthCheck = httpsHealthCheck
47695	return c
47696}
47697
47698// RequestId sets the optional parameter "requestId": An optional
47699// request ID to identify requests. Specify a unique request ID so that
47700// if you must retry your request, the server will know to ignore the
47701// request if it has already been completed.
47702//
47703// For example, consider a situation where you make an initial request
47704// and the request times out. If you make the request again with the
47705// same request ID, the server can check if original operation with the
47706// same request ID was received, and if so, will ignore the second
47707// request. This prevents clients from accidentally creating duplicate
47708// commitments.
47709//
47710// The request ID must be a valid UUID with the exception that zero UUID
47711// is not supported (00000000-0000-0000-0000-000000000000).
47712func (c *HttpsHealthChecksDeleteCall) RequestId(requestId string) *HttpsHealthChecksDeleteCall {
47713	c.urlParams_.Set("requestId", requestId)
47714	return c
47715}
47716
47717// Fields allows partial responses to be retrieved. See
47718// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47719// for more information.
47720func (c *HttpsHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpsHealthChecksDeleteCall {
47721	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47722	return c
47723}
47724
47725// Context sets the context to be used in this call's Do method. Any
47726// pending HTTP request will be aborted if the provided context is
47727// canceled.
47728func (c *HttpsHealthChecksDeleteCall) Context(ctx context.Context) *HttpsHealthChecksDeleteCall {
47729	c.ctx_ = ctx
47730	return c
47731}
47732
47733// Header returns an http.Header that can be modified by the caller to
47734// add HTTP headers to the request.
47735func (c *HttpsHealthChecksDeleteCall) Header() http.Header {
47736	if c.header_ == nil {
47737		c.header_ = make(http.Header)
47738	}
47739	return c.header_
47740}
47741
47742func (c *HttpsHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
47743	reqHeaders := make(http.Header)
47744	for k, v := range c.header_ {
47745		reqHeaders[k] = v
47746	}
47747	reqHeaders.Set("User-Agent", c.s.userAgent())
47748	var body io.Reader = nil
47749	c.urlParams_.Set("alt", alt)
47750	c.urlParams_.Set("prettyPrint", "false")
47751	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
47752	urls += "?" + c.urlParams_.Encode()
47753	req, err := http.NewRequest("DELETE", urls, body)
47754	if err != nil {
47755		return nil, err
47756	}
47757	req.Header = reqHeaders
47758	googleapi.Expand(req.URL, map[string]string{
47759		"project":          c.project,
47760		"httpsHealthCheck": c.httpsHealthCheck,
47761	})
47762	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47763}
47764
47765// Do executes the "compute.httpsHealthChecks.delete" call.
47766// Exactly one of *Operation or error will be non-nil. Any non-2xx
47767// status code is an error. Response headers are in either
47768// *Operation.ServerResponse.Header or (if a response was returned at
47769// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47770// to check whether the returned error was because
47771// http.StatusNotModified was returned.
47772func (c *HttpsHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
47773	gensupport.SetOptions(c.urlParams_, opts...)
47774	res, err := c.doRequest("json")
47775	if res != nil && res.StatusCode == http.StatusNotModified {
47776		if res.Body != nil {
47777			res.Body.Close()
47778		}
47779		return nil, &googleapi.Error{
47780			Code:   res.StatusCode,
47781			Header: res.Header,
47782		}
47783	}
47784	if err != nil {
47785		return nil, err
47786	}
47787	defer googleapi.CloseBody(res)
47788	if err := googleapi.CheckResponse(res); err != nil {
47789		return nil, err
47790	}
47791	ret := &Operation{
47792		ServerResponse: googleapi.ServerResponse{
47793			Header:         res.Header,
47794			HTTPStatusCode: res.StatusCode,
47795		},
47796	}
47797	target := &ret
47798	if err := gensupport.DecodeResponse(target, res); err != nil {
47799		return nil, err
47800	}
47801	return ret, nil
47802	// {
47803	//   "description": "Deletes the specified HttpsHealthCheck resource.",
47804	//   "httpMethod": "DELETE",
47805	//   "id": "compute.httpsHealthChecks.delete",
47806	//   "parameterOrder": [
47807	//     "project",
47808	//     "httpsHealthCheck"
47809	//   ],
47810	//   "parameters": {
47811	//     "httpsHealthCheck": {
47812	//       "description": "Name of the HttpsHealthCheck resource to delete.",
47813	//       "location": "path",
47814	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
47815	//       "required": true,
47816	//       "type": "string"
47817	//     },
47818	//     "project": {
47819	//       "description": "Project ID for this request.",
47820	//       "location": "path",
47821	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47822	//       "required": true,
47823	//       "type": "string"
47824	//     },
47825	//     "requestId": {
47826	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
47827	//       "location": "query",
47828	//       "type": "string"
47829	//     }
47830	//   },
47831	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
47832	//   "response": {
47833	//     "$ref": "Operation"
47834	//   },
47835	//   "scopes": [
47836	//     "https://www.googleapis.com/auth/cloud-platform",
47837	//     "https://www.googleapis.com/auth/compute"
47838	//   ]
47839	// }
47840
47841}
47842
47843// method id "compute.httpsHealthChecks.get":
47844
47845type HttpsHealthChecksGetCall struct {
47846	s                *Service
47847	project          string
47848	httpsHealthCheck string
47849	urlParams_       gensupport.URLParams
47850	ifNoneMatch_     string
47851	ctx_             context.Context
47852	header_          http.Header
47853}
47854
47855// Get: Returns the specified HttpsHealthCheck resource. Gets a list of
47856// available HTTPS health checks by making a list() request.
47857func (r *HttpsHealthChecksService) Get(project string, httpsHealthCheck string) *HttpsHealthChecksGetCall {
47858	c := &HttpsHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47859	c.project = project
47860	c.httpsHealthCheck = httpsHealthCheck
47861	return c
47862}
47863
47864// Fields allows partial responses to be retrieved. See
47865// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47866// for more information.
47867func (c *HttpsHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpsHealthChecksGetCall {
47868	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47869	return c
47870}
47871
47872// IfNoneMatch sets the optional parameter which makes the operation
47873// fail if the object's ETag matches the given value. This is useful for
47874// getting updates only after the object has changed since the last
47875// request. Use googleapi.IsNotModified to check whether the response
47876// error from Do is the result of In-None-Match.
47877func (c *HttpsHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpsHealthChecksGetCall {
47878	c.ifNoneMatch_ = entityTag
47879	return c
47880}
47881
47882// Context sets the context to be used in this call's Do method. Any
47883// pending HTTP request will be aborted if the provided context is
47884// canceled.
47885func (c *HttpsHealthChecksGetCall) Context(ctx context.Context) *HttpsHealthChecksGetCall {
47886	c.ctx_ = ctx
47887	return c
47888}
47889
47890// Header returns an http.Header that can be modified by the caller to
47891// add HTTP headers to the request.
47892func (c *HttpsHealthChecksGetCall) Header() http.Header {
47893	if c.header_ == nil {
47894		c.header_ = make(http.Header)
47895	}
47896	return c.header_
47897}
47898
47899func (c *HttpsHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
47900	reqHeaders := make(http.Header)
47901	for k, v := range c.header_ {
47902		reqHeaders[k] = v
47903	}
47904	reqHeaders.Set("User-Agent", c.s.userAgent())
47905	if c.ifNoneMatch_ != "" {
47906		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
47907	}
47908	var body io.Reader = nil
47909	c.urlParams_.Set("alt", alt)
47910	c.urlParams_.Set("prettyPrint", "false")
47911	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
47912	urls += "?" + c.urlParams_.Encode()
47913	req, err := http.NewRequest("GET", urls, body)
47914	if err != nil {
47915		return nil, err
47916	}
47917	req.Header = reqHeaders
47918	googleapi.Expand(req.URL, map[string]string{
47919		"project":          c.project,
47920		"httpsHealthCheck": c.httpsHealthCheck,
47921	})
47922	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47923}
47924
47925// Do executes the "compute.httpsHealthChecks.get" call.
47926// Exactly one of *HttpsHealthCheck or error will be non-nil. Any
47927// non-2xx status code is an error. Response headers are in either
47928// *HttpsHealthCheck.ServerResponse.Header or (if a response was
47929// returned at all) in error.(*googleapi.Error).Header. Use
47930// googleapi.IsNotModified to check whether the returned error was
47931// because http.StatusNotModified was returned.
47932func (c *HttpsHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheck, error) {
47933	gensupport.SetOptions(c.urlParams_, opts...)
47934	res, err := c.doRequest("json")
47935	if res != nil && res.StatusCode == http.StatusNotModified {
47936		if res.Body != nil {
47937			res.Body.Close()
47938		}
47939		return nil, &googleapi.Error{
47940			Code:   res.StatusCode,
47941			Header: res.Header,
47942		}
47943	}
47944	if err != nil {
47945		return nil, err
47946	}
47947	defer googleapi.CloseBody(res)
47948	if err := googleapi.CheckResponse(res); err != nil {
47949		return nil, err
47950	}
47951	ret := &HttpsHealthCheck{
47952		ServerResponse: googleapi.ServerResponse{
47953			Header:         res.Header,
47954			HTTPStatusCode: res.StatusCode,
47955		},
47956	}
47957	target := &ret
47958	if err := gensupport.DecodeResponse(target, res); err != nil {
47959		return nil, err
47960	}
47961	return ret, nil
47962	// {
47963	//   "description": "Returns the specified HttpsHealthCheck resource. Gets a list of available HTTPS health checks by making a list() request.",
47964	//   "httpMethod": "GET",
47965	//   "id": "compute.httpsHealthChecks.get",
47966	//   "parameterOrder": [
47967	//     "project",
47968	//     "httpsHealthCheck"
47969	//   ],
47970	//   "parameters": {
47971	//     "httpsHealthCheck": {
47972	//       "description": "Name of the HttpsHealthCheck resource to return.",
47973	//       "location": "path",
47974	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
47975	//       "required": true,
47976	//       "type": "string"
47977	//     },
47978	//     "project": {
47979	//       "description": "Project ID for this request.",
47980	//       "location": "path",
47981	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47982	//       "required": true,
47983	//       "type": "string"
47984	//     }
47985	//   },
47986	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
47987	//   "response": {
47988	//     "$ref": "HttpsHealthCheck"
47989	//   },
47990	//   "scopes": [
47991	//     "https://www.googleapis.com/auth/cloud-platform",
47992	//     "https://www.googleapis.com/auth/compute",
47993	//     "https://www.googleapis.com/auth/compute.readonly"
47994	//   ]
47995	// }
47996
47997}
47998
47999// method id "compute.httpsHealthChecks.insert":
48000
48001type HttpsHealthChecksInsertCall struct {
48002	s                *Service
48003	project          string
48004	httpshealthcheck *HttpsHealthCheck
48005	urlParams_       gensupport.URLParams
48006	ctx_             context.Context
48007	header_          http.Header
48008}
48009
48010// Insert: Creates a HttpsHealthCheck resource in the specified project
48011// using the data included in the request.
48012func (r *HttpsHealthChecksService) Insert(project string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksInsertCall {
48013	c := &HttpsHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48014	c.project = project
48015	c.httpshealthcheck = httpshealthcheck
48016	return c
48017}
48018
48019// RequestId sets the optional parameter "requestId": An optional
48020// request ID to identify requests. Specify a unique request ID so that
48021// if you must retry your request, the server will know to ignore the
48022// request if it has already been completed.
48023//
48024// For example, consider a situation where you make an initial request
48025// and the request times out. If you make the request again with the
48026// same request ID, the server can check if original operation with the
48027// same request ID was received, and if so, will ignore the second
48028// request. This prevents clients from accidentally creating duplicate
48029// commitments.
48030//
48031// The request ID must be a valid UUID with the exception that zero UUID
48032// is not supported (00000000-0000-0000-0000-000000000000).
48033func (c *HttpsHealthChecksInsertCall) RequestId(requestId string) *HttpsHealthChecksInsertCall {
48034	c.urlParams_.Set("requestId", requestId)
48035	return c
48036}
48037
48038// Fields allows partial responses to be retrieved. See
48039// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48040// for more information.
48041func (c *HttpsHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpsHealthChecksInsertCall {
48042	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48043	return c
48044}
48045
48046// Context sets the context to be used in this call's Do method. Any
48047// pending HTTP request will be aborted if the provided context is
48048// canceled.
48049func (c *HttpsHealthChecksInsertCall) Context(ctx context.Context) *HttpsHealthChecksInsertCall {
48050	c.ctx_ = ctx
48051	return c
48052}
48053
48054// Header returns an http.Header that can be modified by the caller to
48055// add HTTP headers to the request.
48056func (c *HttpsHealthChecksInsertCall) Header() http.Header {
48057	if c.header_ == nil {
48058		c.header_ = make(http.Header)
48059	}
48060	return c.header_
48061}
48062
48063func (c *HttpsHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
48064	reqHeaders := make(http.Header)
48065	for k, v := range c.header_ {
48066		reqHeaders[k] = v
48067	}
48068	reqHeaders.Set("User-Agent", c.s.userAgent())
48069	var body io.Reader = nil
48070	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
48071	if err != nil {
48072		return nil, err
48073	}
48074	reqHeaders.Set("Content-Type", "application/json")
48075	c.urlParams_.Set("alt", alt)
48076	c.urlParams_.Set("prettyPrint", "false")
48077	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks")
48078	urls += "?" + c.urlParams_.Encode()
48079	req, err := http.NewRequest("POST", urls, body)
48080	if err != nil {
48081		return nil, err
48082	}
48083	req.Header = reqHeaders
48084	googleapi.Expand(req.URL, map[string]string{
48085		"project": c.project,
48086	})
48087	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48088}
48089
48090// Do executes the "compute.httpsHealthChecks.insert" call.
48091// Exactly one of *Operation or error will be non-nil. Any non-2xx
48092// status code is an error. Response headers are in either
48093// *Operation.ServerResponse.Header or (if a response was returned at
48094// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48095// to check whether the returned error was because
48096// http.StatusNotModified was returned.
48097func (c *HttpsHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48098	gensupport.SetOptions(c.urlParams_, opts...)
48099	res, err := c.doRequest("json")
48100	if res != nil && res.StatusCode == http.StatusNotModified {
48101		if res.Body != nil {
48102			res.Body.Close()
48103		}
48104		return nil, &googleapi.Error{
48105			Code:   res.StatusCode,
48106			Header: res.Header,
48107		}
48108	}
48109	if err != nil {
48110		return nil, err
48111	}
48112	defer googleapi.CloseBody(res)
48113	if err := googleapi.CheckResponse(res); err != nil {
48114		return nil, err
48115	}
48116	ret := &Operation{
48117		ServerResponse: googleapi.ServerResponse{
48118			Header:         res.Header,
48119			HTTPStatusCode: res.StatusCode,
48120		},
48121	}
48122	target := &ret
48123	if err := gensupport.DecodeResponse(target, res); err != nil {
48124		return nil, err
48125	}
48126	return ret, nil
48127	// {
48128	//   "description": "Creates a HttpsHealthCheck resource in the specified project using the data included in the request.",
48129	//   "httpMethod": "POST",
48130	//   "id": "compute.httpsHealthChecks.insert",
48131	//   "parameterOrder": [
48132	//     "project"
48133	//   ],
48134	//   "parameters": {
48135	//     "project": {
48136	//       "description": "Project ID for this request.",
48137	//       "location": "path",
48138	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48139	//       "required": true,
48140	//       "type": "string"
48141	//     },
48142	//     "requestId": {
48143	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48144	//       "location": "query",
48145	//       "type": "string"
48146	//     }
48147	//   },
48148	//   "path": "{project}/global/httpsHealthChecks",
48149	//   "request": {
48150	//     "$ref": "HttpsHealthCheck"
48151	//   },
48152	//   "response": {
48153	//     "$ref": "Operation"
48154	//   },
48155	//   "scopes": [
48156	//     "https://www.googleapis.com/auth/cloud-platform",
48157	//     "https://www.googleapis.com/auth/compute"
48158	//   ]
48159	// }
48160
48161}
48162
48163// method id "compute.httpsHealthChecks.list":
48164
48165type HttpsHealthChecksListCall struct {
48166	s            *Service
48167	project      string
48168	urlParams_   gensupport.URLParams
48169	ifNoneMatch_ string
48170	ctx_         context.Context
48171	header_      http.Header
48172}
48173
48174// List: Retrieves the list of HttpsHealthCheck resources available to
48175// the specified project.
48176func (r *HttpsHealthChecksService) List(project string) *HttpsHealthChecksListCall {
48177	c := &HttpsHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48178	c.project = project
48179	return c
48180}
48181
48182// Filter sets the optional parameter "filter": A filter expression that
48183// filters resources listed in the response. The expression must specify
48184// the field name, a comparison operator, and the value that you want to
48185// use for filtering. The value must be a string, a number, or a
48186// boolean. The comparison operator must be either =, !=, >, or <.
48187//
48188// For example, if you are filtering Compute Engine instances, you can
48189// exclude instances named example-instance by specifying name !=
48190// example-instance.
48191//
48192// You can also filter nested fields. For example, you could specify
48193// scheduling.automaticRestart = false to include instances only if they
48194// are not scheduled for automatic restarts. You can use filtering on
48195// nested fields to filter based on resource labels.
48196//
48197// To filter on multiple expressions, provide each separate expression
48198// within parentheses. For example, (scheduling.automaticRestart = true)
48199// (cpuPlatform = "Intel Skylake"). By default, each expression is an
48200// AND expression. However, you can include AND and OR expressions
48201// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
48202// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
48203// true).
48204func (c *HttpsHealthChecksListCall) Filter(filter string) *HttpsHealthChecksListCall {
48205	c.urlParams_.Set("filter", filter)
48206	return c
48207}
48208
48209// MaxResults sets the optional parameter "maxResults": The maximum
48210// number of results per page that should be returned. If the number of
48211// available results is larger than maxResults, Compute Engine returns a
48212// nextPageToken that can be used to get the next page of results in
48213// subsequent list requests. Acceptable values are 0 to 500, inclusive.
48214// (Default: 500)
48215func (c *HttpsHealthChecksListCall) MaxResults(maxResults int64) *HttpsHealthChecksListCall {
48216	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
48217	return c
48218}
48219
48220// OrderBy sets the optional parameter "orderBy": Sorts list results by
48221// a certain order. By default, results are returned in alphanumerical
48222// order based on the resource name.
48223//
48224// You can also sort results in descending order based on the creation
48225// timestamp using orderBy="creationTimestamp desc". This sorts results
48226// based on the creationTimestamp field in reverse chronological order
48227// (newest result first). Use this to sort resources like operations so
48228// that the newest operation is returned first.
48229//
48230// Currently, only sorting by name or creationTimestamp desc is
48231// supported.
48232func (c *HttpsHealthChecksListCall) OrderBy(orderBy string) *HttpsHealthChecksListCall {
48233	c.urlParams_.Set("orderBy", orderBy)
48234	return c
48235}
48236
48237// PageToken sets the optional parameter "pageToken": Specifies a page
48238// token to use. Set pageToken to the nextPageToken returned by a
48239// previous list request to get the next page of results.
48240func (c *HttpsHealthChecksListCall) PageToken(pageToken string) *HttpsHealthChecksListCall {
48241	c.urlParams_.Set("pageToken", pageToken)
48242	return c
48243}
48244
48245// Fields allows partial responses to be retrieved. See
48246// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48247// for more information.
48248func (c *HttpsHealthChecksListCall) Fields(s ...googleapi.Field) *HttpsHealthChecksListCall {
48249	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48250	return c
48251}
48252
48253// IfNoneMatch sets the optional parameter which makes the operation
48254// fail if the object's ETag matches the given value. This is useful for
48255// getting updates only after the object has changed since the last
48256// request. Use googleapi.IsNotModified to check whether the response
48257// error from Do is the result of In-None-Match.
48258func (c *HttpsHealthChecksListCall) IfNoneMatch(entityTag string) *HttpsHealthChecksListCall {
48259	c.ifNoneMatch_ = entityTag
48260	return c
48261}
48262
48263// Context sets the context to be used in this call's Do method. Any
48264// pending HTTP request will be aborted if the provided context is
48265// canceled.
48266func (c *HttpsHealthChecksListCall) Context(ctx context.Context) *HttpsHealthChecksListCall {
48267	c.ctx_ = ctx
48268	return c
48269}
48270
48271// Header returns an http.Header that can be modified by the caller to
48272// add HTTP headers to the request.
48273func (c *HttpsHealthChecksListCall) Header() http.Header {
48274	if c.header_ == nil {
48275		c.header_ = make(http.Header)
48276	}
48277	return c.header_
48278}
48279
48280func (c *HttpsHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
48281	reqHeaders := make(http.Header)
48282	for k, v := range c.header_ {
48283		reqHeaders[k] = v
48284	}
48285	reqHeaders.Set("User-Agent", c.s.userAgent())
48286	if c.ifNoneMatch_ != "" {
48287		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
48288	}
48289	var body io.Reader = nil
48290	c.urlParams_.Set("alt", alt)
48291	c.urlParams_.Set("prettyPrint", "false")
48292	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks")
48293	urls += "?" + c.urlParams_.Encode()
48294	req, err := http.NewRequest("GET", urls, body)
48295	if err != nil {
48296		return nil, err
48297	}
48298	req.Header = reqHeaders
48299	googleapi.Expand(req.URL, map[string]string{
48300		"project": c.project,
48301	})
48302	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48303}
48304
48305// Do executes the "compute.httpsHealthChecks.list" call.
48306// Exactly one of *HttpsHealthCheckList or error will be non-nil. Any
48307// non-2xx status code is an error. Response headers are in either
48308// *HttpsHealthCheckList.ServerResponse.Header or (if a response was
48309// returned at all) in error.(*googleapi.Error).Header. Use
48310// googleapi.IsNotModified to check whether the returned error was
48311// because http.StatusNotModified was returned.
48312func (c *HttpsHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheckList, error) {
48313	gensupport.SetOptions(c.urlParams_, opts...)
48314	res, err := c.doRequest("json")
48315	if res != nil && res.StatusCode == http.StatusNotModified {
48316		if res.Body != nil {
48317			res.Body.Close()
48318		}
48319		return nil, &googleapi.Error{
48320			Code:   res.StatusCode,
48321			Header: res.Header,
48322		}
48323	}
48324	if err != nil {
48325		return nil, err
48326	}
48327	defer googleapi.CloseBody(res)
48328	if err := googleapi.CheckResponse(res); err != nil {
48329		return nil, err
48330	}
48331	ret := &HttpsHealthCheckList{
48332		ServerResponse: googleapi.ServerResponse{
48333			Header:         res.Header,
48334			HTTPStatusCode: res.StatusCode,
48335		},
48336	}
48337	target := &ret
48338	if err := gensupport.DecodeResponse(target, res); err != nil {
48339		return nil, err
48340	}
48341	return ret, nil
48342	// {
48343	//   "description": "Retrieves the list of HttpsHealthCheck resources available to the specified project.",
48344	//   "httpMethod": "GET",
48345	//   "id": "compute.httpsHealthChecks.list",
48346	//   "parameterOrder": [
48347	//     "project"
48348	//   ],
48349	//   "parameters": {
48350	//     "filter": {
48351	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
48352	//       "location": "query",
48353	//       "type": "string"
48354	//     },
48355	//     "maxResults": {
48356	//       "default": "500",
48357	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
48358	//       "format": "uint32",
48359	//       "location": "query",
48360	//       "minimum": "0",
48361	//       "type": "integer"
48362	//     },
48363	//     "orderBy": {
48364	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
48365	//       "location": "query",
48366	//       "type": "string"
48367	//     },
48368	//     "pageToken": {
48369	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
48370	//       "location": "query",
48371	//       "type": "string"
48372	//     },
48373	//     "project": {
48374	//       "description": "Project ID for this request.",
48375	//       "location": "path",
48376	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48377	//       "required": true,
48378	//       "type": "string"
48379	//     }
48380	//   },
48381	//   "path": "{project}/global/httpsHealthChecks",
48382	//   "response": {
48383	//     "$ref": "HttpsHealthCheckList"
48384	//   },
48385	//   "scopes": [
48386	//     "https://www.googleapis.com/auth/cloud-platform",
48387	//     "https://www.googleapis.com/auth/compute",
48388	//     "https://www.googleapis.com/auth/compute.readonly"
48389	//   ]
48390	// }
48391
48392}
48393
48394// Pages invokes f for each page of results.
48395// A non-nil error returned from f will halt the iteration.
48396// The provided context supersedes any context provided to the Context method.
48397func (c *HttpsHealthChecksListCall) Pages(ctx context.Context, f func(*HttpsHealthCheckList) error) error {
48398	c.ctx_ = ctx
48399	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
48400	for {
48401		x, err := c.Do()
48402		if err != nil {
48403			return err
48404		}
48405		if err := f(x); err != nil {
48406			return err
48407		}
48408		if x.NextPageToken == "" {
48409			return nil
48410		}
48411		c.PageToken(x.NextPageToken)
48412	}
48413}
48414
48415// method id "compute.httpsHealthChecks.patch":
48416
48417type HttpsHealthChecksPatchCall struct {
48418	s                *Service
48419	project          string
48420	httpsHealthCheck string
48421	httpshealthcheck *HttpsHealthCheck
48422	urlParams_       gensupport.URLParams
48423	ctx_             context.Context
48424	header_          http.Header
48425}
48426
48427// Patch: Updates a HttpsHealthCheck resource in the specified project
48428// using the data included in the request. This method supports PATCH
48429// semantics and uses the JSON merge patch format and processing rules.
48430func (r *HttpsHealthChecksService) Patch(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksPatchCall {
48431	c := &HttpsHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48432	c.project = project
48433	c.httpsHealthCheck = httpsHealthCheck
48434	c.httpshealthcheck = httpshealthcheck
48435	return c
48436}
48437
48438// RequestId sets the optional parameter "requestId": An optional
48439// request ID to identify requests. Specify a unique request ID so that
48440// if you must retry your request, the server will know to ignore the
48441// request if it has already been completed.
48442//
48443// For example, consider a situation where you make an initial request
48444// and the request times out. If you make the request again with the
48445// same request ID, the server can check if original operation with the
48446// same request ID was received, and if so, will ignore the second
48447// request. This prevents clients from accidentally creating duplicate
48448// commitments.
48449//
48450// The request ID must be a valid UUID with the exception that zero UUID
48451// is not supported (00000000-0000-0000-0000-000000000000).
48452func (c *HttpsHealthChecksPatchCall) RequestId(requestId string) *HttpsHealthChecksPatchCall {
48453	c.urlParams_.Set("requestId", requestId)
48454	return c
48455}
48456
48457// Fields allows partial responses to be retrieved. See
48458// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48459// for more information.
48460func (c *HttpsHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpsHealthChecksPatchCall {
48461	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48462	return c
48463}
48464
48465// Context sets the context to be used in this call's Do method. Any
48466// pending HTTP request will be aborted if the provided context is
48467// canceled.
48468func (c *HttpsHealthChecksPatchCall) Context(ctx context.Context) *HttpsHealthChecksPatchCall {
48469	c.ctx_ = ctx
48470	return c
48471}
48472
48473// Header returns an http.Header that can be modified by the caller to
48474// add HTTP headers to the request.
48475func (c *HttpsHealthChecksPatchCall) Header() http.Header {
48476	if c.header_ == nil {
48477		c.header_ = make(http.Header)
48478	}
48479	return c.header_
48480}
48481
48482func (c *HttpsHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
48483	reqHeaders := make(http.Header)
48484	for k, v := range c.header_ {
48485		reqHeaders[k] = v
48486	}
48487	reqHeaders.Set("User-Agent", c.s.userAgent())
48488	var body io.Reader = nil
48489	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
48490	if err != nil {
48491		return nil, err
48492	}
48493	reqHeaders.Set("Content-Type", "application/json")
48494	c.urlParams_.Set("alt", alt)
48495	c.urlParams_.Set("prettyPrint", "false")
48496	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
48497	urls += "?" + c.urlParams_.Encode()
48498	req, err := http.NewRequest("PATCH", urls, body)
48499	if err != nil {
48500		return nil, err
48501	}
48502	req.Header = reqHeaders
48503	googleapi.Expand(req.URL, map[string]string{
48504		"project":          c.project,
48505		"httpsHealthCheck": c.httpsHealthCheck,
48506	})
48507	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48508}
48509
48510// Do executes the "compute.httpsHealthChecks.patch" call.
48511// Exactly one of *Operation or error will be non-nil. Any non-2xx
48512// status code is an error. Response headers are in either
48513// *Operation.ServerResponse.Header or (if a response was returned at
48514// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48515// to check whether the returned error was because
48516// http.StatusNotModified was returned.
48517func (c *HttpsHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48518	gensupport.SetOptions(c.urlParams_, opts...)
48519	res, err := c.doRequest("json")
48520	if res != nil && res.StatusCode == http.StatusNotModified {
48521		if res.Body != nil {
48522			res.Body.Close()
48523		}
48524		return nil, &googleapi.Error{
48525			Code:   res.StatusCode,
48526			Header: res.Header,
48527		}
48528	}
48529	if err != nil {
48530		return nil, err
48531	}
48532	defer googleapi.CloseBody(res)
48533	if err := googleapi.CheckResponse(res); err != nil {
48534		return nil, err
48535	}
48536	ret := &Operation{
48537		ServerResponse: googleapi.ServerResponse{
48538			Header:         res.Header,
48539			HTTPStatusCode: res.StatusCode,
48540		},
48541	}
48542	target := &ret
48543	if err := gensupport.DecodeResponse(target, res); err != nil {
48544		return nil, err
48545	}
48546	return ret, nil
48547	// {
48548	//   "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.",
48549	//   "httpMethod": "PATCH",
48550	//   "id": "compute.httpsHealthChecks.patch",
48551	//   "parameterOrder": [
48552	//     "project",
48553	//     "httpsHealthCheck"
48554	//   ],
48555	//   "parameters": {
48556	//     "httpsHealthCheck": {
48557	//       "description": "Name of the HttpsHealthCheck resource to patch.",
48558	//       "location": "path",
48559	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
48560	//       "required": true,
48561	//       "type": "string"
48562	//     },
48563	//     "project": {
48564	//       "description": "Project ID for this request.",
48565	//       "location": "path",
48566	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48567	//       "required": true,
48568	//       "type": "string"
48569	//     },
48570	//     "requestId": {
48571	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48572	//       "location": "query",
48573	//       "type": "string"
48574	//     }
48575	//   },
48576	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
48577	//   "request": {
48578	//     "$ref": "HttpsHealthCheck"
48579	//   },
48580	//   "response": {
48581	//     "$ref": "Operation"
48582	//   },
48583	//   "scopes": [
48584	//     "https://www.googleapis.com/auth/cloud-platform",
48585	//     "https://www.googleapis.com/auth/compute"
48586	//   ]
48587	// }
48588
48589}
48590
48591// method id "compute.httpsHealthChecks.update":
48592
48593type HttpsHealthChecksUpdateCall struct {
48594	s                *Service
48595	project          string
48596	httpsHealthCheck string
48597	httpshealthcheck *HttpsHealthCheck
48598	urlParams_       gensupport.URLParams
48599	ctx_             context.Context
48600	header_          http.Header
48601}
48602
48603// Update: Updates a HttpsHealthCheck resource in the specified project
48604// using the data included in the request.
48605func (r *HttpsHealthChecksService) Update(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksUpdateCall {
48606	c := &HttpsHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48607	c.project = project
48608	c.httpsHealthCheck = httpsHealthCheck
48609	c.httpshealthcheck = httpshealthcheck
48610	return c
48611}
48612
48613// RequestId sets the optional parameter "requestId": An optional
48614// request ID to identify requests. Specify a unique request ID so that
48615// if you must retry your request, the server will know to ignore the
48616// request if it has already been completed.
48617//
48618// For example, consider a situation where you make an initial request
48619// and the request times out. If you make the request again with the
48620// same request ID, the server can check if original operation with the
48621// same request ID was received, and if so, will ignore the second
48622// request. This prevents clients from accidentally creating duplicate
48623// commitments.
48624//
48625// The request ID must be a valid UUID with the exception that zero UUID
48626// is not supported (00000000-0000-0000-0000-000000000000).
48627func (c *HttpsHealthChecksUpdateCall) RequestId(requestId string) *HttpsHealthChecksUpdateCall {
48628	c.urlParams_.Set("requestId", requestId)
48629	return c
48630}
48631
48632// Fields allows partial responses to be retrieved. See
48633// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48634// for more information.
48635func (c *HttpsHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpsHealthChecksUpdateCall {
48636	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48637	return c
48638}
48639
48640// Context sets the context to be used in this call's Do method. Any
48641// pending HTTP request will be aborted if the provided context is
48642// canceled.
48643func (c *HttpsHealthChecksUpdateCall) Context(ctx context.Context) *HttpsHealthChecksUpdateCall {
48644	c.ctx_ = ctx
48645	return c
48646}
48647
48648// Header returns an http.Header that can be modified by the caller to
48649// add HTTP headers to the request.
48650func (c *HttpsHealthChecksUpdateCall) Header() http.Header {
48651	if c.header_ == nil {
48652		c.header_ = make(http.Header)
48653	}
48654	return c.header_
48655}
48656
48657func (c *HttpsHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
48658	reqHeaders := make(http.Header)
48659	for k, v := range c.header_ {
48660		reqHeaders[k] = v
48661	}
48662	reqHeaders.Set("User-Agent", c.s.userAgent())
48663	var body io.Reader = nil
48664	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
48665	if err != nil {
48666		return nil, err
48667	}
48668	reqHeaders.Set("Content-Type", "application/json")
48669	c.urlParams_.Set("alt", alt)
48670	c.urlParams_.Set("prettyPrint", "false")
48671	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
48672	urls += "?" + c.urlParams_.Encode()
48673	req, err := http.NewRequest("PUT", urls, body)
48674	if err != nil {
48675		return nil, err
48676	}
48677	req.Header = reqHeaders
48678	googleapi.Expand(req.URL, map[string]string{
48679		"project":          c.project,
48680		"httpsHealthCheck": c.httpsHealthCheck,
48681	})
48682	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48683}
48684
48685// Do executes the "compute.httpsHealthChecks.update" call.
48686// Exactly one of *Operation or error will be non-nil. Any non-2xx
48687// status code is an error. Response headers are in either
48688// *Operation.ServerResponse.Header or (if a response was returned at
48689// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48690// to check whether the returned error was because
48691// http.StatusNotModified was returned.
48692func (c *HttpsHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48693	gensupport.SetOptions(c.urlParams_, opts...)
48694	res, err := c.doRequest("json")
48695	if res != nil && res.StatusCode == http.StatusNotModified {
48696		if res.Body != nil {
48697			res.Body.Close()
48698		}
48699		return nil, &googleapi.Error{
48700			Code:   res.StatusCode,
48701			Header: res.Header,
48702		}
48703	}
48704	if err != nil {
48705		return nil, err
48706	}
48707	defer googleapi.CloseBody(res)
48708	if err := googleapi.CheckResponse(res); err != nil {
48709		return nil, err
48710	}
48711	ret := &Operation{
48712		ServerResponse: googleapi.ServerResponse{
48713			Header:         res.Header,
48714			HTTPStatusCode: res.StatusCode,
48715		},
48716	}
48717	target := &ret
48718	if err := gensupport.DecodeResponse(target, res); err != nil {
48719		return nil, err
48720	}
48721	return ret, nil
48722	// {
48723	//   "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request.",
48724	//   "httpMethod": "PUT",
48725	//   "id": "compute.httpsHealthChecks.update",
48726	//   "parameterOrder": [
48727	//     "project",
48728	//     "httpsHealthCheck"
48729	//   ],
48730	//   "parameters": {
48731	//     "httpsHealthCheck": {
48732	//       "description": "Name of the HttpsHealthCheck resource to update.",
48733	//       "location": "path",
48734	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
48735	//       "required": true,
48736	//       "type": "string"
48737	//     },
48738	//     "project": {
48739	//       "description": "Project ID for this request.",
48740	//       "location": "path",
48741	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48742	//       "required": true,
48743	//       "type": "string"
48744	//     },
48745	//     "requestId": {
48746	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48747	//       "location": "query",
48748	//       "type": "string"
48749	//     }
48750	//   },
48751	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
48752	//   "request": {
48753	//     "$ref": "HttpsHealthCheck"
48754	//   },
48755	//   "response": {
48756	//     "$ref": "Operation"
48757	//   },
48758	//   "scopes": [
48759	//     "https://www.googleapis.com/auth/cloud-platform",
48760	//     "https://www.googleapis.com/auth/compute"
48761	//   ]
48762	// }
48763
48764}
48765
48766// method id "compute.images.delete":
48767
48768type ImagesDeleteCall struct {
48769	s          *Service
48770	project    string
48771	image      string
48772	urlParams_ gensupport.URLParams
48773	ctx_       context.Context
48774	header_    http.Header
48775}
48776
48777// Delete: Deletes the specified image.
48778// For details, see https://cloud.google.com/compute/docs/reference/latest/images/delete
48779func (r *ImagesService) Delete(project string, image string) *ImagesDeleteCall {
48780	c := &ImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48781	c.project = project
48782	c.image = image
48783	return c
48784}
48785
48786// RequestId sets the optional parameter "requestId": An optional
48787// request ID to identify requests. Specify a unique request ID so that
48788// if you must retry your request, the server will know to ignore the
48789// request if it has already been completed.
48790//
48791// For example, consider a situation where you make an initial request
48792// and the request times out. If you make the request again with the
48793// same request ID, the server can check if original operation with the
48794// same request ID was received, and if so, will ignore the second
48795// request. This prevents clients from accidentally creating duplicate
48796// commitments.
48797//
48798// The request ID must be a valid UUID with the exception that zero UUID
48799// is not supported (00000000-0000-0000-0000-000000000000).
48800func (c *ImagesDeleteCall) RequestId(requestId string) *ImagesDeleteCall {
48801	c.urlParams_.Set("requestId", requestId)
48802	return c
48803}
48804
48805// Fields allows partial responses to be retrieved. See
48806// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48807// for more information.
48808func (c *ImagesDeleteCall) Fields(s ...googleapi.Field) *ImagesDeleteCall {
48809	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48810	return c
48811}
48812
48813// Context sets the context to be used in this call's Do method. Any
48814// pending HTTP request will be aborted if the provided context is
48815// canceled.
48816func (c *ImagesDeleteCall) Context(ctx context.Context) *ImagesDeleteCall {
48817	c.ctx_ = ctx
48818	return c
48819}
48820
48821// Header returns an http.Header that can be modified by the caller to
48822// add HTTP headers to the request.
48823func (c *ImagesDeleteCall) Header() http.Header {
48824	if c.header_ == nil {
48825		c.header_ = make(http.Header)
48826	}
48827	return c.header_
48828}
48829
48830func (c *ImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
48831	reqHeaders := make(http.Header)
48832	for k, v := range c.header_ {
48833		reqHeaders[k] = v
48834	}
48835	reqHeaders.Set("User-Agent", c.s.userAgent())
48836	var body io.Reader = nil
48837	c.urlParams_.Set("alt", alt)
48838	c.urlParams_.Set("prettyPrint", "false")
48839	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}")
48840	urls += "?" + c.urlParams_.Encode()
48841	req, err := http.NewRequest("DELETE", urls, body)
48842	if err != nil {
48843		return nil, err
48844	}
48845	req.Header = reqHeaders
48846	googleapi.Expand(req.URL, map[string]string{
48847		"project": c.project,
48848		"image":   c.image,
48849	})
48850	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48851}
48852
48853// Do executes the "compute.images.delete" call.
48854// Exactly one of *Operation or error will be non-nil. Any non-2xx
48855// status code is an error. Response headers are in either
48856// *Operation.ServerResponse.Header or (if a response was returned at
48857// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48858// to check whether the returned error was because
48859// http.StatusNotModified was returned.
48860func (c *ImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48861	gensupport.SetOptions(c.urlParams_, opts...)
48862	res, err := c.doRequest("json")
48863	if res != nil && res.StatusCode == http.StatusNotModified {
48864		if res.Body != nil {
48865			res.Body.Close()
48866		}
48867		return nil, &googleapi.Error{
48868			Code:   res.StatusCode,
48869			Header: res.Header,
48870		}
48871	}
48872	if err != nil {
48873		return nil, err
48874	}
48875	defer googleapi.CloseBody(res)
48876	if err := googleapi.CheckResponse(res); err != nil {
48877		return nil, err
48878	}
48879	ret := &Operation{
48880		ServerResponse: googleapi.ServerResponse{
48881			Header:         res.Header,
48882			HTTPStatusCode: res.StatusCode,
48883		},
48884	}
48885	target := &ret
48886	if err := gensupport.DecodeResponse(target, res); err != nil {
48887		return nil, err
48888	}
48889	return ret, nil
48890	// {
48891	//   "description": "Deletes the specified image.",
48892	//   "httpMethod": "DELETE",
48893	//   "id": "compute.images.delete",
48894	//   "parameterOrder": [
48895	//     "project",
48896	//     "image"
48897	//   ],
48898	//   "parameters": {
48899	//     "image": {
48900	//       "description": "Name of the image resource to delete.",
48901	//       "location": "path",
48902	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
48903	//       "required": true,
48904	//       "type": "string"
48905	//     },
48906	//     "project": {
48907	//       "description": "Project ID for this request.",
48908	//       "location": "path",
48909	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48910	//       "required": true,
48911	//       "type": "string"
48912	//     },
48913	//     "requestId": {
48914	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48915	//       "location": "query",
48916	//       "type": "string"
48917	//     }
48918	//   },
48919	//   "path": "{project}/global/images/{image}",
48920	//   "response": {
48921	//     "$ref": "Operation"
48922	//   },
48923	//   "scopes": [
48924	//     "https://www.googleapis.com/auth/cloud-platform",
48925	//     "https://www.googleapis.com/auth/compute"
48926	//   ]
48927	// }
48928
48929}
48930
48931// method id "compute.images.deprecate":
48932
48933type ImagesDeprecateCall struct {
48934	s                 *Service
48935	project           string
48936	image             string
48937	deprecationstatus *DeprecationStatus
48938	urlParams_        gensupport.URLParams
48939	ctx_              context.Context
48940	header_           http.Header
48941}
48942
48943// Deprecate: Sets the deprecation status of an image.
48944//
48945// If an empty request body is given, clears the deprecation status
48946// instead.
48947// For details, see https://cloud.google.com/compute/docs/reference/latest/images/deprecate
48948func (r *ImagesService) Deprecate(project string, image string, deprecationstatus *DeprecationStatus) *ImagesDeprecateCall {
48949	c := &ImagesDeprecateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48950	c.project = project
48951	c.image = image
48952	c.deprecationstatus = deprecationstatus
48953	return c
48954}
48955
48956// RequestId sets the optional parameter "requestId": An optional
48957// request ID to identify requests. Specify a unique request ID so that
48958// if you must retry your request, the server will know to ignore the
48959// request if it has already been completed.
48960//
48961// For example, consider a situation where you make an initial request
48962// and the request times out. If you make the request again with the
48963// same request ID, the server can check if original operation with the
48964// same request ID was received, and if so, will ignore the second
48965// request. This prevents clients from accidentally creating duplicate
48966// commitments.
48967//
48968// The request ID must be a valid UUID with the exception that zero UUID
48969// is not supported (00000000-0000-0000-0000-000000000000).
48970func (c *ImagesDeprecateCall) RequestId(requestId string) *ImagesDeprecateCall {
48971	c.urlParams_.Set("requestId", requestId)
48972	return c
48973}
48974
48975// Fields allows partial responses to be retrieved. See
48976// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48977// for more information.
48978func (c *ImagesDeprecateCall) Fields(s ...googleapi.Field) *ImagesDeprecateCall {
48979	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48980	return c
48981}
48982
48983// Context sets the context to be used in this call's Do method. Any
48984// pending HTTP request will be aborted if the provided context is
48985// canceled.
48986func (c *ImagesDeprecateCall) Context(ctx context.Context) *ImagesDeprecateCall {
48987	c.ctx_ = ctx
48988	return c
48989}
48990
48991// Header returns an http.Header that can be modified by the caller to
48992// add HTTP headers to the request.
48993func (c *ImagesDeprecateCall) Header() http.Header {
48994	if c.header_ == nil {
48995		c.header_ = make(http.Header)
48996	}
48997	return c.header_
48998}
48999
49000func (c *ImagesDeprecateCall) doRequest(alt string) (*http.Response, error) {
49001	reqHeaders := make(http.Header)
49002	for k, v := range c.header_ {
49003		reqHeaders[k] = v
49004	}
49005	reqHeaders.Set("User-Agent", c.s.userAgent())
49006	var body io.Reader = nil
49007	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deprecationstatus)
49008	if err != nil {
49009		return nil, err
49010	}
49011	reqHeaders.Set("Content-Type", "application/json")
49012	c.urlParams_.Set("alt", alt)
49013	c.urlParams_.Set("prettyPrint", "false")
49014	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}/deprecate")
49015	urls += "?" + c.urlParams_.Encode()
49016	req, err := http.NewRequest("POST", urls, body)
49017	if err != nil {
49018		return nil, err
49019	}
49020	req.Header = reqHeaders
49021	googleapi.Expand(req.URL, map[string]string{
49022		"project": c.project,
49023		"image":   c.image,
49024	})
49025	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49026}
49027
49028// Do executes the "compute.images.deprecate" call.
49029// Exactly one of *Operation or error will be non-nil. Any non-2xx
49030// status code is an error. Response headers are in either
49031// *Operation.ServerResponse.Header or (if a response was returned at
49032// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49033// to check whether the returned error was because
49034// http.StatusNotModified was returned.
49035func (c *ImagesDeprecateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49036	gensupport.SetOptions(c.urlParams_, opts...)
49037	res, err := c.doRequest("json")
49038	if res != nil && res.StatusCode == http.StatusNotModified {
49039		if res.Body != nil {
49040			res.Body.Close()
49041		}
49042		return nil, &googleapi.Error{
49043			Code:   res.StatusCode,
49044			Header: res.Header,
49045		}
49046	}
49047	if err != nil {
49048		return nil, err
49049	}
49050	defer googleapi.CloseBody(res)
49051	if err := googleapi.CheckResponse(res); err != nil {
49052		return nil, err
49053	}
49054	ret := &Operation{
49055		ServerResponse: googleapi.ServerResponse{
49056			Header:         res.Header,
49057			HTTPStatusCode: res.StatusCode,
49058		},
49059	}
49060	target := &ret
49061	if err := gensupport.DecodeResponse(target, res); err != nil {
49062		return nil, err
49063	}
49064	return ret, nil
49065	// {
49066	//   "description": "Sets the deprecation status of an image.\n\nIf an empty request body is given, clears the deprecation status instead.",
49067	//   "httpMethod": "POST",
49068	//   "id": "compute.images.deprecate",
49069	//   "parameterOrder": [
49070	//     "project",
49071	//     "image"
49072	//   ],
49073	//   "parameters": {
49074	//     "image": {
49075	//       "description": "Image name.",
49076	//       "location": "path",
49077	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
49078	//       "required": true,
49079	//       "type": "string"
49080	//     },
49081	//     "project": {
49082	//       "description": "Project ID for this request.",
49083	//       "location": "path",
49084	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49085	//       "required": true,
49086	//       "type": "string"
49087	//     },
49088	//     "requestId": {
49089	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49090	//       "location": "query",
49091	//       "type": "string"
49092	//     }
49093	//   },
49094	//   "path": "{project}/global/images/{image}/deprecate",
49095	//   "request": {
49096	//     "$ref": "DeprecationStatus"
49097	//   },
49098	//   "response": {
49099	//     "$ref": "Operation"
49100	//   },
49101	//   "scopes": [
49102	//     "https://www.googleapis.com/auth/cloud-platform",
49103	//     "https://www.googleapis.com/auth/compute"
49104	//   ]
49105	// }
49106
49107}
49108
49109// method id "compute.images.get":
49110
49111type ImagesGetCall struct {
49112	s            *Service
49113	project      string
49114	image        string
49115	urlParams_   gensupport.URLParams
49116	ifNoneMatch_ string
49117	ctx_         context.Context
49118	header_      http.Header
49119}
49120
49121// Get: Returns the specified image. Gets a list of available images by
49122// making a list() request.
49123// For details, see https://cloud.google.com/compute/docs/reference/latest/images/get
49124func (r *ImagesService) Get(project string, image string) *ImagesGetCall {
49125	c := &ImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49126	c.project = project
49127	c.image = image
49128	return c
49129}
49130
49131// Fields allows partial responses to be retrieved. See
49132// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49133// for more information.
49134func (c *ImagesGetCall) Fields(s ...googleapi.Field) *ImagesGetCall {
49135	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49136	return c
49137}
49138
49139// IfNoneMatch sets the optional parameter which makes the operation
49140// fail if the object's ETag matches the given value. This is useful for
49141// getting updates only after the object has changed since the last
49142// request. Use googleapi.IsNotModified to check whether the response
49143// error from Do is the result of In-None-Match.
49144func (c *ImagesGetCall) IfNoneMatch(entityTag string) *ImagesGetCall {
49145	c.ifNoneMatch_ = entityTag
49146	return c
49147}
49148
49149// Context sets the context to be used in this call's Do method. Any
49150// pending HTTP request will be aborted if the provided context is
49151// canceled.
49152func (c *ImagesGetCall) Context(ctx context.Context) *ImagesGetCall {
49153	c.ctx_ = ctx
49154	return c
49155}
49156
49157// Header returns an http.Header that can be modified by the caller to
49158// add HTTP headers to the request.
49159func (c *ImagesGetCall) Header() http.Header {
49160	if c.header_ == nil {
49161		c.header_ = make(http.Header)
49162	}
49163	return c.header_
49164}
49165
49166func (c *ImagesGetCall) doRequest(alt string) (*http.Response, error) {
49167	reqHeaders := make(http.Header)
49168	for k, v := range c.header_ {
49169		reqHeaders[k] = v
49170	}
49171	reqHeaders.Set("User-Agent", c.s.userAgent())
49172	if c.ifNoneMatch_ != "" {
49173		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
49174	}
49175	var body io.Reader = nil
49176	c.urlParams_.Set("alt", alt)
49177	c.urlParams_.Set("prettyPrint", "false")
49178	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}")
49179	urls += "?" + c.urlParams_.Encode()
49180	req, err := http.NewRequest("GET", urls, body)
49181	if err != nil {
49182		return nil, err
49183	}
49184	req.Header = reqHeaders
49185	googleapi.Expand(req.URL, map[string]string{
49186		"project": c.project,
49187		"image":   c.image,
49188	})
49189	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49190}
49191
49192// Do executes the "compute.images.get" call.
49193// Exactly one of *Image or error will be non-nil. Any non-2xx status
49194// code is an error. Response headers are in either
49195// *Image.ServerResponse.Header or (if a response was returned at all)
49196// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
49197// check whether the returned error was because http.StatusNotModified
49198// was returned.
49199func (c *ImagesGetCall) Do(opts ...googleapi.CallOption) (*Image, error) {
49200	gensupport.SetOptions(c.urlParams_, opts...)
49201	res, err := c.doRequest("json")
49202	if res != nil && res.StatusCode == http.StatusNotModified {
49203		if res.Body != nil {
49204			res.Body.Close()
49205		}
49206		return nil, &googleapi.Error{
49207			Code:   res.StatusCode,
49208			Header: res.Header,
49209		}
49210	}
49211	if err != nil {
49212		return nil, err
49213	}
49214	defer googleapi.CloseBody(res)
49215	if err := googleapi.CheckResponse(res); err != nil {
49216		return nil, err
49217	}
49218	ret := &Image{
49219		ServerResponse: googleapi.ServerResponse{
49220			Header:         res.Header,
49221			HTTPStatusCode: res.StatusCode,
49222		},
49223	}
49224	target := &ret
49225	if err := gensupport.DecodeResponse(target, res); err != nil {
49226		return nil, err
49227	}
49228	return ret, nil
49229	// {
49230	//   "description": "Returns the specified image. Gets a list of available images by making a list() request.",
49231	//   "httpMethod": "GET",
49232	//   "id": "compute.images.get",
49233	//   "parameterOrder": [
49234	//     "project",
49235	//     "image"
49236	//   ],
49237	//   "parameters": {
49238	//     "image": {
49239	//       "description": "Name of the image resource to return.",
49240	//       "location": "path",
49241	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
49242	//       "required": true,
49243	//       "type": "string"
49244	//     },
49245	//     "project": {
49246	//       "description": "Project ID for this request.",
49247	//       "location": "path",
49248	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49249	//       "required": true,
49250	//       "type": "string"
49251	//     }
49252	//   },
49253	//   "path": "{project}/global/images/{image}",
49254	//   "response": {
49255	//     "$ref": "Image"
49256	//   },
49257	//   "scopes": [
49258	//     "https://www.googleapis.com/auth/cloud-platform",
49259	//     "https://www.googleapis.com/auth/compute",
49260	//     "https://www.googleapis.com/auth/compute.readonly"
49261	//   ]
49262	// }
49263
49264}
49265
49266// method id "compute.images.getFromFamily":
49267
49268type ImagesGetFromFamilyCall struct {
49269	s            *Service
49270	project      string
49271	family       string
49272	urlParams_   gensupport.URLParams
49273	ifNoneMatch_ string
49274	ctx_         context.Context
49275	header_      http.Header
49276}
49277
49278// GetFromFamily: Returns the latest image that is part of an image
49279// family and is not deprecated.
49280func (r *ImagesService) GetFromFamily(project string, family string) *ImagesGetFromFamilyCall {
49281	c := &ImagesGetFromFamilyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49282	c.project = project
49283	c.family = family
49284	return c
49285}
49286
49287// Fields allows partial responses to be retrieved. See
49288// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49289// for more information.
49290func (c *ImagesGetFromFamilyCall) Fields(s ...googleapi.Field) *ImagesGetFromFamilyCall {
49291	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49292	return c
49293}
49294
49295// IfNoneMatch sets the optional parameter which makes the operation
49296// fail if the object's ETag matches the given value. This is useful for
49297// getting updates only after the object has changed since the last
49298// request. Use googleapi.IsNotModified to check whether the response
49299// error from Do is the result of In-None-Match.
49300func (c *ImagesGetFromFamilyCall) IfNoneMatch(entityTag string) *ImagesGetFromFamilyCall {
49301	c.ifNoneMatch_ = entityTag
49302	return c
49303}
49304
49305// Context sets the context to be used in this call's Do method. Any
49306// pending HTTP request will be aborted if the provided context is
49307// canceled.
49308func (c *ImagesGetFromFamilyCall) Context(ctx context.Context) *ImagesGetFromFamilyCall {
49309	c.ctx_ = ctx
49310	return c
49311}
49312
49313// Header returns an http.Header that can be modified by the caller to
49314// add HTTP headers to the request.
49315func (c *ImagesGetFromFamilyCall) Header() http.Header {
49316	if c.header_ == nil {
49317		c.header_ = make(http.Header)
49318	}
49319	return c.header_
49320}
49321
49322func (c *ImagesGetFromFamilyCall) doRequest(alt string) (*http.Response, error) {
49323	reqHeaders := make(http.Header)
49324	for k, v := range c.header_ {
49325		reqHeaders[k] = v
49326	}
49327	reqHeaders.Set("User-Agent", c.s.userAgent())
49328	if c.ifNoneMatch_ != "" {
49329		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
49330	}
49331	var body io.Reader = nil
49332	c.urlParams_.Set("alt", alt)
49333	c.urlParams_.Set("prettyPrint", "false")
49334	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/family/{family}")
49335	urls += "?" + c.urlParams_.Encode()
49336	req, err := http.NewRequest("GET", urls, body)
49337	if err != nil {
49338		return nil, err
49339	}
49340	req.Header = reqHeaders
49341	googleapi.Expand(req.URL, map[string]string{
49342		"project": c.project,
49343		"family":  c.family,
49344	})
49345	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49346}
49347
49348// Do executes the "compute.images.getFromFamily" call.
49349// Exactly one of *Image or error will be non-nil. Any non-2xx status
49350// code is an error. Response headers are in either
49351// *Image.ServerResponse.Header or (if a response was returned at all)
49352// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
49353// check whether the returned error was because http.StatusNotModified
49354// was returned.
49355func (c *ImagesGetFromFamilyCall) Do(opts ...googleapi.CallOption) (*Image, error) {
49356	gensupport.SetOptions(c.urlParams_, opts...)
49357	res, err := c.doRequest("json")
49358	if res != nil && res.StatusCode == http.StatusNotModified {
49359		if res.Body != nil {
49360			res.Body.Close()
49361		}
49362		return nil, &googleapi.Error{
49363			Code:   res.StatusCode,
49364			Header: res.Header,
49365		}
49366	}
49367	if err != nil {
49368		return nil, err
49369	}
49370	defer googleapi.CloseBody(res)
49371	if err := googleapi.CheckResponse(res); err != nil {
49372		return nil, err
49373	}
49374	ret := &Image{
49375		ServerResponse: googleapi.ServerResponse{
49376			Header:         res.Header,
49377			HTTPStatusCode: res.StatusCode,
49378		},
49379	}
49380	target := &ret
49381	if err := gensupport.DecodeResponse(target, res); err != nil {
49382		return nil, err
49383	}
49384	return ret, nil
49385	// {
49386	//   "description": "Returns the latest image that is part of an image family and is not deprecated.",
49387	//   "httpMethod": "GET",
49388	//   "id": "compute.images.getFromFamily",
49389	//   "parameterOrder": [
49390	//     "project",
49391	//     "family"
49392	//   ],
49393	//   "parameters": {
49394	//     "family": {
49395	//       "description": "Name of the image family to search for.",
49396	//       "location": "path",
49397	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
49398	//       "required": true,
49399	//       "type": "string"
49400	//     },
49401	//     "project": {
49402	//       "description": "Project ID for this request.",
49403	//       "location": "path",
49404	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49405	//       "required": true,
49406	//       "type": "string"
49407	//     }
49408	//   },
49409	//   "path": "{project}/global/images/family/{family}",
49410	//   "response": {
49411	//     "$ref": "Image"
49412	//   },
49413	//   "scopes": [
49414	//     "https://www.googleapis.com/auth/cloud-platform",
49415	//     "https://www.googleapis.com/auth/compute",
49416	//     "https://www.googleapis.com/auth/compute.readonly"
49417	//   ]
49418	// }
49419
49420}
49421
49422// method id "compute.images.getIamPolicy":
49423
49424type ImagesGetIamPolicyCall struct {
49425	s            *Service
49426	project      string
49427	resource     string
49428	urlParams_   gensupport.URLParams
49429	ifNoneMatch_ string
49430	ctx_         context.Context
49431	header_      http.Header
49432}
49433
49434// GetIamPolicy: Gets the access control policy for a resource. May be
49435// empty if no such policy or resource exists.
49436func (r *ImagesService) GetIamPolicy(project string, resource string) *ImagesGetIamPolicyCall {
49437	c := &ImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49438	c.project = project
49439	c.resource = resource
49440	return c
49441}
49442
49443// Fields allows partial responses to be retrieved. See
49444// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49445// for more information.
49446func (c *ImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesGetIamPolicyCall {
49447	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49448	return c
49449}
49450
49451// IfNoneMatch sets the optional parameter which makes the operation
49452// fail if the object's ETag matches the given value. This is useful for
49453// getting updates only after the object has changed since the last
49454// request. Use googleapi.IsNotModified to check whether the response
49455// error from Do is the result of In-None-Match.
49456func (c *ImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *ImagesGetIamPolicyCall {
49457	c.ifNoneMatch_ = entityTag
49458	return c
49459}
49460
49461// Context sets the context to be used in this call's Do method. Any
49462// pending HTTP request will be aborted if the provided context is
49463// canceled.
49464func (c *ImagesGetIamPolicyCall) Context(ctx context.Context) *ImagesGetIamPolicyCall {
49465	c.ctx_ = ctx
49466	return c
49467}
49468
49469// Header returns an http.Header that can be modified by the caller to
49470// add HTTP headers to the request.
49471func (c *ImagesGetIamPolicyCall) Header() http.Header {
49472	if c.header_ == nil {
49473		c.header_ = make(http.Header)
49474	}
49475	return c.header_
49476}
49477
49478func (c *ImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
49479	reqHeaders := make(http.Header)
49480	for k, v := range c.header_ {
49481		reqHeaders[k] = v
49482	}
49483	reqHeaders.Set("User-Agent", c.s.userAgent())
49484	if c.ifNoneMatch_ != "" {
49485		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
49486	}
49487	var body io.Reader = nil
49488	c.urlParams_.Set("alt", alt)
49489	c.urlParams_.Set("prettyPrint", "false")
49490	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/getIamPolicy")
49491	urls += "?" + c.urlParams_.Encode()
49492	req, err := http.NewRequest("GET", urls, body)
49493	if err != nil {
49494		return nil, err
49495	}
49496	req.Header = reqHeaders
49497	googleapi.Expand(req.URL, map[string]string{
49498		"project":  c.project,
49499		"resource": c.resource,
49500	})
49501	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49502}
49503
49504// Do executes the "compute.images.getIamPolicy" call.
49505// Exactly one of *Policy or error will be non-nil. Any non-2xx status
49506// code is an error. Response headers are in either
49507// *Policy.ServerResponse.Header or (if a response was returned at all)
49508// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
49509// check whether the returned error was because http.StatusNotModified
49510// was returned.
49511func (c *ImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
49512	gensupport.SetOptions(c.urlParams_, opts...)
49513	res, err := c.doRequest("json")
49514	if res != nil && res.StatusCode == http.StatusNotModified {
49515		if res.Body != nil {
49516			res.Body.Close()
49517		}
49518		return nil, &googleapi.Error{
49519			Code:   res.StatusCode,
49520			Header: res.Header,
49521		}
49522	}
49523	if err != nil {
49524		return nil, err
49525	}
49526	defer googleapi.CloseBody(res)
49527	if err := googleapi.CheckResponse(res); err != nil {
49528		return nil, err
49529	}
49530	ret := &Policy{
49531		ServerResponse: googleapi.ServerResponse{
49532			Header:         res.Header,
49533			HTTPStatusCode: res.StatusCode,
49534		},
49535	}
49536	target := &ret
49537	if err := gensupport.DecodeResponse(target, res); err != nil {
49538		return nil, err
49539	}
49540	return ret, nil
49541	// {
49542	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
49543	//   "httpMethod": "GET",
49544	//   "id": "compute.images.getIamPolicy",
49545	//   "parameterOrder": [
49546	//     "project",
49547	//     "resource"
49548	//   ],
49549	//   "parameters": {
49550	//     "project": {
49551	//       "description": "Project ID for this request.",
49552	//       "location": "path",
49553	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49554	//       "required": true,
49555	//       "type": "string"
49556	//     },
49557	//     "resource": {
49558	//       "description": "Name or id of the resource for this request.",
49559	//       "location": "path",
49560	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
49561	//       "required": true,
49562	//       "type": "string"
49563	//     }
49564	//   },
49565	//   "path": "{project}/global/images/{resource}/getIamPolicy",
49566	//   "response": {
49567	//     "$ref": "Policy"
49568	//   },
49569	//   "scopes": [
49570	//     "https://www.googleapis.com/auth/cloud-platform",
49571	//     "https://www.googleapis.com/auth/compute",
49572	//     "https://www.googleapis.com/auth/compute.readonly"
49573	//   ]
49574	// }
49575
49576}
49577
49578// method id "compute.images.insert":
49579
49580type ImagesInsertCall struct {
49581	s          *Service
49582	project    string
49583	image      *Image
49584	urlParams_ gensupport.URLParams
49585	ctx_       context.Context
49586	header_    http.Header
49587}
49588
49589// Insert: Creates an image in the specified project using the data
49590// included in the request.
49591// For details, see https://cloud.google.com/compute/docs/reference/latest/images/insert
49592func (r *ImagesService) Insert(project string, image *Image) *ImagesInsertCall {
49593	c := &ImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49594	c.project = project
49595	c.image = image
49596	return c
49597}
49598
49599// ForceCreate sets the optional parameter "forceCreate": Force image
49600// creation if true.
49601func (c *ImagesInsertCall) ForceCreate(forceCreate bool) *ImagesInsertCall {
49602	c.urlParams_.Set("forceCreate", fmt.Sprint(forceCreate))
49603	return c
49604}
49605
49606// RequestId sets the optional parameter "requestId": An optional
49607// request ID to identify requests. Specify a unique request ID so that
49608// if you must retry your request, the server will know to ignore the
49609// request if it has already been completed.
49610//
49611// For example, consider a situation where you make an initial request
49612// and the request times out. If you make the request again with the
49613// same request ID, the server can check if original operation with the
49614// same request ID was received, and if so, will ignore the second
49615// request. This prevents clients from accidentally creating duplicate
49616// commitments.
49617//
49618// The request ID must be a valid UUID with the exception that zero UUID
49619// is not supported (00000000-0000-0000-0000-000000000000).
49620func (c *ImagesInsertCall) RequestId(requestId string) *ImagesInsertCall {
49621	c.urlParams_.Set("requestId", requestId)
49622	return c
49623}
49624
49625// Fields allows partial responses to be retrieved. See
49626// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49627// for more information.
49628func (c *ImagesInsertCall) Fields(s ...googleapi.Field) *ImagesInsertCall {
49629	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49630	return c
49631}
49632
49633// Context sets the context to be used in this call's Do method. Any
49634// pending HTTP request will be aborted if the provided context is
49635// canceled.
49636func (c *ImagesInsertCall) Context(ctx context.Context) *ImagesInsertCall {
49637	c.ctx_ = ctx
49638	return c
49639}
49640
49641// Header returns an http.Header that can be modified by the caller to
49642// add HTTP headers to the request.
49643func (c *ImagesInsertCall) Header() http.Header {
49644	if c.header_ == nil {
49645		c.header_ = make(http.Header)
49646	}
49647	return c.header_
49648}
49649
49650func (c *ImagesInsertCall) doRequest(alt string) (*http.Response, error) {
49651	reqHeaders := make(http.Header)
49652	for k, v := range c.header_ {
49653		reqHeaders[k] = v
49654	}
49655	reqHeaders.Set("User-Agent", c.s.userAgent())
49656	var body io.Reader = nil
49657	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image)
49658	if err != nil {
49659		return nil, err
49660	}
49661	reqHeaders.Set("Content-Type", "application/json")
49662	c.urlParams_.Set("alt", alt)
49663	c.urlParams_.Set("prettyPrint", "false")
49664	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images")
49665	urls += "?" + c.urlParams_.Encode()
49666	req, err := http.NewRequest("POST", urls, body)
49667	if err != nil {
49668		return nil, err
49669	}
49670	req.Header = reqHeaders
49671	googleapi.Expand(req.URL, map[string]string{
49672		"project": c.project,
49673	})
49674	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49675}
49676
49677// Do executes the "compute.images.insert" call.
49678// Exactly one of *Operation or error will be non-nil. Any non-2xx
49679// status code is an error. Response headers are in either
49680// *Operation.ServerResponse.Header or (if a response was returned at
49681// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49682// to check whether the returned error was because
49683// http.StatusNotModified was returned.
49684func (c *ImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49685	gensupport.SetOptions(c.urlParams_, opts...)
49686	res, err := c.doRequest("json")
49687	if res != nil && res.StatusCode == http.StatusNotModified {
49688		if res.Body != nil {
49689			res.Body.Close()
49690		}
49691		return nil, &googleapi.Error{
49692			Code:   res.StatusCode,
49693			Header: res.Header,
49694		}
49695	}
49696	if err != nil {
49697		return nil, err
49698	}
49699	defer googleapi.CloseBody(res)
49700	if err := googleapi.CheckResponse(res); err != nil {
49701		return nil, err
49702	}
49703	ret := &Operation{
49704		ServerResponse: googleapi.ServerResponse{
49705			Header:         res.Header,
49706			HTTPStatusCode: res.StatusCode,
49707		},
49708	}
49709	target := &ret
49710	if err := gensupport.DecodeResponse(target, res); err != nil {
49711		return nil, err
49712	}
49713	return ret, nil
49714	// {
49715	//   "description": "Creates an image in the specified project using the data included in the request.",
49716	//   "httpMethod": "POST",
49717	//   "id": "compute.images.insert",
49718	//   "parameterOrder": [
49719	//     "project"
49720	//   ],
49721	//   "parameters": {
49722	//     "forceCreate": {
49723	//       "description": "Force image creation if true.",
49724	//       "location": "query",
49725	//       "type": "boolean"
49726	//     },
49727	//     "project": {
49728	//       "description": "Project ID for this request.",
49729	//       "location": "path",
49730	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49731	//       "required": true,
49732	//       "type": "string"
49733	//     },
49734	//     "requestId": {
49735	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49736	//       "location": "query",
49737	//       "type": "string"
49738	//     }
49739	//   },
49740	//   "path": "{project}/global/images",
49741	//   "request": {
49742	//     "$ref": "Image"
49743	//   },
49744	//   "response": {
49745	//     "$ref": "Operation"
49746	//   },
49747	//   "scopes": [
49748	//     "https://www.googleapis.com/auth/cloud-platform",
49749	//     "https://www.googleapis.com/auth/compute",
49750	//     "https://www.googleapis.com/auth/devstorage.full_control",
49751	//     "https://www.googleapis.com/auth/devstorage.read_only",
49752	//     "https://www.googleapis.com/auth/devstorage.read_write"
49753	//   ]
49754	// }
49755
49756}
49757
49758// method id "compute.images.list":
49759
49760type ImagesListCall struct {
49761	s            *Service
49762	project      string
49763	urlParams_   gensupport.URLParams
49764	ifNoneMatch_ string
49765	ctx_         context.Context
49766	header_      http.Header
49767}
49768
49769// List: Retrieves the list of custom images available to the specified
49770// project. Custom images are images you create that belong to your
49771// project. This method does not get any images that belong to other
49772// projects, including publicly-available images, like Debian 8. If you
49773// want to get a list of publicly-available images, use this method to
49774// make a request to the respective image project, such as debian-cloud
49775// or windows-cloud.
49776// For details, see https://cloud.google.com/compute/docs/reference/latest/images/list
49777func (r *ImagesService) List(project string) *ImagesListCall {
49778	c := &ImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49779	c.project = project
49780	return c
49781}
49782
49783// Filter sets the optional parameter "filter": A filter expression that
49784// filters resources listed in the response. The expression must specify
49785// the field name, a comparison operator, and the value that you want to
49786// use for filtering. The value must be a string, a number, or a
49787// boolean. The comparison operator must be either =, !=, >, or <.
49788//
49789// For example, if you are filtering Compute Engine instances, you can
49790// exclude instances named example-instance by specifying name !=
49791// example-instance.
49792//
49793// You can also filter nested fields. For example, you could specify
49794// scheduling.automaticRestart = false to include instances only if they
49795// are not scheduled for automatic restarts. You can use filtering on
49796// nested fields to filter based on resource labels.
49797//
49798// To filter on multiple expressions, provide each separate expression
49799// within parentheses. For example, (scheduling.automaticRestart = true)
49800// (cpuPlatform = "Intel Skylake"). By default, each expression is an
49801// AND expression. However, you can include AND and OR expressions
49802// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
49803// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
49804// true).
49805func (c *ImagesListCall) Filter(filter string) *ImagesListCall {
49806	c.urlParams_.Set("filter", filter)
49807	return c
49808}
49809
49810// MaxResults sets the optional parameter "maxResults": The maximum
49811// number of results per page that should be returned. If the number of
49812// available results is larger than maxResults, Compute Engine returns a
49813// nextPageToken that can be used to get the next page of results in
49814// subsequent list requests. Acceptable values are 0 to 500, inclusive.
49815// (Default: 500)
49816func (c *ImagesListCall) MaxResults(maxResults int64) *ImagesListCall {
49817	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
49818	return c
49819}
49820
49821// OrderBy sets the optional parameter "orderBy": Sorts list results by
49822// a certain order. By default, results are returned in alphanumerical
49823// order based on the resource name.
49824//
49825// You can also sort results in descending order based on the creation
49826// timestamp using orderBy="creationTimestamp desc". This sorts results
49827// based on the creationTimestamp field in reverse chronological order
49828// (newest result first). Use this to sort resources like operations so
49829// that the newest operation is returned first.
49830//
49831// Currently, only sorting by name or creationTimestamp desc is
49832// supported.
49833func (c *ImagesListCall) OrderBy(orderBy string) *ImagesListCall {
49834	c.urlParams_.Set("orderBy", orderBy)
49835	return c
49836}
49837
49838// PageToken sets the optional parameter "pageToken": Specifies a page
49839// token to use. Set pageToken to the nextPageToken returned by a
49840// previous list request to get the next page of results.
49841func (c *ImagesListCall) PageToken(pageToken string) *ImagesListCall {
49842	c.urlParams_.Set("pageToken", pageToken)
49843	return c
49844}
49845
49846// Fields allows partial responses to be retrieved. See
49847// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49848// for more information.
49849func (c *ImagesListCall) Fields(s ...googleapi.Field) *ImagesListCall {
49850	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49851	return c
49852}
49853
49854// IfNoneMatch sets the optional parameter which makes the operation
49855// fail if the object's ETag matches the given value. This is useful for
49856// getting updates only after the object has changed since the last
49857// request. Use googleapi.IsNotModified to check whether the response
49858// error from Do is the result of In-None-Match.
49859func (c *ImagesListCall) IfNoneMatch(entityTag string) *ImagesListCall {
49860	c.ifNoneMatch_ = entityTag
49861	return c
49862}
49863
49864// Context sets the context to be used in this call's Do method. Any
49865// pending HTTP request will be aborted if the provided context is
49866// canceled.
49867func (c *ImagesListCall) Context(ctx context.Context) *ImagesListCall {
49868	c.ctx_ = ctx
49869	return c
49870}
49871
49872// Header returns an http.Header that can be modified by the caller to
49873// add HTTP headers to the request.
49874func (c *ImagesListCall) Header() http.Header {
49875	if c.header_ == nil {
49876		c.header_ = make(http.Header)
49877	}
49878	return c.header_
49879}
49880
49881func (c *ImagesListCall) doRequest(alt string) (*http.Response, error) {
49882	reqHeaders := make(http.Header)
49883	for k, v := range c.header_ {
49884		reqHeaders[k] = v
49885	}
49886	reqHeaders.Set("User-Agent", c.s.userAgent())
49887	if c.ifNoneMatch_ != "" {
49888		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
49889	}
49890	var body io.Reader = nil
49891	c.urlParams_.Set("alt", alt)
49892	c.urlParams_.Set("prettyPrint", "false")
49893	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images")
49894	urls += "?" + c.urlParams_.Encode()
49895	req, err := http.NewRequest("GET", urls, body)
49896	if err != nil {
49897		return nil, err
49898	}
49899	req.Header = reqHeaders
49900	googleapi.Expand(req.URL, map[string]string{
49901		"project": c.project,
49902	})
49903	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49904}
49905
49906// Do executes the "compute.images.list" call.
49907// Exactly one of *ImageList or error will be non-nil. Any non-2xx
49908// status code is an error. Response headers are in either
49909// *ImageList.ServerResponse.Header or (if a response was returned at
49910// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49911// to check whether the returned error was because
49912// http.StatusNotModified was returned.
49913func (c *ImagesListCall) Do(opts ...googleapi.CallOption) (*ImageList, error) {
49914	gensupport.SetOptions(c.urlParams_, opts...)
49915	res, err := c.doRequest("json")
49916	if res != nil && res.StatusCode == http.StatusNotModified {
49917		if res.Body != nil {
49918			res.Body.Close()
49919		}
49920		return nil, &googleapi.Error{
49921			Code:   res.StatusCode,
49922			Header: res.Header,
49923		}
49924	}
49925	if err != nil {
49926		return nil, err
49927	}
49928	defer googleapi.CloseBody(res)
49929	if err := googleapi.CheckResponse(res); err != nil {
49930		return nil, err
49931	}
49932	ret := &ImageList{
49933		ServerResponse: googleapi.ServerResponse{
49934			Header:         res.Header,
49935			HTTPStatusCode: res.StatusCode,
49936		},
49937	}
49938	target := &ret
49939	if err := gensupport.DecodeResponse(target, res); err != nil {
49940		return nil, err
49941	}
49942	return ret, nil
49943	// {
49944	//   "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.",
49945	//   "httpMethod": "GET",
49946	//   "id": "compute.images.list",
49947	//   "parameterOrder": [
49948	//     "project"
49949	//   ],
49950	//   "parameters": {
49951	//     "filter": {
49952	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
49953	//       "location": "query",
49954	//       "type": "string"
49955	//     },
49956	//     "maxResults": {
49957	//       "default": "500",
49958	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
49959	//       "format": "uint32",
49960	//       "location": "query",
49961	//       "minimum": "0",
49962	//       "type": "integer"
49963	//     },
49964	//     "orderBy": {
49965	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
49966	//       "location": "query",
49967	//       "type": "string"
49968	//     },
49969	//     "pageToken": {
49970	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
49971	//       "location": "query",
49972	//       "type": "string"
49973	//     },
49974	//     "project": {
49975	//       "description": "Project ID for this request.",
49976	//       "location": "path",
49977	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49978	//       "required": true,
49979	//       "type": "string"
49980	//     }
49981	//   },
49982	//   "path": "{project}/global/images",
49983	//   "response": {
49984	//     "$ref": "ImageList"
49985	//   },
49986	//   "scopes": [
49987	//     "https://www.googleapis.com/auth/cloud-platform",
49988	//     "https://www.googleapis.com/auth/compute",
49989	//     "https://www.googleapis.com/auth/compute.readonly"
49990	//   ]
49991	// }
49992
49993}
49994
49995// Pages invokes f for each page of results.
49996// A non-nil error returned from f will halt the iteration.
49997// The provided context supersedes any context provided to the Context method.
49998func (c *ImagesListCall) Pages(ctx context.Context, f func(*ImageList) error) error {
49999	c.ctx_ = ctx
50000	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
50001	for {
50002		x, err := c.Do()
50003		if err != nil {
50004			return err
50005		}
50006		if err := f(x); err != nil {
50007			return err
50008		}
50009		if x.NextPageToken == "" {
50010			return nil
50011		}
50012		c.PageToken(x.NextPageToken)
50013	}
50014}
50015
50016// method id "compute.images.setIamPolicy":
50017
50018type ImagesSetIamPolicyCall struct {
50019	s                      *Service
50020	project                string
50021	resource               string
50022	globalsetpolicyrequest *GlobalSetPolicyRequest
50023	urlParams_             gensupport.URLParams
50024	ctx_                   context.Context
50025	header_                http.Header
50026}
50027
50028// SetIamPolicy: Sets the access control policy on the specified
50029// resource. Replaces any existing policy.
50030func (r *ImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *ImagesSetIamPolicyCall {
50031	c := &ImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50032	c.project = project
50033	c.resource = resource
50034	c.globalsetpolicyrequest = globalsetpolicyrequest
50035	return c
50036}
50037
50038// Fields allows partial responses to be retrieved. See
50039// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50040// for more information.
50041func (c *ImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesSetIamPolicyCall {
50042	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50043	return c
50044}
50045
50046// Context sets the context to be used in this call's Do method. Any
50047// pending HTTP request will be aborted if the provided context is
50048// canceled.
50049func (c *ImagesSetIamPolicyCall) Context(ctx context.Context) *ImagesSetIamPolicyCall {
50050	c.ctx_ = ctx
50051	return c
50052}
50053
50054// Header returns an http.Header that can be modified by the caller to
50055// add HTTP headers to the request.
50056func (c *ImagesSetIamPolicyCall) Header() http.Header {
50057	if c.header_ == nil {
50058		c.header_ = make(http.Header)
50059	}
50060	return c.header_
50061}
50062
50063func (c *ImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
50064	reqHeaders := make(http.Header)
50065	for k, v := range c.header_ {
50066		reqHeaders[k] = v
50067	}
50068	reqHeaders.Set("User-Agent", c.s.userAgent())
50069	var body io.Reader = nil
50070	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
50071	if err != nil {
50072		return nil, err
50073	}
50074	reqHeaders.Set("Content-Type", "application/json")
50075	c.urlParams_.Set("alt", alt)
50076	c.urlParams_.Set("prettyPrint", "false")
50077	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/setIamPolicy")
50078	urls += "?" + c.urlParams_.Encode()
50079	req, err := http.NewRequest("POST", urls, body)
50080	if err != nil {
50081		return nil, err
50082	}
50083	req.Header = reqHeaders
50084	googleapi.Expand(req.URL, map[string]string{
50085		"project":  c.project,
50086		"resource": c.resource,
50087	})
50088	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50089}
50090
50091// Do executes the "compute.images.setIamPolicy" call.
50092// Exactly one of *Policy or error will be non-nil. Any non-2xx status
50093// code is an error. Response headers are in either
50094// *Policy.ServerResponse.Header or (if a response was returned at all)
50095// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
50096// check whether the returned error was because http.StatusNotModified
50097// was returned.
50098func (c *ImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
50099	gensupport.SetOptions(c.urlParams_, opts...)
50100	res, err := c.doRequest("json")
50101	if res != nil && res.StatusCode == http.StatusNotModified {
50102		if res.Body != nil {
50103			res.Body.Close()
50104		}
50105		return nil, &googleapi.Error{
50106			Code:   res.StatusCode,
50107			Header: res.Header,
50108		}
50109	}
50110	if err != nil {
50111		return nil, err
50112	}
50113	defer googleapi.CloseBody(res)
50114	if err := googleapi.CheckResponse(res); err != nil {
50115		return nil, err
50116	}
50117	ret := &Policy{
50118		ServerResponse: googleapi.ServerResponse{
50119			Header:         res.Header,
50120			HTTPStatusCode: res.StatusCode,
50121		},
50122	}
50123	target := &ret
50124	if err := gensupport.DecodeResponse(target, res); err != nil {
50125		return nil, err
50126	}
50127	return ret, nil
50128	// {
50129	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
50130	//   "httpMethod": "POST",
50131	//   "id": "compute.images.setIamPolicy",
50132	//   "parameterOrder": [
50133	//     "project",
50134	//     "resource"
50135	//   ],
50136	//   "parameters": {
50137	//     "project": {
50138	//       "description": "Project ID for this request.",
50139	//       "location": "path",
50140	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50141	//       "required": true,
50142	//       "type": "string"
50143	//     },
50144	//     "resource": {
50145	//       "description": "Name or id of the resource for this request.",
50146	//       "location": "path",
50147	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50148	//       "required": true,
50149	//       "type": "string"
50150	//     }
50151	//   },
50152	//   "path": "{project}/global/images/{resource}/setIamPolicy",
50153	//   "request": {
50154	//     "$ref": "GlobalSetPolicyRequest"
50155	//   },
50156	//   "response": {
50157	//     "$ref": "Policy"
50158	//   },
50159	//   "scopes": [
50160	//     "https://www.googleapis.com/auth/cloud-platform",
50161	//     "https://www.googleapis.com/auth/compute"
50162	//   ]
50163	// }
50164
50165}
50166
50167// method id "compute.images.setLabels":
50168
50169type ImagesSetLabelsCall struct {
50170	s                      *Service
50171	project                string
50172	resource               string
50173	globalsetlabelsrequest *GlobalSetLabelsRequest
50174	urlParams_             gensupport.URLParams
50175	ctx_                   context.Context
50176	header_                http.Header
50177}
50178
50179// SetLabels: Sets the labels on an image. To learn more about labels,
50180// read the Labeling Resources documentation.
50181func (r *ImagesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ImagesSetLabelsCall {
50182	c := &ImagesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50183	c.project = project
50184	c.resource = resource
50185	c.globalsetlabelsrequest = globalsetlabelsrequest
50186	return c
50187}
50188
50189// Fields allows partial responses to be retrieved. See
50190// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50191// for more information.
50192func (c *ImagesSetLabelsCall) Fields(s ...googleapi.Field) *ImagesSetLabelsCall {
50193	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50194	return c
50195}
50196
50197// Context sets the context to be used in this call's Do method. Any
50198// pending HTTP request will be aborted if the provided context is
50199// canceled.
50200func (c *ImagesSetLabelsCall) Context(ctx context.Context) *ImagesSetLabelsCall {
50201	c.ctx_ = ctx
50202	return c
50203}
50204
50205// Header returns an http.Header that can be modified by the caller to
50206// add HTTP headers to the request.
50207func (c *ImagesSetLabelsCall) Header() http.Header {
50208	if c.header_ == nil {
50209		c.header_ = make(http.Header)
50210	}
50211	return c.header_
50212}
50213
50214func (c *ImagesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
50215	reqHeaders := make(http.Header)
50216	for k, v := range c.header_ {
50217		reqHeaders[k] = v
50218	}
50219	reqHeaders.Set("User-Agent", c.s.userAgent())
50220	var body io.Reader = nil
50221	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
50222	if err != nil {
50223		return nil, err
50224	}
50225	reqHeaders.Set("Content-Type", "application/json")
50226	c.urlParams_.Set("alt", alt)
50227	c.urlParams_.Set("prettyPrint", "false")
50228	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/setLabels")
50229	urls += "?" + c.urlParams_.Encode()
50230	req, err := http.NewRequest("POST", urls, body)
50231	if err != nil {
50232		return nil, err
50233	}
50234	req.Header = reqHeaders
50235	googleapi.Expand(req.URL, map[string]string{
50236		"project":  c.project,
50237		"resource": c.resource,
50238	})
50239	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50240}
50241
50242// Do executes the "compute.images.setLabels" call.
50243// Exactly one of *Operation or error will be non-nil. Any non-2xx
50244// status code is an error. Response headers are in either
50245// *Operation.ServerResponse.Header or (if a response was returned at
50246// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50247// to check whether the returned error was because
50248// http.StatusNotModified was returned.
50249func (c *ImagesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50250	gensupport.SetOptions(c.urlParams_, opts...)
50251	res, err := c.doRequest("json")
50252	if res != nil && res.StatusCode == http.StatusNotModified {
50253		if res.Body != nil {
50254			res.Body.Close()
50255		}
50256		return nil, &googleapi.Error{
50257			Code:   res.StatusCode,
50258			Header: res.Header,
50259		}
50260	}
50261	if err != nil {
50262		return nil, err
50263	}
50264	defer googleapi.CloseBody(res)
50265	if err := googleapi.CheckResponse(res); err != nil {
50266		return nil, err
50267	}
50268	ret := &Operation{
50269		ServerResponse: googleapi.ServerResponse{
50270			Header:         res.Header,
50271			HTTPStatusCode: res.StatusCode,
50272		},
50273	}
50274	target := &ret
50275	if err := gensupport.DecodeResponse(target, res); err != nil {
50276		return nil, err
50277	}
50278	return ret, nil
50279	// {
50280	//   "description": "Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation.",
50281	//   "httpMethod": "POST",
50282	//   "id": "compute.images.setLabels",
50283	//   "parameterOrder": [
50284	//     "project",
50285	//     "resource"
50286	//   ],
50287	//   "parameters": {
50288	//     "project": {
50289	//       "description": "Project ID for this request.",
50290	//       "location": "path",
50291	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50292	//       "required": true,
50293	//       "type": "string"
50294	//     },
50295	//     "resource": {
50296	//       "description": "Name or id of the resource for this request.",
50297	//       "location": "path",
50298	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50299	//       "required": true,
50300	//       "type": "string"
50301	//     }
50302	//   },
50303	//   "path": "{project}/global/images/{resource}/setLabels",
50304	//   "request": {
50305	//     "$ref": "GlobalSetLabelsRequest"
50306	//   },
50307	//   "response": {
50308	//     "$ref": "Operation"
50309	//   },
50310	//   "scopes": [
50311	//     "https://www.googleapis.com/auth/cloud-platform",
50312	//     "https://www.googleapis.com/auth/compute"
50313	//   ]
50314	// }
50315
50316}
50317
50318// method id "compute.images.testIamPermissions":
50319
50320type ImagesTestIamPermissionsCall struct {
50321	s                      *Service
50322	project                string
50323	resource               string
50324	testpermissionsrequest *TestPermissionsRequest
50325	urlParams_             gensupport.URLParams
50326	ctx_                   context.Context
50327	header_                http.Header
50328}
50329
50330// TestIamPermissions: Returns permissions that a caller has on the
50331// specified resource.
50332func (r *ImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ImagesTestIamPermissionsCall {
50333	c := &ImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50334	c.project = project
50335	c.resource = resource
50336	c.testpermissionsrequest = testpermissionsrequest
50337	return c
50338}
50339
50340// Fields allows partial responses to be retrieved. See
50341// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50342// for more information.
50343func (c *ImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ImagesTestIamPermissionsCall {
50344	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50345	return c
50346}
50347
50348// Context sets the context to be used in this call's Do method. Any
50349// pending HTTP request will be aborted if the provided context is
50350// canceled.
50351func (c *ImagesTestIamPermissionsCall) Context(ctx context.Context) *ImagesTestIamPermissionsCall {
50352	c.ctx_ = ctx
50353	return c
50354}
50355
50356// Header returns an http.Header that can be modified by the caller to
50357// add HTTP headers to the request.
50358func (c *ImagesTestIamPermissionsCall) Header() http.Header {
50359	if c.header_ == nil {
50360		c.header_ = make(http.Header)
50361	}
50362	return c.header_
50363}
50364
50365func (c *ImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
50366	reqHeaders := make(http.Header)
50367	for k, v := range c.header_ {
50368		reqHeaders[k] = v
50369	}
50370	reqHeaders.Set("User-Agent", c.s.userAgent())
50371	var body io.Reader = nil
50372	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
50373	if err != nil {
50374		return nil, err
50375	}
50376	reqHeaders.Set("Content-Type", "application/json")
50377	c.urlParams_.Set("alt", alt)
50378	c.urlParams_.Set("prettyPrint", "false")
50379	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/testIamPermissions")
50380	urls += "?" + c.urlParams_.Encode()
50381	req, err := http.NewRequest("POST", urls, body)
50382	if err != nil {
50383		return nil, err
50384	}
50385	req.Header = reqHeaders
50386	googleapi.Expand(req.URL, map[string]string{
50387		"project":  c.project,
50388		"resource": c.resource,
50389	})
50390	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50391}
50392
50393// Do executes the "compute.images.testIamPermissions" call.
50394// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
50395// non-2xx status code is an error. Response headers are in either
50396// *TestPermissionsResponse.ServerResponse.Header or (if a response was
50397// returned at all) in error.(*googleapi.Error).Header. Use
50398// googleapi.IsNotModified to check whether the returned error was
50399// because http.StatusNotModified was returned.
50400func (c *ImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
50401	gensupport.SetOptions(c.urlParams_, opts...)
50402	res, err := c.doRequest("json")
50403	if res != nil && res.StatusCode == http.StatusNotModified {
50404		if res.Body != nil {
50405			res.Body.Close()
50406		}
50407		return nil, &googleapi.Error{
50408			Code:   res.StatusCode,
50409			Header: res.Header,
50410		}
50411	}
50412	if err != nil {
50413		return nil, err
50414	}
50415	defer googleapi.CloseBody(res)
50416	if err := googleapi.CheckResponse(res); err != nil {
50417		return nil, err
50418	}
50419	ret := &TestPermissionsResponse{
50420		ServerResponse: googleapi.ServerResponse{
50421			Header:         res.Header,
50422			HTTPStatusCode: res.StatusCode,
50423		},
50424	}
50425	target := &ret
50426	if err := gensupport.DecodeResponse(target, res); err != nil {
50427		return nil, err
50428	}
50429	return ret, nil
50430	// {
50431	//   "description": "Returns permissions that a caller has on the specified resource.",
50432	//   "httpMethod": "POST",
50433	//   "id": "compute.images.testIamPermissions",
50434	//   "parameterOrder": [
50435	//     "project",
50436	//     "resource"
50437	//   ],
50438	//   "parameters": {
50439	//     "project": {
50440	//       "description": "Project ID for this request.",
50441	//       "location": "path",
50442	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50443	//       "required": true,
50444	//       "type": "string"
50445	//     },
50446	//     "resource": {
50447	//       "description": "Name or id of the resource for this request.",
50448	//       "location": "path",
50449	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50450	//       "required": true,
50451	//       "type": "string"
50452	//     }
50453	//   },
50454	//   "path": "{project}/global/images/{resource}/testIamPermissions",
50455	//   "request": {
50456	//     "$ref": "TestPermissionsRequest"
50457	//   },
50458	//   "response": {
50459	//     "$ref": "TestPermissionsResponse"
50460	//   },
50461	//   "scopes": [
50462	//     "https://www.googleapis.com/auth/cloud-platform",
50463	//     "https://www.googleapis.com/auth/compute",
50464	//     "https://www.googleapis.com/auth/compute.readonly"
50465	//   ]
50466	// }
50467
50468}
50469
50470// method id "compute.instanceGroupManagers.abandonInstances":
50471
50472type InstanceGroupManagersAbandonInstancesCall struct {
50473	s                                            *Service
50474	project                                      string
50475	zone                                         string
50476	instanceGroupManager                         string
50477	instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest
50478	urlParams_                                   gensupport.URLParams
50479	ctx_                                         context.Context
50480	header_                                      http.Header
50481}
50482
50483// AbandonInstances: Flags the specified instances to be removed from
50484// the managed instance group. Abandoning an instance does not delete
50485// the instance, but it does remove the instance from any target pools
50486// that are applied by the managed instance group. This method reduces
50487// the targetSize of the managed instance group by the number of
50488// instances that you abandon. This operation is marked as DONE when the
50489// action is scheduled even if the instances have not yet been removed
50490// from the group. You must separately verify the status of the
50491// abandoning action with the listmanagedinstances method.
50492//
50493// If the group is part of a backend service that has enabled connection
50494// draining, it can take up to 60 seconds after the connection draining
50495// duration has elapsed before the VM instance is removed or
50496// deleted.
50497//
50498// You can specify a maximum of 1000 instances with this method per
50499// request.
50500func (r *InstanceGroupManagersService) AbandonInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest) *InstanceGroupManagersAbandonInstancesCall {
50501	c := &InstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50502	c.project = project
50503	c.zone = zone
50504	c.instanceGroupManager = instanceGroupManager
50505	c.instancegroupmanagersabandoninstancesrequest = instancegroupmanagersabandoninstancesrequest
50506	return c
50507}
50508
50509// RequestId sets the optional parameter "requestId": An optional
50510// request ID to identify requests. Specify a unique request ID so that
50511// if you must retry your request, the server will know to ignore the
50512// request if it has already been completed.
50513//
50514// For example, consider a situation where you make an initial request
50515// and the request times out. If you make the request again with the
50516// same request ID, the server can check if original operation with the
50517// same request ID was received, and if so, will ignore the second
50518// request. This prevents clients from accidentally creating duplicate
50519// commitments.
50520//
50521// The request ID must be a valid UUID with the exception that zero UUID
50522// is not supported (00000000-0000-0000-0000-000000000000).
50523func (c *InstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *InstanceGroupManagersAbandonInstancesCall {
50524	c.urlParams_.Set("requestId", requestId)
50525	return c
50526}
50527
50528// Fields allows partial responses to be retrieved. See
50529// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50530// for more information.
50531func (c *InstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAbandonInstancesCall {
50532	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50533	return c
50534}
50535
50536// Context sets the context to be used in this call's Do method. Any
50537// pending HTTP request will be aborted if the provided context is
50538// canceled.
50539func (c *InstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *InstanceGroupManagersAbandonInstancesCall {
50540	c.ctx_ = ctx
50541	return c
50542}
50543
50544// Header returns an http.Header that can be modified by the caller to
50545// add HTTP headers to the request.
50546func (c *InstanceGroupManagersAbandonInstancesCall) Header() http.Header {
50547	if c.header_ == nil {
50548		c.header_ = make(http.Header)
50549	}
50550	return c.header_
50551}
50552
50553func (c *InstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
50554	reqHeaders := make(http.Header)
50555	for k, v := range c.header_ {
50556		reqHeaders[k] = v
50557	}
50558	reqHeaders.Set("User-Agent", c.s.userAgent())
50559	var body io.Reader = nil
50560	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersabandoninstancesrequest)
50561	if err != nil {
50562		return nil, err
50563	}
50564	reqHeaders.Set("Content-Type", "application/json")
50565	c.urlParams_.Set("alt", alt)
50566	c.urlParams_.Set("prettyPrint", "false")
50567	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
50568	urls += "?" + c.urlParams_.Encode()
50569	req, err := http.NewRequest("POST", urls, body)
50570	if err != nil {
50571		return nil, err
50572	}
50573	req.Header = reqHeaders
50574	googleapi.Expand(req.URL, map[string]string{
50575		"project":              c.project,
50576		"zone":                 c.zone,
50577		"instanceGroupManager": c.instanceGroupManager,
50578	})
50579	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50580}
50581
50582// Do executes the "compute.instanceGroupManagers.abandonInstances" call.
50583// Exactly one of *Operation or error will be non-nil. Any non-2xx
50584// status code is an error. Response headers are in either
50585// *Operation.ServerResponse.Header or (if a response was returned at
50586// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50587// to check whether the returned error was because
50588// http.StatusNotModified was returned.
50589func (c *InstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50590	gensupport.SetOptions(c.urlParams_, opts...)
50591	res, err := c.doRequest("json")
50592	if res != nil && res.StatusCode == http.StatusNotModified {
50593		if res.Body != nil {
50594			res.Body.Close()
50595		}
50596		return nil, &googleapi.Error{
50597			Code:   res.StatusCode,
50598			Header: res.Header,
50599		}
50600	}
50601	if err != nil {
50602		return nil, err
50603	}
50604	defer googleapi.CloseBody(res)
50605	if err := googleapi.CheckResponse(res); err != nil {
50606		return nil, err
50607	}
50608	ret := &Operation{
50609		ServerResponse: googleapi.ServerResponse{
50610			Header:         res.Header,
50611			HTTPStatusCode: res.StatusCode,
50612		},
50613	}
50614	target := &ret
50615	if err := gensupport.DecodeResponse(target, res); err != nil {
50616		return nil, err
50617	}
50618	return ret, nil
50619	// {
50620	//   "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.",
50621	//   "httpMethod": "POST",
50622	//   "id": "compute.instanceGroupManagers.abandonInstances",
50623	//   "parameterOrder": [
50624	//     "project",
50625	//     "zone",
50626	//     "instanceGroupManager"
50627	//   ],
50628	//   "parameters": {
50629	//     "instanceGroupManager": {
50630	//       "description": "The name of the managed instance group.",
50631	//       "location": "path",
50632	//       "required": true,
50633	//       "type": "string"
50634	//     },
50635	//     "project": {
50636	//       "description": "Project ID for this request.",
50637	//       "location": "path",
50638	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50639	//       "required": true,
50640	//       "type": "string"
50641	//     },
50642	//     "requestId": {
50643	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50644	//       "location": "query",
50645	//       "type": "string"
50646	//     },
50647	//     "zone": {
50648	//       "description": "The name of the zone where the managed instance group is located.",
50649	//       "location": "path",
50650	//       "required": true,
50651	//       "type": "string"
50652	//     }
50653	//   },
50654	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
50655	//   "request": {
50656	//     "$ref": "InstanceGroupManagersAbandonInstancesRequest"
50657	//   },
50658	//   "response": {
50659	//     "$ref": "Operation"
50660	//   },
50661	//   "scopes": [
50662	//     "https://www.googleapis.com/auth/cloud-platform",
50663	//     "https://www.googleapis.com/auth/compute"
50664	//   ]
50665	// }
50666
50667}
50668
50669// method id "compute.instanceGroupManagers.aggregatedList":
50670
50671type InstanceGroupManagersAggregatedListCall struct {
50672	s            *Service
50673	project      string
50674	urlParams_   gensupport.URLParams
50675	ifNoneMatch_ string
50676	ctx_         context.Context
50677	header_      http.Header
50678}
50679
50680// AggregatedList: Retrieves the list of managed instance groups and
50681// groups them by zone.
50682func (r *InstanceGroupManagersService) AggregatedList(project string) *InstanceGroupManagersAggregatedListCall {
50683	c := &InstanceGroupManagersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50684	c.project = project
50685	return c
50686}
50687
50688// Filter sets the optional parameter "filter": A filter expression that
50689// filters resources listed in the response. The expression must specify
50690// the field name, a comparison operator, and the value that you want to
50691// use for filtering. The value must be a string, a number, or a
50692// boolean. The comparison operator must be either =, !=, >, or <.
50693//
50694// For example, if you are filtering Compute Engine instances, you can
50695// exclude instances named example-instance by specifying name !=
50696// example-instance.
50697//
50698// You can also filter nested fields. For example, you could specify
50699// scheduling.automaticRestart = false to include instances only if they
50700// are not scheduled for automatic restarts. You can use filtering on
50701// nested fields to filter based on resource labels.
50702//
50703// To filter on multiple expressions, provide each separate expression
50704// within parentheses. For example, (scheduling.automaticRestart = true)
50705// (cpuPlatform = "Intel Skylake"). By default, each expression is an
50706// AND expression. However, you can include AND and OR expressions
50707// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
50708// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
50709// true).
50710func (c *InstanceGroupManagersAggregatedListCall) Filter(filter string) *InstanceGroupManagersAggregatedListCall {
50711	c.urlParams_.Set("filter", filter)
50712	return c
50713}
50714
50715// MaxResults sets the optional parameter "maxResults": The maximum
50716// number of results per page that should be returned. If the number of
50717// available results is larger than maxResults, Compute Engine returns a
50718// nextPageToken that can be used to get the next page of results in
50719// subsequent list requests. Acceptable values are 0 to 500, inclusive.
50720// (Default: 500)
50721func (c *InstanceGroupManagersAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupManagersAggregatedListCall {
50722	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
50723	return c
50724}
50725
50726// OrderBy sets the optional parameter "orderBy": Sorts list results by
50727// a certain order. By default, results are returned in alphanumerical
50728// order based on the resource name.
50729//
50730// You can also sort results in descending order based on the creation
50731// timestamp using orderBy="creationTimestamp desc". This sorts results
50732// based on the creationTimestamp field in reverse chronological order
50733// (newest result first). Use this to sort resources like operations so
50734// that the newest operation is returned first.
50735//
50736// Currently, only sorting by name or creationTimestamp desc is
50737// supported.
50738func (c *InstanceGroupManagersAggregatedListCall) OrderBy(orderBy string) *InstanceGroupManagersAggregatedListCall {
50739	c.urlParams_.Set("orderBy", orderBy)
50740	return c
50741}
50742
50743// PageToken sets the optional parameter "pageToken": Specifies a page
50744// token to use. Set pageToken to the nextPageToken returned by a
50745// previous list request to get the next page of results.
50746func (c *InstanceGroupManagersAggregatedListCall) PageToken(pageToken string) *InstanceGroupManagersAggregatedListCall {
50747	c.urlParams_.Set("pageToken", pageToken)
50748	return c
50749}
50750
50751// Fields allows partial responses to be retrieved. See
50752// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50753// for more information.
50754func (c *InstanceGroupManagersAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAggregatedListCall {
50755	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50756	return c
50757}
50758
50759// IfNoneMatch sets the optional parameter which makes the operation
50760// fail if the object's ETag matches the given value. This is useful for
50761// getting updates only after the object has changed since the last
50762// request. Use googleapi.IsNotModified to check whether the response
50763// error from Do is the result of In-None-Match.
50764func (c *InstanceGroupManagersAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersAggregatedListCall {
50765	c.ifNoneMatch_ = entityTag
50766	return c
50767}
50768
50769// Context sets the context to be used in this call's Do method. Any
50770// pending HTTP request will be aborted if the provided context is
50771// canceled.
50772func (c *InstanceGroupManagersAggregatedListCall) Context(ctx context.Context) *InstanceGroupManagersAggregatedListCall {
50773	c.ctx_ = ctx
50774	return c
50775}
50776
50777// Header returns an http.Header that can be modified by the caller to
50778// add HTTP headers to the request.
50779func (c *InstanceGroupManagersAggregatedListCall) Header() http.Header {
50780	if c.header_ == nil {
50781		c.header_ = make(http.Header)
50782	}
50783	return c.header_
50784}
50785
50786func (c *InstanceGroupManagersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
50787	reqHeaders := make(http.Header)
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}/aggregated/instanceGroupManagers")
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	})
50808	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50809}
50810
50811// Do executes the "compute.instanceGroupManagers.aggregatedList" call.
50812// Exactly one of *InstanceGroupManagerAggregatedList or error will be
50813// non-nil. Any non-2xx status code is an error. Response headers are in
50814// either *InstanceGroupManagerAggregatedList.ServerResponse.Header or
50815// (if a response was returned at all) in
50816// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
50817// whether the returned error was because http.StatusNotModified was
50818// returned.
50819func (c *InstanceGroupManagersAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerAggregatedList, 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 := &InstanceGroupManagerAggregatedList{
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 the list of managed instance groups and groups them by zone.",
50851	//   "httpMethod": "GET",
50852	//   "id": "compute.instanceGroupManagers.aggregatedList",
50853	//   "parameterOrder": [
50854	//     "project"
50855	//   ],
50856	//   "parameters": {
50857	//     "filter": {
50858	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
50859	//       "location": "query",
50860	//       "type": "string"
50861	//     },
50862	//     "maxResults": {
50863	//       "default": "500",
50864	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
50865	//       "format": "uint32",
50866	//       "location": "query",
50867	//       "minimum": "0",
50868	//       "type": "integer"
50869	//     },
50870	//     "orderBy": {
50871	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
50872	//       "location": "query",
50873	//       "type": "string"
50874	//     },
50875	//     "pageToken": {
50876	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
50877	//       "location": "query",
50878	//       "type": "string"
50879	//     },
50880	//     "project": {
50881	//       "description": "Project ID for this request.",
50882	//       "location": "path",
50883	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50884	//       "required": true,
50885	//       "type": "string"
50886	//     }
50887	//   },
50888	//   "path": "{project}/aggregated/instanceGroupManagers",
50889	//   "response": {
50890	//     "$ref": "InstanceGroupManagerAggregatedList"
50891	//   },
50892	//   "scopes": [
50893	//     "https://www.googleapis.com/auth/cloud-platform",
50894	//     "https://www.googleapis.com/auth/compute",
50895	//     "https://www.googleapis.com/auth/compute.readonly"
50896	//   ]
50897	// }
50898
50899}
50900
50901// Pages invokes f for each page of results.
50902// A non-nil error returned from f will halt the iteration.
50903// The provided context supersedes any context provided to the Context method.
50904func (c *InstanceGroupManagersAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerAggregatedList) error) error {
50905	c.ctx_ = ctx
50906	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
50907	for {
50908		x, err := c.Do()
50909		if err != nil {
50910			return err
50911		}
50912		if err := f(x); err != nil {
50913			return err
50914		}
50915		if x.NextPageToken == "" {
50916			return nil
50917		}
50918		c.PageToken(x.NextPageToken)
50919	}
50920}
50921
50922// method id "compute.instanceGroupManagers.delete":
50923
50924type InstanceGroupManagersDeleteCall struct {
50925	s                    *Service
50926	project              string
50927	zone                 string
50928	instanceGroupManager string
50929	urlParams_           gensupport.URLParams
50930	ctx_                 context.Context
50931	header_              http.Header
50932}
50933
50934// Delete: Deletes the specified managed instance group and all of the
50935// instances in that group. Note that the instance group must not belong
50936// to a backend service. Read  Deleting an instance group for more
50937// information.
50938func (r *InstanceGroupManagersService) Delete(project string, zone string, instanceGroupManager string) *InstanceGroupManagersDeleteCall {
50939	c := &InstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50940	c.project = project
50941	c.zone = zone
50942	c.instanceGroupManager = instanceGroupManager
50943	return c
50944}
50945
50946// RequestId sets the optional parameter "requestId": An optional
50947// request ID to identify requests. Specify a unique request ID so that
50948// if you must retry your request, the server will know to ignore the
50949// request if it has already been completed.
50950//
50951// For example, consider a situation where you make an initial request
50952// and the request times out. If you make the request again with the
50953// same request ID, the server can check if original operation with the
50954// same request ID was received, and if so, will ignore the second
50955// request. This prevents clients from accidentally creating duplicate
50956// commitments.
50957//
50958// The request ID must be a valid UUID with the exception that zero UUID
50959// is not supported (00000000-0000-0000-0000-000000000000).
50960func (c *InstanceGroupManagersDeleteCall) RequestId(requestId string) *InstanceGroupManagersDeleteCall {
50961	c.urlParams_.Set("requestId", requestId)
50962	return c
50963}
50964
50965// Fields allows partial responses to be retrieved. See
50966// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50967// for more information.
50968func (c *InstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteCall {
50969	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50970	return c
50971}
50972
50973// Context sets the context to be used in this call's Do method. Any
50974// pending HTTP request will be aborted if the provided context is
50975// canceled.
50976func (c *InstanceGroupManagersDeleteCall) Context(ctx context.Context) *InstanceGroupManagersDeleteCall {
50977	c.ctx_ = ctx
50978	return c
50979}
50980
50981// Header returns an http.Header that can be modified by the caller to
50982// add HTTP headers to the request.
50983func (c *InstanceGroupManagersDeleteCall) Header() http.Header {
50984	if c.header_ == nil {
50985		c.header_ = make(http.Header)
50986	}
50987	return c.header_
50988}
50989
50990func (c *InstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
50991	reqHeaders := make(http.Header)
50992	for k, v := range c.header_ {
50993		reqHeaders[k] = v
50994	}
50995	reqHeaders.Set("User-Agent", c.s.userAgent())
50996	var body io.Reader = nil
50997	c.urlParams_.Set("alt", alt)
50998	c.urlParams_.Set("prettyPrint", "false")
50999	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
51000	urls += "?" + c.urlParams_.Encode()
51001	req, err := http.NewRequest("DELETE", urls, body)
51002	if err != nil {
51003		return nil, err
51004	}
51005	req.Header = reqHeaders
51006	googleapi.Expand(req.URL, map[string]string{
51007		"project":              c.project,
51008		"zone":                 c.zone,
51009		"instanceGroupManager": c.instanceGroupManager,
51010	})
51011	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51012}
51013
51014// Do executes the "compute.instanceGroupManagers.delete" call.
51015// Exactly one of *Operation or error will be non-nil. Any non-2xx
51016// status code is an error. Response headers are in either
51017// *Operation.ServerResponse.Header or (if a response was returned at
51018// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51019// to check whether the returned error was because
51020// http.StatusNotModified was returned.
51021func (c *InstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51022	gensupport.SetOptions(c.urlParams_, opts...)
51023	res, err := c.doRequest("json")
51024	if res != nil && res.StatusCode == http.StatusNotModified {
51025		if res.Body != nil {
51026			res.Body.Close()
51027		}
51028		return nil, &googleapi.Error{
51029			Code:   res.StatusCode,
51030			Header: res.Header,
51031		}
51032	}
51033	if err != nil {
51034		return nil, err
51035	}
51036	defer googleapi.CloseBody(res)
51037	if err := googleapi.CheckResponse(res); err != nil {
51038		return nil, err
51039	}
51040	ret := &Operation{
51041		ServerResponse: googleapi.ServerResponse{
51042			Header:         res.Header,
51043			HTTPStatusCode: res.StatusCode,
51044		},
51045	}
51046	target := &ret
51047	if err := gensupport.DecodeResponse(target, res); err != nil {
51048		return nil, err
51049	}
51050	return ret, nil
51051	// {
51052	//   "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.",
51053	//   "httpMethod": "DELETE",
51054	//   "id": "compute.instanceGroupManagers.delete",
51055	//   "parameterOrder": [
51056	//     "project",
51057	//     "zone",
51058	//     "instanceGroupManager"
51059	//   ],
51060	//   "parameters": {
51061	//     "instanceGroupManager": {
51062	//       "description": "The name of the managed instance group to delete.",
51063	//       "location": "path",
51064	//       "required": true,
51065	//       "type": "string"
51066	//     },
51067	//     "project": {
51068	//       "description": "Project ID for this request.",
51069	//       "location": "path",
51070	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51071	//       "required": true,
51072	//       "type": "string"
51073	//     },
51074	//     "requestId": {
51075	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51076	//       "location": "query",
51077	//       "type": "string"
51078	//     },
51079	//     "zone": {
51080	//       "description": "The name of the zone where the managed instance group is located.",
51081	//       "location": "path",
51082	//       "required": true,
51083	//       "type": "string"
51084	//     }
51085	//   },
51086	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
51087	//   "response": {
51088	//     "$ref": "Operation"
51089	//   },
51090	//   "scopes": [
51091	//     "https://www.googleapis.com/auth/cloud-platform",
51092	//     "https://www.googleapis.com/auth/compute"
51093	//   ]
51094	// }
51095
51096}
51097
51098// method id "compute.instanceGroupManagers.deleteInstances":
51099
51100type InstanceGroupManagersDeleteInstancesCall struct {
51101	s                                           *Service
51102	project                                     string
51103	zone                                        string
51104	instanceGroupManager                        string
51105	instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest
51106	urlParams_                                  gensupport.URLParams
51107	ctx_                                        context.Context
51108	header_                                     http.Header
51109}
51110
51111// DeleteInstances: Flags the specified instances in the managed
51112// instance group for immediate deletion. The instances are also removed
51113// from any target pools of which they were a member. This method
51114// reduces the targetSize of the managed instance group by the number of
51115// instances that you delete. This operation is marked as DONE when the
51116// action is scheduled even if the instances are still being deleted.
51117// You must separately verify the status of the deleting action with the
51118// listmanagedinstances method.
51119//
51120// If the group is part of a backend service that has enabled connection
51121// draining, it can take up to 60 seconds after the connection draining
51122// duration has elapsed before the VM instance is removed or
51123// deleted.
51124//
51125// You can specify a maximum of 1000 instances with this method per
51126// request.
51127func (r *InstanceGroupManagersService) DeleteInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest) *InstanceGroupManagersDeleteInstancesCall {
51128	c := &InstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51129	c.project = project
51130	c.zone = zone
51131	c.instanceGroupManager = instanceGroupManager
51132	c.instancegroupmanagersdeleteinstancesrequest = instancegroupmanagersdeleteinstancesrequest
51133	return c
51134}
51135
51136// RequestId sets the optional parameter "requestId": An optional
51137// request ID to identify requests. Specify a unique request ID so that
51138// if you must retry your request, the server will know to ignore the
51139// request if it has already been completed.
51140//
51141// For example, consider a situation where you make an initial request
51142// and the request times out. If you make the request again with the
51143// same request ID, the server can check if original operation with the
51144// same request ID was received, and if so, will ignore the second
51145// request. This prevents clients from accidentally creating duplicate
51146// commitments.
51147//
51148// The request ID must be a valid UUID with the exception that zero UUID
51149// is not supported (00000000-0000-0000-0000-000000000000).
51150func (c *InstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *InstanceGroupManagersDeleteInstancesCall {
51151	c.urlParams_.Set("requestId", requestId)
51152	return c
51153}
51154
51155// Fields allows partial responses to be retrieved. See
51156// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51157// for more information.
51158func (c *InstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteInstancesCall {
51159	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51160	return c
51161}
51162
51163// Context sets the context to be used in this call's Do method. Any
51164// pending HTTP request will be aborted if the provided context is
51165// canceled.
51166func (c *InstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *InstanceGroupManagersDeleteInstancesCall {
51167	c.ctx_ = ctx
51168	return c
51169}
51170
51171// Header returns an http.Header that can be modified by the caller to
51172// add HTTP headers to the request.
51173func (c *InstanceGroupManagersDeleteInstancesCall) Header() http.Header {
51174	if c.header_ == nil {
51175		c.header_ = make(http.Header)
51176	}
51177	return c.header_
51178}
51179
51180func (c *InstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
51181	reqHeaders := make(http.Header)
51182	for k, v := range c.header_ {
51183		reqHeaders[k] = v
51184	}
51185	reqHeaders.Set("User-Agent", c.s.userAgent())
51186	var body io.Reader = nil
51187	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteinstancesrequest)
51188	if err != nil {
51189		return nil, err
51190	}
51191	reqHeaders.Set("Content-Type", "application/json")
51192	c.urlParams_.Set("alt", alt)
51193	c.urlParams_.Set("prettyPrint", "false")
51194	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
51195	urls += "?" + c.urlParams_.Encode()
51196	req, err := http.NewRequest("POST", urls, body)
51197	if err != nil {
51198		return nil, err
51199	}
51200	req.Header = reqHeaders
51201	googleapi.Expand(req.URL, map[string]string{
51202		"project":              c.project,
51203		"zone":                 c.zone,
51204		"instanceGroupManager": c.instanceGroupManager,
51205	})
51206	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51207}
51208
51209// Do executes the "compute.instanceGroupManagers.deleteInstances" call.
51210// Exactly one of *Operation or error will be non-nil. Any non-2xx
51211// status code is an error. Response headers are in either
51212// *Operation.ServerResponse.Header or (if a response was returned at
51213// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51214// to check whether the returned error was because
51215// http.StatusNotModified was returned.
51216func (c *InstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51217	gensupport.SetOptions(c.urlParams_, opts...)
51218	res, err := c.doRequest("json")
51219	if res != nil && res.StatusCode == http.StatusNotModified {
51220		if res.Body != nil {
51221			res.Body.Close()
51222		}
51223		return nil, &googleapi.Error{
51224			Code:   res.StatusCode,
51225			Header: res.Header,
51226		}
51227	}
51228	if err != nil {
51229		return nil, err
51230	}
51231	defer googleapi.CloseBody(res)
51232	if err := googleapi.CheckResponse(res); err != nil {
51233		return nil, err
51234	}
51235	ret := &Operation{
51236		ServerResponse: googleapi.ServerResponse{
51237			Header:         res.Header,
51238			HTTPStatusCode: res.StatusCode,
51239		},
51240	}
51241	target := &ret
51242	if err := gensupport.DecodeResponse(target, res); err != nil {
51243		return nil, err
51244	}
51245	return ret, nil
51246	// {
51247	//   "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.",
51248	//   "httpMethod": "POST",
51249	//   "id": "compute.instanceGroupManagers.deleteInstances",
51250	//   "parameterOrder": [
51251	//     "project",
51252	//     "zone",
51253	//     "instanceGroupManager"
51254	//   ],
51255	//   "parameters": {
51256	//     "instanceGroupManager": {
51257	//       "description": "The name of the managed instance group.",
51258	//       "location": "path",
51259	//       "required": true,
51260	//       "type": "string"
51261	//     },
51262	//     "project": {
51263	//       "description": "Project ID for this request.",
51264	//       "location": "path",
51265	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51266	//       "required": true,
51267	//       "type": "string"
51268	//     },
51269	//     "requestId": {
51270	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51271	//       "location": "query",
51272	//       "type": "string"
51273	//     },
51274	//     "zone": {
51275	//       "description": "The name of the zone where the managed instance group is located.",
51276	//       "location": "path",
51277	//       "required": true,
51278	//       "type": "string"
51279	//     }
51280	//   },
51281	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
51282	//   "request": {
51283	//     "$ref": "InstanceGroupManagersDeleteInstancesRequest"
51284	//   },
51285	//   "response": {
51286	//     "$ref": "Operation"
51287	//   },
51288	//   "scopes": [
51289	//     "https://www.googleapis.com/auth/cloud-platform",
51290	//     "https://www.googleapis.com/auth/compute"
51291	//   ]
51292	// }
51293
51294}
51295
51296// method id "compute.instanceGroupManagers.get":
51297
51298type InstanceGroupManagersGetCall struct {
51299	s                    *Service
51300	project              string
51301	zone                 string
51302	instanceGroupManager string
51303	urlParams_           gensupport.URLParams
51304	ifNoneMatch_         string
51305	ctx_                 context.Context
51306	header_              http.Header
51307}
51308
51309// Get: Returns all of the details about the specified managed instance
51310// group. Gets a list of available managed instance groups by making a
51311// list() request.
51312func (r *InstanceGroupManagersService) Get(project string, zone string, instanceGroupManager string) *InstanceGroupManagersGetCall {
51313	c := &InstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51314	c.project = project
51315	c.zone = zone
51316	c.instanceGroupManager = instanceGroupManager
51317	return c
51318}
51319
51320// Fields allows partial responses to be retrieved. See
51321// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51322// for more information.
51323func (c *InstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *InstanceGroupManagersGetCall {
51324	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51325	return c
51326}
51327
51328// IfNoneMatch sets the optional parameter which makes the operation
51329// fail if the object's ETag matches the given value. This is useful for
51330// getting updates only after the object has changed since the last
51331// request. Use googleapi.IsNotModified to check whether the response
51332// error from Do is the result of In-None-Match.
51333func (c *InstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *InstanceGroupManagersGetCall {
51334	c.ifNoneMatch_ = entityTag
51335	return c
51336}
51337
51338// Context sets the context to be used in this call's Do method. Any
51339// pending HTTP request will be aborted if the provided context is
51340// canceled.
51341func (c *InstanceGroupManagersGetCall) Context(ctx context.Context) *InstanceGroupManagersGetCall {
51342	c.ctx_ = ctx
51343	return c
51344}
51345
51346// Header returns an http.Header that can be modified by the caller to
51347// add HTTP headers to the request.
51348func (c *InstanceGroupManagersGetCall) Header() http.Header {
51349	if c.header_ == nil {
51350		c.header_ = make(http.Header)
51351	}
51352	return c.header_
51353}
51354
51355func (c *InstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
51356	reqHeaders := make(http.Header)
51357	for k, v := range c.header_ {
51358		reqHeaders[k] = v
51359	}
51360	reqHeaders.Set("User-Agent", c.s.userAgent())
51361	if c.ifNoneMatch_ != "" {
51362		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51363	}
51364	var body io.Reader = nil
51365	c.urlParams_.Set("alt", alt)
51366	c.urlParams_.Set("prettyPrint", "false")
51367	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
51368	urls += "?" + c.urlParams_.Encode()
51369	req, err := http.NewRequest("GET", urls, body)
51370	if err != nil {
51371		return nil, err
51372	}
51373	req.Header = reqHeaders
51374	googleapi.Expand(req.URL, map[string]string{
51375		"project":              c.project,
51376		"zone":                 c.zone,
51377		"instanceGroupManager": c.instanceGroupManager,
51378	})
51379	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51380}
51381
51382// Do executes the "compute.instanceGroupManagers.get" call.
51383// Exactly one of *InstanceGroupManager or error will be non-nil. Any
51384// non-2xx status code is an error. Response headers are in either
51385// *InstanceGroupManager.ServerResponse.Header or (if a response was
51386// returned at all) in error.(*googleapi.Error).Header. Use
51387// googleapi.IsNotModified to check whether the returned error was
51388// because http.StatusNotModified was returned.
51389func (c *InstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
51390	gensupport.SetOptions(c.urlParams_, opts...)
51391	res, err := c.doRequest("json")
51392	if res != nil && res.StatusCode == http.StatusNotModified {
51393		if res.Body != nil {
51394			res.Body.Close()
51395		}
51396		return nil, &googleapi.Error{
51397			Code:   res.StatusCode,
51398			Header: res.Header,
51399		}
51400	}
51401	if err != nil {
51402		return nil, err
51403	}
51404	defer googleapi.CloseBody(res)
51405	if err := googleapi.CheckResponse(res); err != nil {
51406		return nil, err
51407	}
51408	ret := &InstanceGroupManager{
51409		ServerResponse: googleapi.ServerResponse{
51410			Header:         res.Header,
51411			HTTPStatusCode: res.StatusCode,
51412		},
51413	}
51414	target := &ret
51415	if err := gensupport.DecodeResponse(target, res); err != nil {
51416		return nil, err
51417	}
51418	return ret, nil
51419	// {
51420	//   "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.",
51421	//   "httpMethod": "GET",
51422	//   "id": "compute.instanceGroupManagers.get",
51423	//   "parameterOrder": [
51424	//     "project",
51425	//     "zone",
51426	//     "instanceGroupManager"
51427	//   ],
51428	//   "parameters": {
51429	//     "instanceGroupManager": {
51430	//       "description": "The name of the managed instance group.",
51431	//       "location": "path",
51432	//       "required": true,
51433	//       "type": "string"
51434	//     },
51435	//     "project": {
51436	//       "description": "Project ID for this request.",
51437	//       "location": "path",
51438	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51439	//       "required": true,
51440	//       "type": "string"
51441	//     },
51442	//     "zone": {
51443	//       "description": "The name of the zone where the managed instance group is located.",
51444	//       "location": "path",
51445	//       "required": true,
51446	//       "type": "string"
51447	//     }
51448	//   },
51449	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
51450	//   "response": {
51451	//     "$ref": "InstanceGroupManager"
51452	//   },
51453	//   "scopes": [
51454	//     "https://www.googleapis.com/auth/cloud-platform",
51455	//     "https://www.googleapis.com/auth/compute",
51456	//     "https://www.googleapis.com/auth/compute.readonly"
51457	//   ]
51458	// }
51459
51460}
51461
51462// method id "compute.instanceGroupManagers.insert":
51463
51464type InstanceGroupManagersInsertCall struct {
51465	s                    *Service
51466	project              string
51467	zone                 string
51468	instancegroupmanager *InstanceGroupManager
51469	urlParams_           gensupport.URLParams
51470	ctx_                 context.Context
51471	header_              http.Header
51472}
51473
51474// Insert: Creates a managed instance group using the information that
51475// you specify in the request. After the group is created, instances in
51476// the group are created using the specified instance template. This
51477// operation is marked as DONE when the group is created even if the
51478// instances in the group have not yet been created. You must separately
51479// verify the status of the individual instances with the
51480// listmanagedinstances method.
51481//
51482// A managed instance group can have up to 1000 VM instances per group.
51483// Please contact Cloud Support if you need an increase in this limit.
51484func (r *InstanceGroupManagersService) Insert(project string, zone string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersInsertCall {
51485	c := &InstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51486	c.project = project
51487	c.zone = zone
51488	c.instancegroupmanager = instancegroupmanager
51489	return c
51490}
51491
51492// RequestId sets the optional parameter "requestId": An optional
51493// request ID to identify requests. Specify a unique request ID so that
51494// if you must retry your request, the server will know to ignore the
51495// request if it has already been completed.
51496//
51497// For example, consider a situation where you make an initial request
51498// and the request times out. If you make the request again with the
51499// same request ID, the server can check if original operation with the
51500// same request ID was received, and if so, will ignore the second
51501// request. This prevents clients from accidentally creating duplicate
51502// commitments.
51503//
51504// The request ID must be a valid UUID with the exception that zero UUID
51505// is not supported (00000000-0000-0000-0000-000000000000).
51506func (c *InstanceGroupManagersInsertCall) RequestId(requestId string) *InstanceGroupManagersInsertCall {
51507	c.urlParams_.Set("requestId", requestId)
51508	return c
51509}
51510
51511// Fields allows partial responses to be retrieved. See
51512// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51513// for more information.
51514func (c *InstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *InstanceGroupManagersInsertCall {
51515	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51516	return c
51517}
51518
51519// Context sets the context to be used in this call's Do method. Any
51520// pending HTTP request will be aborted if the provided context is
51521// canceled.
51522func (c *InstanceGroupManagersInsertCall) Context(ctx context.Context) *InstanceGroupManagersInsertCall {
51523	c.ctx_ = ctx
51524	return c
51525}
51526
51527// Header returns an http.Header that can be modified by the caller to
51528// add HTTP headers to the request.
51529func (c *InstanceGroupManagersInsertCall) Header() http.Header {
51530	if c.header_ == nil {
51531		c.header_ = make(http.Header)
51532	}
51533	return c.header_
51534}
51535
51536func (c *InstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
51537	reqHeaders := make(http.Header)
51538	for k, v := range c.header_ {
51539		reqHeaders[k] = v
51540	}
51541	reqHeaders.Set("User-Agent", c.s.userAgent())
51542	var body io.Reader = nil
51543	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
51544	if err != nil {
51545		return nil, err
51546	}
51547	reqHeaders.Set("Content-Type", "application/json")
51548	c.urlParams_.Set("alt", alt)
51549	c.urlParams_.Set("prettyPrint", "false")
51550	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers")
51551	urls += "?" + c.urlParams_.Encode()
51552	req, err := http.NewRequest("POST", urls, body)
51553	if err != nil {
51554		return nil, err
51555	}
51556	req.Header = reqHeaders
51557	googleapi.Expand(req.URL, map[string]string{
51558		"project": c.project,
51559		"zone":    c.zone,
51560	})
51561	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51562}
51563
51564// Do executes the "compute.instanceGroupManagers.insert" call.
51565// Exactly one of *Operation or error will be non-nil. Any non-2xx
51566// status code is an error. Response headers are in either
51567// *Operation.ServerResponse.Header or (if a response was returned at
51568// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51569// to check whether the returned error was because
51570// http.StatusNotModified was returned.
51571func (c *InstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51572	gensupport.SetOptions(c.urlParams_, opts...)
51573	res, err := c.doRequest("json")
51574	if res != nil && res.StatusCode == http.StatusNotModified {
51575		if res.Body != nil {
51576			res.Body.Close()
51577		}
51578		return nil, &googleapi.Error{
51579			Code:   res.StatusCode,
51580			Header: res.Header,
51581		}
51582	}
51583	if err != nil {
51584		return nil, err
51585	}
51586	defer googleapi.CloseBody(res)
51587	if err := googleapi.CheckResponse(res); err != nil {
51588		return nil, err
51589	}
51590	ret := &Operation{
51591		ServerResponse: googleapi.ServerResponse{
51592			Header:         res.Header,
51593			HTTPStatusCode: res.StatusCode,
51594		},
51595	}
51596	target := &ret
51597	if err := gensupport.DecodeResponse(target, res); err != nil {
51598		return nil, err
51599	}
51600	return ret, nil
51601	// {
51602	//   "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.",
51603	//   "httpMethod": "POST",
51604	//   "id": "compute.instanceGroupManagers.insert",
51605	//   "parameterOrder": [
51606	//     "project",
51607	//     "zone"
51608	//   ],
51609	//   "parameters": {
51610	//     "project": {
51611	//       "description": "Project ID for this request.",
51612	//       "location": "path",
51613	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51614	//       "required": true,
51615	//       "type": "string"
51616	//     },
51617	//     "requestId": {
51618	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51619	//       "location": "query",
51620	//       "type": "string"
51621	//     },
51622	//     "zone": {
51623	//       "description": "The name of the zone where you want to create the managed instance group.",
51624	//       "location": "path",
51625	//       "required": true,
51626	//       "type": "string"
51627	//     }
51628	//   },
51629	//   "path": "{project}/zones/{zone}/instanceGroupManagers",
51630	//   "request": {
51631	//     "$ref": "InstanceGroupManager"
51632	//   },
51633	//   "response": {
51634	//     "$ref": "Operation"
51635	//   },
51636	//   "scopes": [
51637	//     "https://www.googleapis.com/auth/cloud-platform",
51638	//     "https://www.googleapis.com/auth/compute"
51639	//   ]
51640	// }
51641
51642}
51643
51644// method id "compute.instanceGroupManagers.list":
51645
51646type InstanceGroupManagersListCall struct {
51647	s            *Service
51648	project      string
51649	zone         string
51650	urlParams_   gensupport.URLParams
51651	ifNoneMatch_ string
51652	ctx_         context.Context
51653	header_      http.Header
51654}
51655
51656// List: Retrieves a list of managed instance groups that are contained
51657// within the specified project and zone.
51658func (r *InstanceGroupManagersService) List(project string, zone string) *InstanceGroupManagersListCall {
51659	c := &InstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51660	c.project = project
51661	c.zone = zone
51662	return c
51663}
51664
51665// Filter sets the optional parameter "filter": A filter expression that
51666// filters resources listed in the response. The expression must specify
51667// the field name, a comparison operator, and the value that you want to
51668// use for filtering. The value must be a string, a number, or a
51669// boolean. The comparison operator must be either =, !=, >, or <.
51670//
51671// For example, if you are filtering Compute Engine instances, you can
51672// exclude instances named example-instance by specifying name !=
51673// example-instance.
51674//
51675// You can also filter nested fields. For example, you could specify
51676// scheduling.automaticRestart = false to include instances only if they
51677// are not scheduled for automatic restarts. You can use filtering on
51678// nested fields to filter based on resource labels.
51679//
51680// To filter on multiple expressions, provide each separate expression
51681// within parentheses. For example, (scheduling.automaticRestart = true)
51682// (cpuPlatform = "Intel Skylake"). By default, each expression is an
51683// AND expression. However, you can include AND and OR expressions
51684// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
51685// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
51686// true).
51687func (c *InstanceGroupManagersListCall) Filter(filter string) *InstanceGroupManagersListCall {
51688	c.urlParams_.Set("filter", filter)
51689	return c
51690}
51691
51692// MaxResults sets the optional parameter "maxResults": The maximum
51693// number of results per page that should be returned. If the number of
51694// available results is larger than maxResults, Compute Engine returns a
51695// nextPageToken that can be used to get the next page of results in
51696// subsequent list requests. Acceptable values are 0 to 500, inclusive.
51697// (Default: 500)
51698func (c *InstanceGroupManagersListCall) MaxResults(maxResults int64) *InstanceGroupManagersListCall {
51699	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
51700	return c
51701}
51702
51703// OrderBy sets the optional parameter "orderBy": Sorts list results by
51704// a certain order. By default, results are returned in alphanumerical
51705// order based on the resource name.
51706//
51707// You can also sort results in descending order based on the creation
51708// timestamp using orderBy="creationTimestamp desc". This sorts results
51709// based on the creationTimestamp field in reverse chronological order
51710// (newest result first). Use this to sort resources like operations so
51711// that the newest operation is returned first.
51712//
51713// Currently, only sorting by name or creationTimestamp desc is
51714// supported.
51715func (c *InstanceGroupManagersListCall) OrderBy(orderBy string) *InstanceGroupManagersListCall {
51716	c.urlParams_.Set("orderBy", orderBy)
51717	return c
51718}
51719
51720// PageToken sets the optional parameter "pageToken": Specifies a page
51721// token to use. Set pageToken to the nextPageToken returned by a
51722// previous list request to get the next page of results.
51723func (c *InstanceGroupManagersListCall) PageToken(pageToken string) *InstanceGroupManagersListCall {
51724	c.urlParams_.Set("pageToken", pageToken)
51725	return c
51726}
51727
51728// Fields allows partial responses to be retrieved. See
51729// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51730// for more information.
51731func (c *InstanceGroupManagersListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListCall {
51732	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51733	return c
51734}
51735
51736// IfNoneMatch sets the optional parameter which makes the operation
51737// fail if the object's ETag matches the given value. This is useful for
51738// getting updates only after the object has changed since the last
51739// request. Use googleapi.IsNotModified to check whether the response
51740// error from Do is the result of In-None-Match.
51741func (c *InstanceGroupManagersListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListCall {
51742	c.ifNoneMatch_ = entityTag
51743	return c
51744}
51745
51746// Context sets the context to be used in this call's Do method. Any
51747// pending HTTP request will be aborted if the provided context is
51748// canceled.
51749func (c *InstanceGroupManagersListCall) Context(ctx context.Context) *InstanceGroupManagersListCall {
51750	c.ctx_ = ctx
51751	return c
51752}
51753
51754// Header returns an http.Header that can be modified by the caller to
51755// add HTTP headers to the request.
51756func (c *InstanceGroupManagersListCall) Header() http.Header {
51757	if c.header_ == nil {
51758		c.header_ = make(http.Header)
51759	}
51760	return c.header_
51761}
51762
51763func (c *InstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
51764	reqHeaders := make(http.Header)
51765	for k, v := range c.header_ {
51766		reqHeaders[k] = v
51767	}
51768	reqHeaders.Set("User-Agent", c.s.userAgent())
51769	if c.ifNoneMatch_ != "" {
51770		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51771	}
51772	var body io.Reader = nil
51773	c.urlParams_.Set("alt", alt)
51774	c.urlParams_.Set("prettyPrint", "false")
51775	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers")
51776	urls += "?" + c.urlParams_.Encode()
51777	req, err := http.NewRequest("GET", urls, body)
51778	if err != nil {
51779		return nil, err
51780	}
51781	req.Header = reqHeaders
51782	googleapi.Expand(req.URL, map[string]string{
51783		"project": c.project,
51784		"zone":    c.zone,
51785	})
51786	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51787}
51788
51789// Do executes the "compute.instanceGroupManagers.list" call.
51790// Exactly one of *InstanceGroupManagerList or error will be non-nil.
51791// Any non-2xx status code is an error. Response headers are in either
51792// *InstanceGroupManagerList.ServerResponse.Header or (if a response was
51793// returned at all) in error.(*googleapi.Error).Header. Use
51794// googleapi.IsNotModified to check whether the returned error was
51795// because http.StatusNotModified was returned.
51796func (c *InstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerList, error) {
51797	gensupport.SetOptions(c.urlParams_, opts...)
51798	res, err := c.doRequest("json")
51799	if res != nil && res.StatusCode == http.StatusNotModified {
51800		if res.Body != nil {
51801			res.Body.Close()
51802		}
51803		return nil, &googleapi.Error{
51804			Code:   res.StatusCode,
51805			Header: res.Header,
51806		}
51807	}
51808	if err != nil {
51809		return nil, err
51810	}
51811	defer googleapi.CloseBody(res)
51812	if err := googleapi.CheckResponse(res); err != nil {
51813		return nil, err
51814	}
51815	ret := &InstanceGroupManagerList{
51816		ServerResponse: googleapi.ServerResponse{
51817			Header:         res.Header,
51818			HTTPStatusCode: res.StatusCode,
51819		},
51820	}
51821	target := &ret
51822	if err := gensupport.DecodeResponse(target, res); err != nil {
51823		return nil, err
51824	}
51825	return ret, nil
51826	// {
51827	//   "description": "Retrieves a list of managed instance groups that are contained within the specified project and zone.",
51828	//   "httpMethod": "GET",
51829	//   "id": "compute.instanceGroupManagers.list",
51830	//   "parameterOrder": [
51831	//     "project",
51832	//     "zone"
51833	//   ],
51834	//   "parameters": {
51835	//     "filter": {
51836	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
51837	//       "location": "query",
51838	//       "type": "string"
51839	//     },
51840	//     "maxResults": {
51841	//       "default": "500",
51842	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
51843	//       "format": "uint32",
51844	//       "location": "query",
51845	//       "minimum": "0",
51846	//       "type": "integer"
51847	//     },
51848	//     "orderBy": {
51849	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
51850	//       "location": "query",
51851	//       "type": "string"
51852	//     },
51853	//     "pageToken": {
51854	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
51855	//       "location": "query",
51856	//       "type": "string"
51857	//     },
51858	//     "project": {
51859	//       "description": "Project ID for this request.",
51860	//       "location": "path",
51861	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51862	//       "required": true,
51863	//       "type": "string"
51864	//     },
51865	//     "zone": {
51866	//       "description": "The name of the zone where the managed instance group is located.",
51867	//       "location": "path",
51868	//       "required": true,
51869	//       "type": "string"
51870	//     }
51871	//   },
51872	//   "path": "{project}/zones/{zone}/instanceGroupManagers",
51873	//   "response": {
51874	//     "$ref": "InstanceGroupManagerList"
51875	//   },
51876	//   "scopes": [
51877	//     "https://www.googleapis.com/auth/cloud-platform",
51878	//     "https://www.googleapis.com/auth/compute",
51879	//     "https://www.googleapis.com/auth/compute.readonly"
51880	//   ]
51881	// }
51882
51883}
51884
51885// Pages invokes f for each page of results.
51886// A non-nil error returned from f will halt the iteration.
51887// The provided context supersedes any context provided to the Context method.
51888func (c *InstanceGroupManagersListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerList) error) error {
51889	c.ctx_ = ctx
51890	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
51891	for {
51892		x, err := c.Do()
51893		if err != nil {
51894			return err
51895		}
51896		if err := f(x); err != nil {
51897			return err
51898		}
51899		if x.NextPageToken == "" {
51900			return nil
51901		}
51902		c.PageToken(x.NextPageToken)
51903	}
51904}
51905
51906// method id "compute.instanceGroupManagers.listManagedInstances":
51907
51908type InstanceGroupManagersListManagedInstancesCall struct {
51909	s                    *Service
51910	project              string
51911	zone                 string
51912	instanceGroupManager string
51913	urlParams_           gensupport.URLParams
51914	ctx_                 context.Context
51915	header_              http.Header
51916}
51917
51918// ListManagedInstances: Lists all of the instances in the managed
51919// instance group. Each instance in the list has a currentAction, which
51920// indicates the action that the managed instance group is performing on
51921// the instance. For example, if the group is still creating an
51922// instance, the currentAction is CREATING. If a previous action failed,
51923// the list displays the errors for that failed action.
51924func (r *InstanceGroupManagersService) ListManagedInstances(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListManagedInstancesCall {
51925	c := &InstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51926	c.project = project
51927	c.zone = zone
51928	c.instanceGroupManager = instanceGroupManager
51929	return c
51930}
51931
51932// Filter sets the optional parameter "filter": A filter expression that
51933// filters resources listed in the response. The expression must specify
51934// the field name, a comparison operator, and the value that you want to
51935// use for filtering. The value must be a string, a number, or a
51936// boolean. The comparison operator must be either =, !=, >, or <.
51937//
51938// For example, if you are filtering Compute Engine instances, you can
51939// exclude instances named example-instance by specifying name !=
51940// example-instance.
51941//
51942// You can also filter nested fields. For example, you could specify
51943// scheduling.automaticRestart = false to include instances only if they
51944// are not scheduled for automatic restarts. You can use filtering on
51945// nested fields to filter based on resource labels.
51946//
51947// To filter on multiple expressions, provide each separate expression
51948// within parentheses. For example, (scheduling.automaticRestart = true)
51949// (cpuPlatform = "Intel Skylake"). By default, each expression is an
51950// AND expression. However, you can include AND and OR expressions
51951// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
51952// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
51953// true).
51954func (c *InstanceGroupManagersListManagedInstancesCall) Filter(filter string) *InstanceGroupManagersListManagedInstancesCall {
51955	c.urlParams_.Set("filter", filter)
51956	return c
51957}
51958
51959// MaxResults sets the optional parameter "maxResults": The maximum
51960// number of results per page that should be returned. If the number of
51961// available results is larger than maxResults, Compute Engine returns a
51962// nextPageToken that can be used to get the next page of results in
51963// subsequent list requests. Acceptable values are 0 to 500, inclusive.
51964// (Default: 500)
51965func (c *InstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *InstanceGroupManagersListManagedInstancesCall {
51966	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
51967	return c
51968}
51969
51970// OrderBy sets the optional parameter "order_by": Sorts list results by
51971// a certain order. By default, results are returned in alphanumerical
51972// order based on the resource name.
51973//
51974// You can also sort results in descending order based on the creation
51975// timestamp using orderBy="creationTimestamp desc". This sorts results
51976// based on the creationTimestamp field in reverse chronological order
51977// (newest result first). Use this to sort resources like operations so
51978// that the newest operation is returned first.
51979//
51980// Currently, only sorting by name or creationTimestamp desc is
51981// supported.
51982func (c *InstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *InstanceGroupManagersListManagedInstancesCall {
51983	c.urlParams_.Set("order_by", orderBy)
51984	return c
51985}
51986
51987// PageToken sets the optional parameter "pageToken": Specifies a page
51988// token to use. Set pageToken to the nextPageToken returned by a
51989// previous list request to get the next page of results.
51990func (c *InstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *InstanceGroupManagersListManagedInstancesCall {
51991	c.urlParams_.Set("pageToken", pageToken)
51992	return c
51993}
51994
51995// Fields allows partial responses to be retrieved. See
51996// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51997// for more information.
51998func (c *InstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListManagedInstancesCall {
51999	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52000	return c
52001}
52002
52003// Context sets the context to be used in this call's Do method. Any
52004// pending HTTP request will be aborted if the provided context is
52005// canceled.
52006func (c *InstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *InstanceGroupManagersListManagedInstancesCall {
52007	c.ctx_ = ctx
52008	return c
52009}
52010
52011// Header returns an http.Header that can be modified by the caller to
52012// add HTTP headers to the request.
52013func (c *InstanceGroupManagersListManagedInstancesCall) Header() http.Header {
52014	if c.header_ == nil {
52015		c.header_ = make(http.Header)
52016	}
52017	return c.header_
52018}
52019
52020func (c *InstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
52021	reqHeaders := make(http.Header)
52022	for k, v := range c.header_ {
52023		reqHeaders[k] = v
52024	}
52025	reqHeaders.Set("User-Agent", c.s.userAgent())
52026	var body io.Reader = nil
52027	c.urlParams_.Set("alt", alt)
52028	c.urlParams_.Set("prettyPrint", "false")
52029	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
52030	urls += "?" + c.urlParams_.Encode()
52031	req, err := http.NewRequest("POST", urls, body)
52032	if err != nil {
52033		return nil, err
52034	}
52035	req.Header = reqHeaders
52036	googleapi.Expand(req.URL, map[string]string{
52037		"project":              c.project,
52038		"zone":                 c.zone,
52039		"instanceGroupManager": c.instanceGroupManager,
52040	})
52041	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52042}
52043
52044// Do executes the "compute.instanceGroupManagers.listManagedInstances" call.
52045// Exactly one of *InstanceGroupManagersListManagedInstancesResponse or
52046// error will be non-nil. Any non-2xx status code is an error. Response
52047// headers are in either
52048// *InstanceGroupManagersListManagedInstancesResponse.ServerResponse.Head
52049// er or (if a response was returned at all) in
52050// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
52051// whether the returned error was because http.StatusNotModified was
52052// returned.
52053func (c *InstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListManagedInstancesResponse, error) {
52054	gensupport.SetOptions(c.urlParams_, opts...)
52055	res, err := c.doRequest("json")
52056	if res != nil && res.StatusCode == http.StatusNotModified {
52057		if res.Body != nil {
52058			res.Body.Close()
52059		}
52060		return nil, &googleapi.Error{
52061			Code:   res.StatusCode,
52062			Header: res.Header,
52063		}
52064	}
52065	if err != nil {
52066		return nil, err
52067	}
52068	defer googleapi.CloseBody(res)
52069	if err := googleapi.CheckResponse(res); err != nil {
52070		return nil, err
52071	}
52072	ret := &InstanceGroupManagersListManagedInstancesResponse{
52073		ServerResponse: googleapi.ServerResponse{
52074			Header:         res.Header,
52075			HTTPStatusCode: res.StatusCode,
52076		},
52077	}
52078	target := &ret
52079	if err := gensupport.DecodeResponse(target, res); err != nil {
52080		return nil, err
52081	}
52082	return ret, nil
52083	// {
52084	//   "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.",
52085	//   "httpMethod": "POST",
52086	//   "id": "compute.instanceGroupManagers.listManagedInstances",
52087	//   "parameterOrder": [
52088	//     "project",
52089	//     "zone",
52090	//     "instanceGroupManager"
52091	//   ],
52092	//   "parameters": {
52093	//     "filter": {
52094	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
52095	//       "location": "query",
52096	//       "type": "string"
52097	//     },
52098	//     "instanceGroupManager": {
52099	//       "description": "The name of the managed instance group.",
52100	//       "location": "path",
52101	//       "required": true,
52102	//       "type": "string"
52103	//     },
52104	//     "maxResults": {
52105	//       "default": "500",
52106	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
52107	//       "format": "uint32",
52108	//       "location": "query",
52109	//       "minimum": "0",
52110	//       "type": "integer"
52111	//     },
52112	//     "order_by": {
52113	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
52114	//       "location": "query",
52115	//       "type": "string"
52116	//     },
52117	//     "pageToken": {
52118	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
52119	//       "location": "query",
52120	//       "type": "string"
52121	//     },
52122	//     "project": {
52123	//       "description": "Project ID for this request.",
52124	//       "location": "path",
52125	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52126	//       "required": true,
52127	//       "type": "string"
52128	//     },
52129	//     "zone": {
52130	//       "description": "The name of the zone where the managed instance group is located.",
52131	//       "location": "path",
52132	//       "required": true,
52133	//       "type": "string"
52134	//     }
52135	//   },
52136	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
52137	//   "response": {
52138	//     "$ref": "InstanceGroupManagersListManagedInstancesResponse"
52139	//   },
52140	//   "scopes": [
52141	//     "https://www.googleapis.com/auth/cloud-platform",
52142	//     "https://www.googleapis.com/auth/compute",
52143	//     "https://www.googleapis.com/auth/compute.readonly"
52144	//   ]
52145	// }
52146
52147}
52148
52149// method id "compute.instanceGroupManagers.patch":
52150
52151type InstanceGroupManagersPatchCall struct {
52152	s                    *Service
52153	project              string
52154	zone                 string
52155	instanceGroupManager string
52156	instancegroupmanager *InstanceGroupManager
52157	urlParams_           gensupport.URLParams
52158	ctx_                 context.Context
52159	header_              http.Header
52160}
52161
52162// Patch: Updates a managed instance group using the information that
52163// you specify in the request. This operation is marked as DONE when the
52164// group is patched even if the instances in the group are still in the
52165// process of being patched. You must separately verify the status of
52166// the individual instances with the listManagedInstances method. This
52167// method supports PATCH semantics and uses the JSON merge patch format
52168// and processing rules.
52169func (r *InstanceGroupManagersService) Patch(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersPatchCall {
52170	c := &InstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52171	c.project = project
52172	c.zone = zone
52173	c.instanceGroupManager = instanceGroupManager
52174	c.instancegroupmanager = instancegroupmanager
52175	return c
52176}
52177
52178// RequestId sets the optional parameter "requestId": An optional
52179// request ID to identify requests. Specify a unique request ID so that
52180// if you must retry your request, the server will know to ignore the
52181// request if it has already been completed.
52182//
52183// For example, consider a situation where you make an initial request
52184// and the request times out. If you make the request again with the
52185// same request ID, the server can check if original operation with the
52186// same request ID was received, and if so, will ignore the second
52187// request. This prevents clients from accidentally creating duplicate
52188// commitments.
52189//
52190// The request ID must be a valid UUID with the exception that zero UUID
52191// is not supported (00000000-0000-0000-0000-000000000000).
52192func (c *InstanceGroupManagersPatchCall) RequestId(requestId string) *InstanceGroupManagersPatchCall {
52193	c.urlParams_.Set("requestId", requestId)
52194	return c
52195}
52196
52197// Fields allows partial responses to be retrieved. See
52198// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52199// for more information.
52200func (c *InstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchCall {
52201	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52202	return c
52203}
52204
52205// Context sets the context to be used in this call's Do method. Any
52206// pending HTTP request will be aborted if the provided context is
52207// canceled.
52208func (c *InstanceGroupManagersPatchCall) Context(ctx context.Context) *InstanceGroupManagersPatchCall {
52209	c.ctx_ = ctx
52210	return c
52211}
52212
52213// Header returns an http.Header that can be modified by the caller to
52214// add HTTP headers to the request.
52215func (c *InstanceGroupManagersPatchCall) Header() http.Header {
52216	if c.header_ == nil {
52217		c.header_ = make(http.Header)
52218	}
52219	return c.header_
52220}
52221
52222func (c *InstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
52223	reqHeaders := make(http.Header)
52224	for k, v := range c.header_ {
52225		reqHeaders[k] = v
52226	}
52227	reqHeaders.Set("User-Agent", c.s.userAgent())
52228	var body io.Reader = nil
52229	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
52230	if err != nil {
52231		return nil, err
52232	}
52233	reqHeaders.Set("Content-Type", "application/json")
52234	c.urlParams_.Set("alt", alt)
52235	c.urlParams_.Set("prettyPrint", "false")
52236	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
52237	urls += "?" + c.urlParams_.Encode()
52238	req, err := http.NewRequest("PATCH", urls, body)
52239	if err != nil {
52240		return nil, err
52241	}
52242	req.Header = reqHeaders
52243	googleapi.Expand(req.URL, map[string]string{
52244		"project":              c.project,
52245		"zone":                 c.zone,
52246		"instanceGroupManager": c.instanceGroupManager,
52247	})
52248	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52249}
52250
52251// Do executes the "compute.instanceGroupManagers.patch" call.
52252// Exactly one of *Operation or error will be non-nil. Any non-2xx
52253// status code is an error. Response headers are in either
52254// *Operation.ServerResponse.Header or (if a response was returned at
52255// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52256// to check whether the returned error was because
52257// http.StatusNotModified was returned.
52258func (c *InstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52259	gensupport.SetOptions(c.urlParams_, opts...)
52260	res, err := c.doRequest("json")
52261	if res != nil && res.StatusCode == http.StatusNotModified {
52262		if res.Body != nil {
52263			res.Body.Close()
52264		}
52265		return nil, &googleapi.Error{
52266			Code:   res.StatusCode,
52267			Header: res.Header,
52268		}
52269	}
52270	if err != nil {
52271		return nil, err
52272	}
52273	defer googleapi.CloseBody(res)
52274	if err := googleapi.CheckResponse(res); err != nil {
52275		return nil, err
52276	}
52277	ret := &Operation{
52278		ServerResponse: googleapi.ServerResponse{
52279			Header:         res.Header,
52280			HTTPStatusCode: res.StatusCode,
52281		},
52282	}
52283	target := &ret
52284	if err := gensupport.DecodeResponse(target, res); err != nil {
52285		return nil, err
52286	}
52287	return ret, nil
52288	// {
52289	//   "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.",
52290	//   "httpMethod": "PATCH",
52291	//   "id": "compute.instanceGroupManagers.patch",
52292	//   "parameterOrder": [
52293	//     "project",
52294	//     "zone",
52295	//     "instanceGroupManager"
52296	//   ],
52297	//   "parameters": {
52298	//     "instanceGroupManager": {
52299	//       "description": "The name of the instance group manager.",
52300	//       "location": "path",
52301	//       "required": true,
52302	//       "type": "string"
52303	//     },
52304	//     "project": {
52305	//       "description": "Project ID for this request.",
52306	//       "location": "path",
52307	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52308	//       "required": true,
52309	//       "type": "string"
52310	//     },
52311	//     "requestId": {
52312	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52313	//       "location": "query",
52314	//       "type": "string"
52315	//     },
52316	//     "zone": {
52317	//       "description": "The name of the zone where you want to create the managed instance group.",
52318	//       "location": "path",
52319	//       "required": true,
52320	//       "type": "string"
52321	//     }
52322	//   },
52323	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
52324	//   "request": {
52325	//     "$ref": "InstanceGroupManager"
52326	//   },
52327	//   "response": {
52328	//     "$ref": "Operation"
52329	//   },
52330	//   "scopes": [
52331	//     "https://www.googleapis.com/auth/cloud-platform",
52332	//     "https://www.googleapis.com/auth/compute"
52333	//   ]
52334	// }
52335
52336}
52337
52338// method id "compute.instanceGroupManagers.recreateInstances":
52339
52340type InstanceGroupManagersRecreateInstancesCall struct {
52341	s                                             *Service
52342	project                                       string
52343	zone                                          string
52344	instanceGroupManager                          string
52345	instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest
52346	urlParams_                                    gensupport.URLParams
52347	ctx_                                          context.Context
52348	header_                                       http.Header
52349}
52350
52351// RecreateInstances: Flags the specified instances in the managed
52352// instance group to be immediately recreated. The instances are deleted
52353// and recreated using the current instance template for the managed
52354// instance group. This operation is marked as DONE when the flag is set
52355// even if the instances have not yet been recreated. You must
52356// separately verify the status of the recreating action with the
52357// listmanagedinstances method.
52358//
52359// If the group is part of a backend service that has enabled connection
52360// draining, it can take up to 60 seconds after the connection draining
52361// duration has elapsed before the VM instance is removed or
52362// deleted.
52363//
52364// You can specify a maximum of 1000 instances with this method per
52365// request.
52366func (r *InstanceGroupManagersService) RecreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest) *InstanceGroupManagersRecreateInstancesCall {
52367	c := &InstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52368	c.project = project
52369	c.zone = zone
52370	c.instanceGroupManager = instanceGroupManager
52371	c.instancegroupmanagersrecreateinstancesrequest = instancegroupmanagersrecreateinstancesrequest
52372	return c
52373}
52374
52375// RequestId sets the optional parameter "requestId": An optional
52376// request ID to identify requests. Specify a unique request ID so that
52377// if you must retry your request, the server will know to ignore the
52378// request if it has already been completed.
52379//
52380// For example, consider a situation where you make an initial request
52381// and the request times out. If you make the request again with the
52382// same request ID, the server can check if original operation with the
52383// same request ID was received, and if so, will ignore the second
52384// request. This prevents clients from accidentally creating duplicate
52385// commitments.
52386//
52387// The request ID must be a valid UUID with the exception that zero UUID
52388// is not supported (00000000-0000-0000-0000-000000000000).
52389func (c *InstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersRecreateInstancesCall {
52390	c.urlParams_.Set("requestId", requestId)
52391	return c
52392}
52393
52394// Fields allows partial responses to be retrieved. See
52395// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52396// for more information.
52397func (c *InstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersRecreateInstancesCall {
52398	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52399	return c
52400}
52401
52402// Context sets the context to be used in this call's Do method. Any
52403// pending HTTP request will be aborted if the provided context is
52404// canceled.
52405func (c *InstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersRecreateInstancesCall {
52406	c.ctx_ = ctx
52407	return c
52408}
52409
52410// Header returns an http.Header that can be modified by the caller to
52411// add HTTP headers to the request.
52412func (c *InstanceGroupManagersRecreateInstancesCall) Header() http.Header {
52413	if c.header_ == nil {
52414		c.header_ = make(http.Header)
52415	}
52416	return c.header_
52417}
52418
52419func (c *InstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
52420	reqHeaders := make(http.Header)
52421	for k, v := range c.header_ {
52422		reqHeaders[k] = v
52423	}
52424	reqHeaders.Set("User-Agent", c.s.userAgent())
52425	var body io.Reader = nil
52426	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersrecreateinstancesrequest)
52427	if err != nil {
52428		return nil, err
52429	}
52430	reqHeaders.Set("Content-Type", "application/json")
52431	c.urlParams_.Set("alt", alt)
52432	c.urlParams_.Set("prettyPrint", "false")
52433	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
52434	urls += "?" + c.urlParams_.Encode()
52435	req, err := http.NewRequest("POST", urls, body)
52436	if err != nil {
52437		return nil, err
52438	}
52439	req.Header = reqHeaders
52440	googleapi.Expand(req.URL, map[string]string{
52441		"project":              c.project,
52442		"zone":                 c.zone,
52443		"instanceGroupManager": c.instanceGroupManager,
52444	})
52445	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52446}
52447
52448// Do executes the "compute.instanceGroupManagers.recreateInstances" call.
52449// Exactly one of *Operation or error will be non-nil. Any non-2xx
52450// status code is an error. Response headers are in either
52451// *Operation.ServerResponse.Header or (if a response was returned at
52452// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52453// to check whether the returned error was because
52454// http.StatusNotModified was returned.
52455func (c *InstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52456	gensupport.SetOptions(c.urlParams_, opts...)
52457	res, err := c.doRequest("json")
52458	if res != nil && res.StatusCode == http.StatusNotModified {
52459		if res.Body != nil {
52460			res.Body.Close()
52461		}
52462		return nil, &googleapi.Error{
52463			Code:   res.StatusCode,
52464			Header: res.Header,
52465		}
52466	}
52467	if err != nil {
52468		return nil, err
52469	}
52470	defer googleapi.CloseBody(res)
52471	if err := googleapi.CheckResponse(res); err != nil {
52472		return nil, err
52473	}
52474	ret := &Operation{
52475		ServerResponse: googleapi.ServerResponse{
52476			Header:         res.Header,
52477			HTTPStatusCode: res.StatusCode,
52478		},
52479	}
52480	target := &ret
52481	if err := gensupport.DecodeResponse(target, res); err != nil {
52482		return nil, err
52483	}
52484	return ret, nil
52485	// {
52486	//   "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.",
52487	//   "httpMethod": "POST",
52488	//   "id": "compute.instanceGroupManagers.recreateInstances",
52489	//   "parameterOrder": [
52490	//     "project",
52491	//     "zone",
52492	//     "instanceGroupManager"
52493	//   ],
52494	//   "parameters": {
52495	//     "instanceGroupManager": {
52496	//       "description": "The name of the managed instance group.",
52497	//       "location": "path",
52498	//       "required": true,
52499	//       "type": "string"
52500	//     },
52501	//     "project": {
52502	//       "description": "Project ID for this request.",
52503	//       "location": "path",
52504	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52505	//       "required": true,
52506	//       "type": "string"
52507	//     },
52508	//     "requestId": {
52509	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52510	//       "location": "query",
52511	//       "type": "string"
52512	//     },
52513	//     "zone": {
52514	//       "description": "The name of the zone where the managed instance group is located.",
52515	//       "location": "path",
52516	//       "required": true,
52517	//       "type": "string"
52518	//     }
52519	//   },
52520	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
52521	//   "request": {
52522	//     "$ref": "InstanceGroupManagersRecreateInstancesRequest"
52523	//   },
52524	//   "response": {
52525	//     "$ref": "Operation"
52526	//   },
52527	//   "scopes": [
52528	//     "https://www.googleapis.com/auth/cloud-platform",
52529	//     "https://www.googleapis.com/auth/compute"
52530	//   ]
52531	// }
52532
52533}
52534
52535// method id "compute.instanceGroupManagers.resize":
52536
52537type InstanceGroupManagersResizeCall struct {
52538	s                    *Service
52539	project              string
52540	zone                 string
52541	instanceGroupManager string
52542	urlParams_           gensupport.URLParams
52543	ctx_                 context.Context
52544	header_              http.Header
52545}
52546
52547// Resize: Resizes the managed instance group. If you increase the size,
52548// the group creates new instances using the current instance template.
52549// If you decrease the size, the group deletes instances. The resize
52550// operation is marked DONE when the resize actions are scheduled even
52551// if the group has not yet added or deleted any instances. You must
52552// separately verify the status of the creating or deleting actions with
52553// the listmanagedinstances method.
52554//
52555// When resizing down, the instance group arbitrarily chooses the order
52556// in which VMs are deleted. The group takes into account some VM
52557// attributes when making the selection including:
52558//
52559// + The status of the VM instance. + The health of the VM instance. +
52560// The instance template version the VM is based on. + For regional
52561// managed instance groups, the location of the VM instance.
52562//
52563// This list is subject to change.
52564//
52565// If the group is part of a backend service that has enabled connection
52566// draining, it can take up to 60 seconds after the connection draining
52567// duration has elapsed before the VM instance is removed or deleted.
52568func (r *InstanceGroupManagersService) Resize(project string, zone string, instanceGroupManager string, size int64) *InstanceGroupManagersResizeCall {
52569	c := &InstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52570	c.project = project
52571	c.zone = zone
52572	c.instanceGroupManager = instanceGroupManager
52573	c.urlParams_.Set("size", fmt.Sprint(size))
52574	return c
52575}
52576
52577// RequestId sets the optional parameter "requestId": An optional
52578// request ID to identify requests. Specify a unique request ID so that
52579// if you must retry your request, the server will know to ignore the
52580// request if it has already been completed.
52581//
52582// For example, consider a situation where you make an initial request
52583// and the request times out. If you make the request again with the
52584// same request ID, the server can check if original operation with the
52585// same request ID was received, and if so, will ignore the second
52586// request. This prevents clients from accidentally creating duplicate
52587// commitments.
52588//
52589// The request ID must be a valid UUID with the exception that zero UUID
52590// is not supported (00000000-0000-0000-0000-000000000000).
52591func (c *InstanceGroupManagersResizeCall) RequestId(requestId string) *InstanceGroupManagersResizeCall {
52592	c.urlParams_.Set("requestId", requestId)
52593	return c
52594}
52595
52596// Fields allows partial responses to be retrieved. See
52597// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52598// for more information.
52599func (c *InstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeCall {
52600	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52601	return c
52602}
52603
52604// Context sets the context to be used in this call's Do method. Any
52605// pending HTTP request will be aborted if the provided context is
52606// canceled.
52607func (c *InstanceGroupManagersResizeCall) Context(ctx context.Context) *InstanceGroupManagersResizeCall {
52608	c.ctx_ = ctx
52609	return c
52610}
52611
52612// Header returns an http.Header that can be modified by the caller to
52613// add HTTP headers to the request.
52614func (c *InstanceGroupManagersResizeCall) Header() http.Header {
52615	if c.header_ == nil {
52616		c.header_ = make(http.Header)
52617	}
52618	return c.header_
52619}
52620
52621func (c *InstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
52622	reqHeaders := make(http.Header)
52623	for k, v := range c.header_ {
52624		reqHeaders[k] = v
52625	}
52626	reqHeaders.Set("User-Agent", c.s.userAgent())
52627	var body io.Reader = nil
52628	c.urlParams_.Set("alt", alt)
52629	c.urlParams_.Set("prettyPrint", "false")
52630	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize")
52631	urls += "?" + c.urlParams_.Encode()
52632	req, err := http.NewRequest("POST", urls, body)
52633	if err != nil {
52634		return nil, err
52635	}
52636	req.Header = reqHeaders
52637	googleapi.Expand(req.URL, map[string]string{
52638		"project":              c.project,
52639		"zone":                 c.zone,
52640		"instanceGroupManager": c.instanceGroupManager,
52641	})
52642	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52643}
52644
52645// Do executes the "compute.instanceGroupManagers.resize" call.
52646// Exactly one of *Operation or error will be non-nil. Any non-2xx
52647// status code is an error. Response headers are in either
52648// *Operation.ServerResponse.Header or (if a response was returned at
52649// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52650// to check whether the returned error was because
52651// http.StatusNotModified was returned.
52652func (c *InstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52653	gensupport.SetOptions(c.urlParams_, opts...)
52654	res, err := c.doRequest("json")
52655	if res != nil && res.StatusCode == http.StatusNotModified {
52656		if res.Body != nil {
52657			res.Body.Close()
52658		}
52659		return nil, &googleapi.Error{
52660			Code:   res.StatusCode,
52661			Header: res.Header,
52662		}
52663	}
52664	if err != nil {
52665		return nil, err
52666	}
52667	defer googleapi.CloseBody(res)
52668	if err := googleapi.CheckResponse(res); err != nil {
52669		return nil, err
52670	}
52671	ret := &Operation{
52672		ServerResponse: googleapi.ServerResponse{
52673			Header:         res.Header,
52674			HTTPStatusCode: res.StatusCode,
52675		},
52676	}
52677	target := &ret
52678	if err := gensupport.DecodeResponse(target, res); err != nil {
52679		return nil, err
52680	}
52681	return ret, nil
52682	// {
52683	//   "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.",
52684	//   "httpMethod": "POST",
52685	//   "id": "compute.instanceGroupManagers.resize",
52686	//   "parameterOrder": [
52687	//     "project",
52688	//     "zone",
52689	//     "instanceGroupManager",
52690	//     "size"
52691	//   ],
52692	//   "parameters": {
52693	//     "instanceGroupManager": {
52694	//       "description": "The name of the managed instance group.",
52695	//       "location": "path",
52696	//       "required": true,
52697	//       "type": "string"
52698	//     },
52699	//     "project": {
52700	//       "description": "Project ID for this request.",
52701	//       "location": "path",
52702	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52703	//       "required": true,
52704	//       "type": "string"
52705	//     },
52706	//     "requestId": {
52707	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52708	//       "location": "query",
52709	//       "type": "string"
52710	//     },
52711	//     "size": {
52712	//       "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.",
52713	//       "format": "int32",
52714	//       "location": "query",
52715	//       "required": true,
52716	//       "type": "integer"
52717	//     },
52718	//     "zone": {
52719	//       "description": "The name of the zone where the managed instance group is located.",
52720	//       "location": "path",
52721	//       "required": true,
52722	//       "type": "string"
52723	//     }
52724	//   },
52725	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize",
52726	//   "response": {
52727	//     "$ref": "Operation"
52728	//   },
52729	//   "scopes": [
52730	//     "https://www.googleapis.com/auth/cloud-platform",
52731	//     "https://www.googleapis.com/auth/compute"
52732	//   ]
52733	// }
52734
52735}
52736
52737// method id "compute.instanceGroupManagers.setInstanceTemplate":
52738
52739type InstanceGroupManagersSetInstanceTemplateCall struct {
52740	s                                               *Service
52741	project                                         string
52742	zone                                            string
52743	instanceGroupManager                            string
52744	instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest
52745	urlParams_                                      gensupport.URLParams
52746	ctx_                                            context.Context
52747	header_                                         http.Header
52748}
52749
52750// SetInstanceTemplate: Specifies the instance template to use when
52751// creating new instances in this group. The templates for existing
52752// instances in the group do not change unless you recreate them.
52753func (r *InstanceGroupManagersService) SetInstanceTemplate(project string, zone string, instanceGroupManager string, instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest) *InstanceGroupManagersSetInstanceTemplateCall {
52754	c := &InstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52755	c.project = project
52756	c.zone = zone
52757	c.instanceGroupManager = instanceGroupManager
52758	c.instancegroupmanagerssetinstancetemplaterequest = instancegroupmanagerssetinstancetemplaterequest
52759	return c
52760}
52761
52762// RequestId sets the optional parameter "requestId": An optional
52763// request ID to identify requests. Specify a unique request ID so that
52764// if you must retry your request, the server will know to ignore the
52765// request if it has already been completed.
52766//
52767// For example, consider a situation where you make an initial request
52768// and the request times out. If you make the request again with the
52769// same request ID, the server can check if original operation with the
52770// same request ID was received, and if so, will ignore the second
52771// request. This prevents clients from accidentally creating duplicate
52772// commitments.
52773//
52774// The request ID must be a valid UUID with the exception that zero UUID
52775// is not supported (00000000-0000-0000-0000-000000000000).
52776func (c *InstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *InstanceGroupManagersSetInstanceTemplateCall {
52777	c.urlParams_.Set("requestId", requestId)
52778	return c
52779}
52780
52781// Fields allows partial responses to be retrieved. See
52782// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52783// for more information.
52784func (c *InstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetInstanceTemplateCall {
52785	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52786	return c
52787}
52788
52789// Context sets the context to be used in this call's Do method. Any
52790// pending HTTP request will be aborted if the provided context is
52791// canceled.
52792func (c *InstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *InstanceGroupManagersSetInstanceTemplateCall {
52793	c.ctx_ = ctx
52794	return c
52795}
52796
52797// Header returns an http.Header that can be modified by the caller to
52798// add HTTP headers to the request.
52799func (c *InstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
52800	if c.header_ == nil {
52801		c.header_ = make(http.Header)
52802	}
52803	return c.header_
52804}
52805
52806func (c *InstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
52807	reqHeaders := make(http.Header)
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.instancegroupmanagerssetinstancetemplaterequest)
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}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
52821	urls += "?" + c.urlParams_.Encode()
52822	req, err := http.NewRequest("POST", 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		"zone":                 c.zone,
52830		"instanceGroupManager": c.instanceGroupManager,
52831	})
52832	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52833}
52834
52835// Do executes the "compute.instanceGroupManagers.setInstanceTemplate" call.
52836// Exactly one of *Operation or error will be non-nil. Any non-2xx
52837// status code is an error. Response headers are in either
52838// *Operation.ServerResponse.Header or (if a response was returned at
52839// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52840// to check whether the returned error was because
52841// http.StatusNotModified was returned.
52842func (c *InstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52843	gensupport.SetOptions(c.urlParams_, opts...)
52844	res, err := c.doRequest("json")
52845	if res != nil && res.StatusCode == http.StatusNotModified {
52846		if res.Body != nil {
52847			res.Body.Close()
52848		}
52849		return nil, &googleapi.Error{
52850			Code:   res.StatusCode,
52851			Header: res.Header,
52852		}
52853	}
52854	if err != nil {
52855		return nil, err
52856	}
52857	defer googleapi.CloseBody(res)
52858	if err := googleapi.CheckResponse(res); err != nil {
52859		return nil, err
52860	}
52861	ret := &Operation{
52862		ServerResponse: googleapi.ServerResponse{
52863			Header:         res.Header,
52864			HTTPStatusCode: res.StatusCode,
52865		},
52866	}
52867	target := &ret
52868	if err := gensupport.DecodeResponse(target, res); err != nil {
52869		return nil, err
52870	}
52871	return ret, nil
52872	// {
52873	//   "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.",
52874	//   "httpMethod": "POST",
52875	//   "id": "compute.instanceGroupManagers.setInstanceTemplate",
52876	//   "parameterOrder": [
52877	//     "project",
52878	//     "zone",
52879	//     "instanceGroupManager"
52880	//   ],
52881	//   "parameters": {
52882	//     "instanceGroupManager": {
52883	//       "description": "The name of the managed instance group.",
52884	//       "location": "path",
52885	//       "required": true,
52886	//       "type": "string"
52887	//     },
52888	//     "project": {
52889	//       "description": "Project ID for this request.",
52890	//       "location": "path",
52891	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52892	//       "required": true,
52893	//       "type": "string"
52894	//     },
52895	//     "requestId": {
52896	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52897	//       "location": "query",
52898	//       "type": "string"
52899	//     },
52900	//     "zone": {
52901	//       "description": "The name of the zone where the managed instance group is located.",
52902	//       "location": "path",
52903	//       "required": true,
52904	//       "type": "string"
52905	//     }
52906	//   },
52907	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
52908	//   "request": {
52909	//     "$ref": "InstanceGroupManagersSetInstanceTemplateRequest"
52910	//   },
52911	//   "response": {
52912	//     "$ref": "Operation"
52913	//   },
52914	//   "scopes": [
52915	//     "https://www.googleapis.com/auth/cloud-platform",
52916	//     "https://www.googleapis.com/auth/compute"
52917	//   ]
52918	// }
52919
52920}
52921
52922// method id "compute.instanceGroupManagers.setTargetPools":
52923
52924type InstanceGroupManagersSetTargetPoolsCall struct {
52925	s                                          *Service
52926	project                                    string
52927	zone                                       string
52928	instanceGroupManager                       string
52929	instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest
52930	urlParams_                                 gensupport.URLParams
52931	ctx_                                       context.Context
52932	header_                                    http.Header
52933}
52934
52935// SetTargetPools: Modifies the target pools to which all instances in
52936// this managed instance group are assigned. The target pools
52937// automatically apply to all of the instances in the managed instance
52938// group. This operation is marked DONE when you make the request even
52939// if the instances have not yet been added to their target pools. The
52940// change might take some time to apply to all of the instances in the
52941// group depending on the size of the group.
52942func (r *InstanceGroupManagersService) SetTargetPools(project string, zone string, instanceGroupManager string, instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest) *InstanceGroupManagersSetTargetPoolsCall {
52943	c := &InstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52944	c.project = project
52945	c.zone = zone
52946	c.instanceGroupManager = instanceGroupManager
52947	c.instancegroupmanagerssettargetpoolsrequest = instancegroupmanagerssettargetpoolsrequest
52948	return c
52949}
52950
52951// RequestId sets the optional parameter "requestId": An optional
52952// request ID to identify requests. Specify a unique request ID so that
52953// if you must retry your request, the server will know to ignore the
52954// request if it has already been completed.
52955//
52956// For example, consider a situation where you make an initial request
52957// and the request times out. If you make the request again with the
52958// same request ID, the server can check if original operation with the
52959// same request ID was received, and if so, will ignore the second
52960// request. This prevents clients from accidentally creating duplicate
52961// commitments.
52962//
52963// The request ID must be a valid UUID with the exception that zero UUID
52964// is not supported (00000000-0000-0000-0000-000000000000).
52965func (c *InstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *InstanceGroupManagersSetTargetPoolsCall {
52966	c.urlParams_.Set("requestId", requestId)
52967	return c
52968}
52969
52970// Fields allows partial responses to be retrieved. See
52971// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52972// for more information.
52973func (c *InstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetTargetPoolsCall {
52974	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52975	return c
52976}
52977
52978// Context sets the context to be used in this call's Do method. Any
52979// pending HTTP request will be aborted if the provided context is
52980// canceled.
52981func (c *InstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *InstanceGroupManagersSetTargetPoolsCall {
52982	c.ctx_ = ctx
52983	return c
52984}
52985
52986// Header returns an http.Header that can be modified by the caller to
52987// add HTTP headers to the request.
52988func (c *InstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
52989	if c.header_ == nil {
52990		c.header_ = make(http.Header)
52991	}
52992	return c.header_
52993}
52994
52995func (c *InstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
52996	reqHeaders := make(http.Header)
52997	for k, v := range c.header_ {
52998		reqHeaders[k] = v
52999	}
53000	reqHeaders.Set("User-Agent", c.s.userAgent())
53001	var body io.Reader = nil
53002	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssettargetpoolsrequest)
53003	if err != nil {
53004		return nil, err
53005	}
53006	reqHeaders.Set("Content-Type", "application/json")
53007	c.urlParams_.Set("alt", alt)
53008	c.urlParams_.Set("prettyPrint", "false")
53009	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
53010	urls += "?" + c.urlParams_.Encode()
53011	req, err := http.NewRequest("POST", urls, body)
53012	if err != nil {
53013		return nil, err
53014	}
53015	req.Header = reqHeaders
53016	googleapi.Expand(req.URL, map[string]string{
53017		"project":              c.project,
53018		"zone":                 c.zone,
53019		"instanceGroupManager": c.instanceGroupManager,
53020	})
53021	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53022}
53023
53024// Do executes the "compute.instanceGroupManagers.setTargetPools" call.
53025// Exactly one of *Operation or error will be non-nil. Any non-2xx
53026// status code is an error. Response headers are in either
53027// *Operation.ServerResponse.Header or (if a response was returned at
53028// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53029// to check whether the returned error was because
53030// http.StatusNotModified was returned.
53031func (c *InstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53032	gensupport.SetOptions(c.urlParams_, opts...)
53033	res, err := c.doRequest("json")
53034	if res != nil && res.StatusCode == http.StatusNotModified {
53035		if res.Body != nil {
53036			res.Body.Close()
53037		}
53038		return nil, &googleapi.Error{
53039			Code:   res.StatusCode,
53040			Header: res.Header,
53041		}
53042	}
53043	if err != nil {
53044		return nil, err
53045	}
53046	defer googleapi.CloseBody(res)
53047	if err := googleapi.CheckResponse(res); err != nil {
53048		return nil, err
53049	}
53050	ret := &Operation{
53051		ServerResponse: googleapi.ServerResponse{
53052			Header:         res.Header,
53053			HTTPStatusCode: res.StatusCode,
53054		},
53055	}
53056	target := &ret
53057	if err := gensupport.DecodeResponse(target, res); err != nil {
53058		return nil, err
53059	}
53060	return ret, nil
53061	// {
53062	//   "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.",
53063	//   "httpMethod": "POST",
53064	//   "id": "compute.instanceGroupManagers.setTargetPools",
53065	//   "parameterOrder": [
53066	//     "project",
53067	//     "zone",
53068	//     "instanceGroupManager"
53069	//   ],
53070	//   "parameters": {
53071	//     "instanceGroupManager": {
53072	//       "description": "The name of the managed instance group.",
53073	//       "location": "path",
53074	//       "required": true,
53075	//       "type": "string"
53076	//     },
53077	//     "project": {
53078	//       "description": "Project ID for this request.",
53079	//       "location": "path",
53080	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53081	//       "required": true,
53082	//       "type": "string"
53083	//     },
53084	//     "requestId": {
53085	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53086	//       "location": "query",
53087	//       "type": "string"
53088	//     },
53089	//     "zone": {
53090	//       "description": "The name of the zone where the managed instance group is located.",
53091	//       "location": "path",
53092	//       "required": true,
53093	//       "type": "string"
53094	//     }
53095	//   },
53096	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
53097	//   "request": {
53098	//     "$ref": "InstanceGroupManagersSetTargetPoolsRequest"
53099	//   },
53100	//   "response": {
53101	//     "$ref": "Operation"
53102	//   },
53103	//   "scopes": [
53104	//     "https://www.googleapis.com/auth/cloud-platform",
53105	//     "https://www.googleapis.com/auth/compute"
53106	//   ]
53107	// }
53108
53109}
53110
53111// method id "compute.instanceGroups.addInstances":
53112
53113type InstanceGroupsAddInstancesCall struct {
53114	s                                 *Service
53115	project                           string
53116	zone                              string
53117	instanceGroup                     string
53118	instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest
53119	urlParams_                        gensupport.URLParams
53120	ctx_                              context.Context
53121	header_                           http.Header
53122}
53123
53124// AddInstances: Adds a list of instances to the specified instance
53125// group. All of the instances in the instance group must be in the same
53126// network/subnetwork. Read  Adding instances for more information.
53127func (r *InstanceGroupsService) AddInstances(project string, zone string, instanceGroup string, instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest) *InstanceGroupsAddInstancesCall {
53128	c := &InstanceGroupsAddInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53129	c.project = project
53130	c.zone = zone
53131	c.instanceGroup = instanceGroup
53132	c.instancegroupsaddinstancesrequest = instancegroupsaddinstancesrequest
53133	return c
53134}
53135
53136// RequestId sets the optional parameter "requestId": An optional
53137// request ID to identify requests. Specify a unique request ID so that
53138// if you must retry your request, the server will know to ignore the
53139// request if it has already been completed.
53140//
53141// For example, consider a situation where you make an initial request
53142// and the request times out. If you make the request again with the
53143// same request ID, the server can check if original operation with the
53144// same request ID was received, and if so, will ignore the second
53145// request. This prevents clients from accidentally creating duplicate
53146// commitments.
53147//
53148// The request ID must be a valid UUID with the exception that zero UUID
53149// is not supported (00000000-0000-0000-0000-000000000000).
53150func (c *InstanceGroupsAddInstancesCall) RequestId(requestId string) *InstanceGroupsAddInstancesCall {
53151	c.urlParams_.Set("requestId", requestId)
53152	return c
53153}
53154
53155// Fields allows partial responses to be retrieved. See
53156// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53157// for more information.
53158func (c *InstanceGroupsAddInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsAddInstancesCall {
53159	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53160	return c
53161}
53162
53163// Context sets the context to be used in this call's Do method. Any
53164// pending HTTP request will be aborted if the provided context is
53165// canceled.
53166func (c *InstanceGroupsAddInstancesCall) Context(ctx context.Context) *InstanceGroupsAddInstancesCall {
53167	c.ctx_ = ctx
53168	return c
53169}
53170
53171// Header returns an http.Header that can be modified by the caller to
53172// add HTTP headers to the request.
53173func (c *InstanceGroupsAddInstancesCall) Header() http.Header {
53174	if c.header_ == nil {
53175		c.header_ = make(http.Header)
53176	}
53177	return c.header_
53178}
53179
53180func (c *InstanceGroupsAddInstancesCall) doRequest(alt string) (*http.Response, error) {
53181	reqHeaders := make(http.Header)
53182	for k, v := range c.header_ {
53183		reqHeaders[k] = v
53184	}
53185	reqHeaders.Set("User-Agent", c.s.userAgent())
53186	var body io.Reader = nil
53187	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsaddinstancesrequest)
53188	if err != nil {
53189		return nil, err
53190	}
53191	reqHeaders.Set("Content-Type", "application/json")
53192	c.urlParams_.Set("alt", alt)
53193	c.urlParams_.Set("prettyPrint", "false")
53194	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances")
53195	urls += "?" + c.urlParams_.Encode()
53196	req, err := http.NewRequest("POST", urls, body)
53197	if err != nil {
53198		return nil, err
53199	}
53200	req.Header = reqHeaders
53201	googleapi.Expand(req.URL, map[string]string{
53202		"project":       c.project,
53203		"zone":          c.zone,
53204		"instanceGroup": c.instanceGroup,
53205	})
53206	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53207}
53208
53209// Do executes the "compute.instanceGroups.addInstances" call.
53210// Exactly one of *Operation or error will be non-nil. Any non-2xx
53211// status code is an error. Response headers are in either
53212// *Operation.ServerResponse.Header or (if a response was returned at
53213// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53214// to check whether the returned error was because
53215// http.StatusNotModified was returned.
53216func (c *InstanceGroupsAddInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53217	gensupport.SetOptions(c.urlParams_, opts...)
53218	res, err := c.doRequest("json")
53219	if res != nil && res.StatusCode == http.StatusNotModified {
53220		if res.Body != nil {
53221			res.Body.Close()
53222		}
53223		return nil, &googleapi.Error{
53224			Code:   res.StatusCode,
53225			Header: res.Header,
53226		}
53227	}
53228	if err != nil {
53229		return nil, err
53230	}
53231	defer googleapi.CloseBody(res)
53232	if err := googleapi.CheckResponse(res); err != nil {
53233		return nil, err
53234	}
53235	ret := &Operation{
53236		ServerResponse: googleapi.ServerResponse{
53237			Header:         res.Header,
53238			HTTPStatusCode: res.StatusCode,
53239		},
53240	}
53241	target := &ret
53242	if err := gensupport.DecodeResponse(target, res); err != nil {
53243		return nil, err
53244	}
53245	return ret, nil
53246	// {
53247	//   "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.",
53248	//   "httpMethod": "POST",
53249	//   "id": "compute.instanceGroups.addInstances",
53250	//   "parameterOrder": [
53251	//     "project",
53252	//     "zone",
53253	//     "instanceGroup"
53254	//   ],
53255	//   "parameters": {
53256	//     "instanceGroup": {
53257	//       "description": "The name of the instance group where you are adding instances.",
53258	//       "location": "path",
53259	//       "required": true,
53260	//       "type": "string"
53261	//     },
53262	//     "project": {
53263	//       "description": "Project ID for this request.",
53264	//       "location": "path",
53265	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53266	//       "required": true,
53267	//       "type": "string"
53268	//     },
53269	//     "requestId": {
53270	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53271	//       "location": "query",
53272	//       "type": "string"
53273	//     },
53274	//     "zone": {
53275	//       "description": "The name of the zone where the instance group is located.",
53276	//       "location": "path",
53277	//       "required": true,
53278	//       "type": "string"
53279	//     }
53280	//   },
53281	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances",
53282	//   "request": {
53283	//     "$ref": "InstanceGroupsAddInstancesRequest"
53284	//   },
53285	//   "response": {
53286	//     "$ref": "Operation"
53287	//   },
53288	//   "scopes": [
53289	//     "https://www.googleapis.com/auth/cloud-platform",
53290	//     "https://www.googleapis.com/auth/compute"
53291	//   ]
53292	// }
53293
53294}
53295
53296// method id "compute.instanceGroups.aggregatedList":
53297
53298type InstanceGroupsAggregatedListCall struct {
53299	s            *Service
53300	project      string
53301	urlParams_   gensupport.URLParams
53302	ifNoneMatch_ string
53303	ctx_         context.Context
53304	header_      http.Header
53305}
53306
53307// AggregatedList: Retrieves the list of instance groups and sorts them
53308// by zone.
53309func (r *InstanceGroupsService) AggregatedList(project string) *InstanceGroupsAggregatedListCall {
53310	c := &InstanceGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53311	c.project = project
53312	return c
53313}
53314
53315// Filter sets the optional parameter "filter": A filter expression that
53316// filters resources listed in the response. The expression must specify
53317// the field name, a comparison operator, and the value that you want to
53318// use for filtering. The value must be a string, a number, or a
53319// boolean. The comparison operator must be either =, !=, >, or <.
53320//
53321// For example, if you are filtering Compute Engine instances, you can
53322// exclude instances named example-instance by specifying name !=
53323// example-instance.
53324//
53325// You can also filter nested fields. For example, you could specify
53326// scheduling.automaticRestart = false to include instances only if they
53327// are not scheduled for automatic restarts. You can use filtering on
53328// nested fields to filter based on resource labels.
53329//
53330// To filter on multiple expressions, provide each separate expression
53331// within parentheses. For example, (scheduling.automaticRestart = true)
53332// (cpuPlatform = "Intel Skylake"). By default, each expression is an
53333// AND expression. However, you can include AND and OR expressions
53334// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
53335// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
53336// true).
53337func (c *InstanceGroupsAggregatedListCall) Filter(filter string) *InstanceGroupsAggregatedListCall {
53338	c.urlParams_.Set("filter", filter)
53339	return c
53340}
53341
53342// MaxResults sets the optional parameter "maxResults": The maximum
53343// number of results per page that should be returned. If the number of
53344// available results is larger than maxResults, Compute Engine returns a
53345// nextPageToken that can be used to get the next page of results in
53346// subsequent list requests. Acceptable values are 0 to 500, inclusive.
53347// (Default: 500)
53348func (c *InstanceGroupsAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupsAggregatedListCall {
53349	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
53350	return c
53351}
53352
53353// OrderBy sets the optional parameter "orderBy": Sorts list results by
53354// a certain order. By default, results are returned in alphanumerical
53355// order based on the resource name.
53356//
53357// You can also sort results in descending order based on the creation
53358// timestamp using orderBy="creationTimestamp desc". This sorts results
53359// based on the creationTimestamp field in reverse chronological order
53360// (newest result first). Use this to sort resources like operations so
53361// that the newest operation is returned first.
53362//
53363// Currently, only sorting by name or creationTimestamp desc is
53364// supported.
53365func (c *InstanceGroupsAggregatedListCall) OrderBy(orderBy string) *InstanceGroupsAggregatedListCall {
53366	c.urlParams_.Set("orderBy", orderBy)
53367	return c
53368}
53369
53370// PageToken sets the optional parameter "pageToken": Specifies a page
53371// token to use. Set pageToken to the nextPageToken returned by a
53372// previous list request to get the next page of results.
53373func (c *InstanceGroupsAggregatedListCall) PageToken(pageToken string) *InstanceGroupsAggregatedListCall {
53374	c.urlParams_.Set("pageToken", pageToken)
53375	return c
53376}
53377
53378// Fields allows partial responses to be retrieved. See
53379// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53380// for more information.
53381func (c *InstanceGroupsAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupsAggregatedListCall {
53382	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53383	return c
53384}
53385
53386// IfNoneMatch sets the optional parameter which makes the operation
53387// fail if the object's ETag matches the given value. This is useful for
53388// getting updates only after the object has changed since the last
53389// request. Use googleapi.IsNotModified to check whether the response
53390// error from Do is the result of In-None-Match.
53391func (c *InstanceGroupsAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupsAggregatedListCall {
53392	c.ifNoneMatch_ = entityTag
53393	return c
53394}
53395
53396// Context sets the context to be used in this call's Do method. Any
53397// pending HTTP request will be aborted if the provided context is
53398// canceled.
53399func (c *InstanceGroupsAggregatedListCall) Context(ctx context.Context) *InstanceGroupsAggregatedListCall {
53400	c.ctx_ = ctx
53401	return c
53402}
53403
53404// Header returns an http.Header that can be modified by the caller to
53405// add HTTP headers to the request.
53406func (c *InstanceGroupsAggregatedListCall) Header() http.Header {
53407	if c.header_ == nil {
53408		c.header_ = make(http.Header)
53409	}
53410	return c.header_
53411}
53412
53413func (c *InstanceGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
53414	reqHeaders := make(http.Header)
53415	for k, v := range c.header_ {
53416		reqHeaders[k] = v
53417	}
53418	reqHeaders.Set("User-Agent", c.s.userAgent())
53419	if c.ifNoneMatch_ != "" {
53420		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53421	}
53422	var body io.Reader = nil
53423	c.urlParams_.Set("alt", alt)
53424	c.urlParams_.Set("prettyPrint", "false")
53425	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instanceGroups")
53426	urls += "?" + c.urlParams_.Encode()
53427	req, err := http.NewRequest("GET", urls, body)
53428	if err != nil {
53429		return nil, err
53430	}
53431	req.Header = reqHeaders
53432	googleapi.Expand(req.URL, map[string]string{
53433		"project": c.project,
53434	})
53435	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53436}
53437
53438// Do executes the "compute.instanceGroups.aggregatedList" call.
53439// Exactly one of *InstanceGroupAggregatedList or error will be non-nil.
53440// Any non-2xx status code is an error. Response headers are in either
53441// *InstanceGroupAggregatedList.ServerResponse.Header or (if a response
53442// was returned at all) in error.(*googleapi.Error).Header. Use
53443// googleapi.IsNotModified to check whether the returned error was
53444// because http.StatusNotModified was returned.
53445func (c *InstanceGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupAggregatedList, error) {
53446	gensupport.SetOptions(c.urlParams_, opts...)
53447	res, err := c.doRequest("json")
53448	if res != nil && res.StatusCode == http.StatusNotModified {
53449		if res.Body != nil {
53450			res.Body.Close()
53451		}
53452		return nil, &googleapi.Error{
53453			Code:   res.StatusCode,
53454			Header: res.Header,
53455		}
53456	}
53457	if err != nil {
53458		return nil, err
53459	}
53460	defer googleapi.CloseBody(res)
53461	if err := googleapi.CheckResponse(res); err != nil {
53462		return nil, err
53463	}
53464	ret := &InstanceGroupAggregatedList{
53465		ServerResponse: googleapi.ServerResponse{
53466			Header:         res.Header,
53467			HTTPStatusCode: res.StatusCode,
53468		},
53469	}
53470	target := &ret
53471	if err := gensupport.DecodeResponse(target, res); err != nil {
53472		return nil, err
53473	}
53474	return ret, nil
53475	// {
53476	//   "description": "Retrieves the list of instance groups and sorts them by zone.",
53477	//   "httpMethod": "GET",
53478	//   "id": "compute.instanceGroups.aggregatedList",
53479	//   "parameterOrder": [
53480	//     "project"
53481	//   ],
53482	//   "parameters": {
53483	//     "filter": {
53484	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
53485	//       "location": "query",
53486	//       "type": "string"
53487	//     },
53488	//     "maxResults": {
53489	//       "default": "500",
53490	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
53491	//       "format": "uint32",
53492	//       "location": "query",
53493	//       "minimum": "0",
53494	//       "type": "integer"
53495	//     },
53496	//     "orderBy": {
53497	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
53498	//       "location": "query",
53499	//       "type": "string"
53500	//     },
53501	//     "pageToken": {
53502	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
53503	//       "location": "query",
53504	//       "type": "string"
53505	//     },
53506	//     "project": {
53507	//       "description": "Project ID for this request.",
53508	//       "location": "path",
53509	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53510	//       "required": true,
53511	//       "type": "string"
53512	//     }
53513	//   },
53514	//   "path": "{project}/aggregated/instanceGroups",
53515	//   "response": {
53516	//     "$ref": "InstanceGroupAggregatedList"
53517	//   },
53518	//   "scopes": [
53519	//     "https://www.googleapis.com/auth/cloud-platform",
53520	//     "https://www.googleapis.com/auth/compute",
53521	//     "https://www.googleapis.com/auth/compute.readonly"
53522	//   ]
53523	// }
53524
53525}
53526
53527// Pages invokes f for each page of results.
53528// A non-nil error returned from f will halt the iteration.
53529// The provided context supersedes any context provided to the Context method.
53530func (c *InstanceGroupsAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupAggregatedList) error) error {
53531	c.ctx_ = ctx
53532	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
53533	for {
53534		x, err := c.Do()
53535		if err != nil {
53536			return err
53537		}
53538		if err := f(x); err != nil {
53539			return err
53540		}
53541		if x.NextPageToken == "" {
53542			return nil
53543		}
53544		c.PageToken(x.NextPageToken)
53545	}
53546}
53547
53548// method id "compute.instanceGroups.delete":
53549
53550type InstanceGroupsDeleteCall struct {
53551	s             *Service
53552	project       string
53553	zone          string
53554	instanceGroup string
53555	urlParams_    gensupport.URLParams
53556	ctx_          context.Context
53557	header_       http.Header
53558}
53559
53560// Delete: Deletes the specified instance group. The instances in the
53561// group are not deleted. Note that instance group must not belong to a
53562// backend service. Read  Deleting an instance group for more
53563// information.
53564func (r *InstanceGroupsService) Delete(project string, zone string, instanceGroup string) *InstanceGroupsDeleteCall {
53565	c := &InstanceGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53566	c.project = project
53567	c.zone = zone
53568	c.instanceGroup = instanceGroup
53569	return c
53570}
53571
53572// RequestId sets the optional parameter "requestId": An optional
53573// request ID to identify requests. Specify a unique request ID so that
53574// if you must retry your request, the server will know to ignore the
53575// request if it has already been completed.
53576//
53577// For example, consider a situation where you make an initial request
53578// and the request times out. If you make the request again with the
53579// same request ID, the server can check if original operation with the
53580// same request ID was received, and if so, will ignore the second
53581// request. This prevents clients from accidentally creating duplicate
53582// commitments.
53583//
53584// The request ID must be a valid UUID with the exception that zero UUID
53585// is not supported (00000000-0000-0000-0000-000000000000).
53586func (c *InstanceGroupsDeleteCall) RequestId(requestId string) *InstanceGroupsDeleteCall {
53587	c.urlParams_.Set("requestId", requestId)
53588	return c
53589}
53590
53591// Fields allows partial responses to be retrieved. See
53592// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53593// for more information.
53594func (c *InstanceGroupsDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupsDeleteCall {
53595	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53596	return c
53597}
53598
53599// Context sets the context to be used in this call's Do method. Any
53600// pending HTTP request will be aborted if the provided context is
53601// canceled.
53602func (c *InstanceGroupsDeleteCall) Context(ctx context.Context) *InstanceGroupsDeleteCall {
53603	c.ctx_ = ctx
53604	return c
53605}
53606
53607// Header returns an http.Header that can be modified by the caller to
53608// add HTTP headers to the request.
53609func (c *InstanceGroupsDeleteCall) Header() http.Header {
53610	if c.header_ == nil {
53611		c.header_ = make(http.Header)
53612	}
53613	return c.header_
53614}
53615
53616func (c *InstanceGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
53617	reqHeaders := make(http.Header)
53618	for k, v := range c.header_ {
53619		reqHeaders[k] = v
53620	}
53621	reqHeaders.Set("User-Agent", c.s.userAgent())
53622	var body io.Reader = nil
53623	c.urlParams_.Set("alt", alt)
53624	c.urlParams_.Set("prettyPrint", "false")
53625	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}")
53626	urls += "?" + c.urlParams_.Encode()
53627	req, err := http.NewRequest("DELETE", urls, body)
53628	if err != nil {
53629		return nil, err
53630	}
53631	req.Header = reqHeaders
53632	googleapi.Expand(req.URL, map[string]string{
53633		"project":       c.project,
53634		"zone":          c.zone,
53635		"instanceGroup": c.instanceGroup,
53636	})
53637	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53638}
53639
53640// Do executes the "compute.instanceGroups.delete" call.
53641// Exactly one of *Operation or error will be non-nil. Any non-2xx
53642// status code is an error. Response headers are in either
53643// *Operation.ServerResponse.Header or (if a response was returned at
53644// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53645// to check whether the returned error was because
53646// http.StatusNotModified was returned.
53647func (c *InstanceGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53648	gensupport.SetOptions(c.urlParams_, opts...)
53649	res, err := c.doRequest("json")
53650	if res != nil && res.StatusCode == http.StatusNotModified {
53651		if res.Body != nil {
53652			res.Body.Close()
53653		}
53654		return nil, &googleapi.Error{
53655			Code:   res.StatusCode,
53656			Header: res.Header,
53657		}
53658	}
53659	if err != nil {
53660		return nil, err
53661	}
53662	defer googleapi.CloseBody(res)
53663	if err := googleapi.CheckResponse(res); err != nil {
53664		return nil, err
53665	}
53666	ret := &Operation{
53667		ServerResponse: googleapi.ServerResponse{
53668			Header:         res.Header,
53669			HTTPStatusCode: res.StatusCode,
53670		},
53671	}
53672	target := &ret
53673	if err := gensupport.DecodeResponse(target, res); err != nil {
53674		return nil, err
53675	}
53676	return ret, nil
53677	// {
53678	//   "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.",
53679	//   "httpMethod": "DELETE",
53680	//   "id": "compute.instanceGroups.delete",
53681	//   "parameterOrder": [
53682	//     "project",
53683	//     "zone",
53684	//     "instanceGroup"
53685	//   ],
53686	//   "parameters": {
53687	//     "instanceGroup": {
53688	//       "description": "The name of the instance group to delete.",
53689	//       "location": "path",
53690	//       "required": true,
53691	//       "type": "string"
53692	//     },
53693	//     "project": {
53694	//       "description": "Project ID for this request.",
53695	//       "location": "path",
53696	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53697	//       "required": true,
53698	//       "type": "string"
53699	//     },
53700	//     "requestId": {
53701	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53702	//       "location": "query",
53703	//       "type": "string"
53704	//     },
53705	//     "zone": {
53706	//       "description": "The name of the zone where the instance group is located.",
53707	//       "location": "path",
53708	//       "required": true,
53709	//       "type": "string"
53710	//     }
53711	//   },
53712	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}",
53713	//   "response": {
53714	//     "$ref": "Operation"
53715	//   },
53716	//   "scopes": [
53717	//     "https://www.googleapis.com/auth/cloud-platform",
53718	//     "https://www.googleapis.com/auth/compute"
53719	//   ]
53720	// }
53721
53722}
53723
53724// method id "compute.instanceGroups.get":
53725
53726type InstanceGroupsGetCall struct {
53727	s             *Service
53728	project       string
53729	zone          string
53730	instanceGroup string
53731	urlParams_    gensupport.URLParams
53732	ifNoneMatch_  string
53733	ctx_          context.Context
53734	header_       http.Header
53735}
53736
53737// Get: Returns the specified instance group. Gets a list of available
53738// instance groups by making a list() request.
53739func (r *InstanceGroupsService) Get(project string, zone string, instanceGroup string) *InstanceGroupsGetCall {
53740	c := &InstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53741	c.project = project
53742	c.zone = zone
53743	c.instanceGroup = instanceGroup
53744	return c
53745}
53746
53747// Fields allows partial responses to be retrieved. See
53748// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53749// for more information.
53750func (c *InstanceGroupsGetCall) Fields(s ...googleapi.Field) *InstanceGroupsGetCall {
53751	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53752	return c
53753}
53754
53755// IfNoneMatch sets the optional parameter which makes the operation
53756// fail if the object's ETag matches the given value. This is useful for
53757// getting updates only after the object has changed since the last
53758// request. Use googleapi.IsNotModified to check whether the response
53759// error from Do is the result of In-None-Match.
53760func (c *InstanceGroupsGetCall) IfNoneMatch(entityTag string) *InstanceGroupsGetCall {
53761	c.ifNoneMatch_ = entityTag
53762	return c
53763}
53764
53765// Context sets the context to be used in this call's Do method. Any
53766// pending HTTP request will be aborted if the provided context is
53767// canceled.
53768func (c *InstanceGroupsGetCall) Context(ctx context.Context) *InstanceGroupsGetCall {
53769	c.ctx_ = ctx
53770	return c
53771}
53772
53773// Header returns an http.Header that can be modified by the caller to
53774// add HTTP headers to the request.
53775func (c *InstanceGroupsGetCall) Header() http.Header {
53776	if c.header_ == nil {
53777		c.header_ = make(http.Header)
53778	}
53779	return c.header_
53780}
53781
53782func (c *InstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
53783	reqHeaders := make(http.Header)
53784	for k, v := range c.header_ {
53785		reqHeaders[k] = v
53786	}
53787	reqHeaders.Set("User-Agent", c.s.userAgent())
53788	if c.ifNoneMatch_ != "" {
53789		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53790	}
53791	var body io.Reader = nil
53792	c.urlParams_.Set("alt", alt)
53793	c.urlParams_.Set("prettyPrint", "false")
53794	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}")
53795	urls += "?" + c.urlParams_.Encode()
53796	req, err := http.NewRequest("GET", urls, body)
53797	if err != nil {
53798		return nil, err
53799	}
53800	req.Header = reqHeaders
53801	googleapi.Expand(req.URL, map[string]string{
53802		"project":       c.project,
53803		"zone":          c.zone,
53804		"instanceGroup": c.instanceGroup,
53805	})
53806	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53807}
53808
53809// Do executes the "compute.instanceGroups.get" call.
53810// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
53811// status code is an error. Response headers are in either
53812// *InstanceGroup.ServerResponse.Header or (if a response was returned
53813// at all) in error.(*googleapi.Error).Header. Use
53814// googleapi.IsNotModified to check whether the returned error was
53815// because http.StatusNotModified was returned.
53816func (c *InstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
53817	gensupport.SetOptions(c.urlParams_, opts...)
53818	res, err := c.doRequest("json")
53819	if res != nil && res.StatusCode == http.StatusNotModified {
53820		if res.Body != nil {
53821			res.Body.Close()
53822		}
53823		return nil, &googleapi.Error{
53824			Code:   res.StatusCode,
53825			Header: res.Header,
53826		}
53827	}
53828	if err != nil {
53829		return nil, err
53830	}
53831	defer googleapi.CloseBody(res)
53832	if err := googleapi.CheckResponse(res); err != nil {
53833		return nil, err
53834	}
53835	ret := &InstanceGroup{
53836		ServerResponse: googleapi.ServerResponse{
53837			Header:         res.Header,
53838			HTTPStatusCode: res.StatusCode,
53839		},
53840	}
53841	target := &ret
53842	if err := gensupport.DecodeResponse(target, res); err != nil {
53843		return nil, err
53844	}
53845	return ret, nil
53846	// {
53847	//   "description": "Returns the specified instance group. Gets a list of available instance groups by making a list() request.",
53848	//   "httpMethod": "GET",
53849	//   "id": "compute.instanceGroups.get",
53850	//   "parameterOrder": [
53851	//     "project",
53852	//     "zone",
53853	//     "instanceGroup"
53854	//   ],
53855	//   "parameters": {
53856	//     "instanceGroup": {
53857	//       "description": "The name of the instance group.",
53858	//       "location": "path",
53859	//       "required": true,
53860	//       "type": "string"
53861	//     },
53862	//     "project": {
53863	//       "description": "Project ID for this request.",
53864	//       "location": "path",
53865	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53866	//       "required": true,
53867	//       "type": "string"
53868	//     },
53869	//     "zone": {
53870	//       "description": "The name of the zone where the instance group is located.",
53871	//       "location": "path",
53872	//       "required": true,
53873	//       "type": "string"
53874	//     }
53875	//   },
53876	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}",
53877	//   "response": {
53878	//     "$ref": "InstanceGroup"
53879	//   },
53880	//   "scopes": [
53881	//     "https://www.googleapis.com/auth/cloud-platform",
53882	//     "https://www.googleapis.com/auth/compute",
53883	//     "https://www.googleapis.com/auth/compute.readonly"
53884	//   ]
53885	// }
53886
53887}
53888
53889// method id "compute.instanceGroups.insert":
53890
53891type InstanceGroupsInsertCall struct {
53892	s             *Service
53893	project       string
53894	zone          string
53895	instancegroup *InstanceGroup
53896	urlParams_    gensupport.URLParams
53897	ctx_          context.Context
53898	header_       http.Header
53899}
53900
53901// Insert: Creates an instance group in the specified project using the
53902// parameters that are included in the request.
53903func (r *InstanceGroupsService) Insert(project string, zone string, instancegroup *InstanceGroup) *InstanceGroupsInsertCall {
53904	c := &InstanceGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53905	c.project = project
53906	c.zone = zone
53907	c.instancegroup = instancegroup
53908	return c
53909}
53910
53911// RequestId sets the optional parameter "requestId": An optional
53912// request ID to identify requests. Specify a unique request ID so that
53913// if you must retry your request, the server will know to ignore the
53914// request if it has already been completed.
53915//
53916// For example, consider a situation where you make an initial request
53917// and the request times out. If you make the request again with the
53918// same request ID, the server can check if original operation with the
53919// same request ID was received, and if so, will ignore the second
53920// request. This prevents clients from accidentally creating duplicate
53921// commitments.
53922//
53923// The request ID must be a valid UUID with the exception that zero UUID
53924// is not supported (00000000-0000-0000-0000-000000000000).
53925func (c *InstanceGroupsInsertCall) RequestId(requestId string) *InstanceGroupsInsertCall {
53926	c.urlParams_.Set("requestId", requestId)
53927	return c
53928}
53929
53930// Fields allows partial responses to be retrieved. See
53931// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53932// for more information.
53933func (c *InstanceGroupsInsertCall) Fields(s ...googleapi.Field) *InstanceGroupsInsertCall {
53934	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53935	return c
53936}
53937
53938// Context sets the context to be used in this call's Do method. Any
53939// pending HTTP request will be aborted if the provided context is
53940// canceled.
53941func (c *InstanceGroupsInsertCall) Context(ctx context.Context) *InstanceGroupsInsertCall {
53942	c.ctx_ = ctx
53943	return c
53944}
53945
53946// Header returns an http.Header that can be modified by the caller to
53947// add HTTP headers to the request.
53948func (c *InstanceGroupsInsertCall) Header() http.Header {
53949	if c.header_ == nil {
53950		c.header_ = make(http.Header)
53951	}
53952	return c.header_
53953}
53954
53955func (c *InstanceGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
53956	reqHeaders := make(http.Header)
53957	for k, v := range c.header_ {
53958		reqHeaders[k] = v
53959	}
53960	reqHeaders.Set("User-Agent", c.s.userAgent())
53961	var body io.Reader = nil
53962	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroup)
53963	if err != nil {
53964		return nil, err
53965	}
53966	reqHeaders.Set("Content-Type", "application/json")
53967	c.urlParams_.Set("alt", alt)
53968	c.urlParams_.Set("prettyPrint", "false")
53969	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups")
53970	urls += "?" + c.urlParams_.Encode()
53971	req, err := http.NewRequest("POST", urls, body)
53972	if err != nil {
53973		return nil, err
53974	}
53975	req.Header = reqHeaders
53976	googleapi.Expand(req.URL, map[string]string{
53977		"project": c.project,
53978		"zone":    c.zone,
53979	})
53980	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53981}
53982
53983// Do executes the "compute.instanceGroups.insert" call.
53984// Exactly one of *Operation or error will be non-nil. Any non-2xx
53985// status code is an error. Response headers are in either
53986// *Operation.ServerResponse.Header or (if a response was returned at
53987// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53988// to check whether the returned error was because
53989// http.StatusNotModified was returned.
53990func (c *InstanceGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53991	gensupport.SetOptions(c.urlParams_, opts...)
53992	res, err := c.doRequest("json")
53993	if res != nil && res.StatusCode == http.StatusNotModified {
53994		if res.Body != nil {
53995			res.Body.Close()
53996		}
53997		return nil, &googleapi.Error{
53998			Code:   res.StatusCode,
53999			Header: res.Header,
54000		}
54001	}
54002	if err != nil {
54003		return nil, err
54004	}
54005	defer googleapi.CloseBody(res)
54006	if err := googleapi.CheckResponse(res); err != nil {
54007		return nil, err
54008	}
54009	ret := &Operation{
54010		ServerResponse: googleapi.ServerResponse{
54011			Header:         res.Header,
54012			HTTPStatusCode: res.StatusCode,
54013		},
54014	}
54015	target := &ret
54016	if err := gensupport.DecodeResponse(target, res); err != nil {
54017		return nil, err
54018	}
54019	return ret, nil
54020	// {
54021	//   "description": "Creates an instance group in the specified project using the parameters that are included in the request.",
54022	//   "httpMethod": "POST",
54023	//   "id": "compute.instanceGroups.insert",
54024	//   "parameterOrder": [
54025	//     "project",
54026	//     "zone"
54027	//   ],
54028	//   "parameters": {
54029	//     "project": {
54030	//       "description": "Project ID for this request.",
54031	//       "location": "path",
54032	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54033	//       "required": true,
54034	//       "type": "string"
54035	//     },
54036	//     "requestId": {
54037	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54038	//       "location": "query",
54039	//       "type": "string"
54040	//     },
54041	//     "zone": {
54042	//       "description": "The name of the zone where you want to create the instance group.",
54043	//       "location": "path",
54044	//       "required": true,
54045	//       "type": "string"
54046	//     }
54047	//   },
54048	//   "path": "{project}/zones/{zone}/instanceGroups",
54049	//   "request": {
54050	//     "$ref": "InstanceGroup"
54051	//   },
54052	//   "response": {
54053	//     "$ref": "Operation"
54054	//   },
54055	//   "scopes": [
54056	//     "https://www.googleapis.com/auth/cloud-platform",
54057	//     "https://www.googleapis.com/auth/compute"
54058	//   ]
54059	// }
54060
54061}
54062
54063// method id "compute.instanceGroups.list":
54064
54065type InstanceGroupsListCall struct {
54066	s            *Service
54067	project      string
54068	zone         string
54069	urlParams_   gensupport.URLParams
54070	ifNoneMatch_ string
54071	ctx_         context.Context
54072	header_      http.Header
54073}
54074
54075// List: Retrieves the list of instance groups that are located in the
54076// specified project and zone.
54077func (r *InstanceGroupsService) List(project string, zone string) *InstanceGroupsListCall {
54078	c := &InstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54079	c.project = project
54080	c.zone = zone
54081	return c
54082}
54083
54084// Filter sets the optional parameter "filter": A filter expression that
54085// filters resources listed in the response. The expression must specify
54086// the field name, a comparison operator, and the value that you want to
54087// use for filtering. The value must be a string, a number, or a
54088// boolean. The comparison operator must be either =, !=, >, or <.
54089//
54090// For example, if you are filtering Compute Engine instances, you can
54091// exclude instances named example-instance by specifying name !=
54092// example-instance.
54093//
54094// You can also filter nested fields. For example, you could specify
54095// scheduling.automaticRestart = false to include instances only if they
54096// are not scheduled for automatic restarts. You can use filtering on
54097// nested fields to filter based on resource labels.
54098//
54099// To filter on multiple expressions, provide each separate expression
54100// within parentheses. For example, (scheduling.automaticRestart = true)
54101// (cpuPlatform = "Intel Skylake"). By default, each expression is an
54102// AND expression. However, you can include AND and OR expressions
54103// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
54104// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
54105// true).
54106func (c *InstanceGroupsListCall) Filter(filter string) *InstanceGroupsListCall {
54107	c.urlParams_.Set("filter", filter)
54108	return c
54109}
54110
54111// MaxResults sets the optional parameter "maxResults": The maximum
54112// number of results per page that should be returned. If the number of
54113// available results is larger than maxResults, Compute Engine returns a
54114// nextPageToken that can be used to get the next page of results in
54115// subsequent list requests. Acceptable values are 0 to 500, inclusive.
54116// (Default: 500)
54117func (c *InstanceGroupsListCall) MaxResults(maxResults int64) *InstanceGroupsListCall {
54118	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
54119	return c
54120}
54121
54122// OrderBy sets the optional parameter "orderBy": Sorts list results by
54123// a certain order. By default, results are returned in alphanumerical
54124// order based on the resource name.
54125//
54126// You can also sort results in descending order based on the creation
54127// timestamp using orderBy="creationTimestamp desc". This sorts results
54128// based on the creationTimestamp field in reverse chronological order
54129// (newest result first). Use this to sort resources like operations so
54130// that the newest operation is returned first.
54131//
54132// Currently, only sorting by name or creationTimestamp desc is
54133// supported.
54134func (c *InstanceGroupsListCall) OrderBy(orderBy string) *InstanceGroupsListCall {
54135	c.urlParams_.Set("orderBy", orderBy)
54136	return c
54137}
54138
54139// PageToken sets the optional parameter "pageToken": Specifies a page
54140// token to use. Set pageToken to the nextPageToken returned by a
54141// previous list request to get the next page of results.
54142func (c *InstanceGroupsListCall) PageToken(pageToken string) *InstanceGroupsListCall {
54143	c.urlParams_.Set("pageToken", pageToken)
54144	return c
54145}
54146
54147// Fields allows partial responses to be retrieved. See
54148// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54149// for more information.
54150func (c *InstanceGroupsListCall) Fields(s ...googleapi.Field) *InstanceGroupsListCall {
54151	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54152	return c
54153}
54154
54155// IfNoneMatch sets the optional parameter which makes the operation
54156// fail if the object's ETag matches the given value. This is useful for
54157// getting updates only after the object has changed since the last
54158// request. Use googleapi.IsNotModified to check whether the response
54159// error from Do is the result of In-None-Match.
54160func (c *InstanceGroupsListCall) IfNoneMatch(entityTag string) *InstanceGroupsListCall {
54161	c.ifNoneMatch_ = entityTag
54162	return c
54163}
54164
54165// Context sets the context to be used in this call's Do method. Any
54166// pending HTTP request will be aborted if the provided context is
54167// canceled.
54168func (c *InstanceGroupsListCall) Context(ctx context.Context) *InstanceGroupsListCall {
54169	c.ctx_ = ctx
54170	return c
54171}
54172
54173// Header returns an http.Header that can be modified by the caller to
54174// add HTTP headers to the request.
54175func (c *InstanceGroupsListCall) Header() http.Header {
54176	if c.header_ == nil {
54177		c.header_ = make(http.Header)
54178	}
54179	return c.header_
54180}
54181
54182func (c *InstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
54183	reqHeaders := make(http.Header)
54184	for k, v := range c.header_ {
54185		reqHeaders[k] = v
54186	}
54187	reqHeaders.Set("User-Agent", c.s.userAgent())
54188	if c.ifNoneMatch_ != "" {
54189		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54190	}
54191	var body io.Reader = nil
54192	c.urlParams_.Set("alt", alt)
54193	c.urlParams_.Set("prettyPrint", "false")
54194	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups")
54195	urls += "?" + c.urlParams_.Encode()
54196	req, err := http.NewRequest("GET", urls, body)
54197	if err != nil {
54198		return nil, err
54199	}
54200	req.Header = reqHeaders
54201	googleapi.Expand(req.URL, map[string]string{
54202		"project": c.project,
54203		"zone":    c.zone,
54204	})
54205	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54206}
54207
54208// Do executes the "compute.instanceGroups.list" call.
54209// Exactly one of *InstanceGroupList or error will be non-nil. Any
54210// non-2xx status code is an error. Response headers are in either
54211// *InstanceGroupList.ServerResponse.Header or (if a response was
54212// returned at all) in error.(*googleapi.Error).Header. Use
54213// googleapi.IsNotModified to check whether the returned error was
54214// because http.StatusNotModified was returned.
54215func (c *InstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupList, error) {
54216	gensupport.SetOptions(c.urlParams_, opts...)
54217	res, err := c.doRequest("json")
54218	if res != nil && res.StatusCode == http.StatusNotModified {
54219		if res.Body != nil {
54220			res.Body.Close()
54221		}
54222		return nil, &googleapi.Error{
54223			Code:   res.StatusCode,
54224			Header: res.Header,
54225		}
54226	}
54227	if err != nil {
54228		return nil, err
54229	}
54230	defer googleapi.CloseBody(res)
54231	if err := googleapi.CheckResponse(res); err != nil {
54232		return nil, err
54233	}
54234	ret := &InstanceGroupList{
54235		ServerResponse: googleapi.ServerResponse{
54236			Header:         res.Header,
54237			HTTPStatusCode: res.StatusCode,
54238		},
54239	}
54240	target := &ret
54241	if err := gensupport.DecodeResponse(target, res); err != nil {
54242		return nil, err
54243	}
54244	return ret, nil
54245	// {
54246	//   "description": "Retrieves the list of instance groups that are located in the specified project and zone.",
54247	//   "httpMethod": "GET",
54248	//   "id": "compute.instanceGroups.list",
54249	//   "parameterOrder": [
54250	//     "project",
54251	//     "zone"
54252	//   ],
54253	//   "parameters": {
54254	//     "filter": {
54255	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
54256	//       "location": "query",
54257	//       "type": "string"
54258	//     },
54259	//     "maxResults": {
54260	//       "default": "500",
54261	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
54262	//       "format": "uint32",
54263	//       "location": "query",
54264	//       "minimum": "0",
54265	//       "type": "integer"
54266	//     },
54267	//     "orderBy": {
54268	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
54269	//       "location": "query",
54270	//       "type": "string"
54271	//     },
54272	//     "pageToken": {
54273	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
54274	//       "location": "query",
54275	//       "type": "string"
54276	//     },
54277	//     "project": {
54278	//       "description": "Project ID for this request.",
54279	//       "location": "path",
54280	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54281	//       "required": true,
54282	//       "type": "string"
54283	//     },
54284	//     "zone": {
54285	//       "description": "The name of the zone where the instance group is located.",
54286	//       "location": "path",
54287	//       "required": true,
54288	//       "type": "string"
54289	//     }
54290	//   },
54291	//   "path": "{project}/zones/{zone}/instanceGroups",
54292	//   "response": {
54293	//     "$ref": "InstanceGroupList"
54294	//   },
54295	//   "scopes": [
54296	//     "https://www.googleapis.com/auth/cloud-platform",
54297	//     "https://www.googleapis.com/auth/compute",
54298	//     "https://www.googleapis.com/auth/compute.readonly"
54299	//   ]
54300	// }
54301
54302}
54303
54304// Pages invokes f for each page of results.
54305// A non-nil error returned from f will halt the iteration.
54306// The provided context supersedes any context provided to the Context method.
54307func (c *InstanceGroupsListCall) Pages(ctx context.Context, f func(*InstanceGroupList) error) error {
54308	c.ctx_ = ctx
54309	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
54310	for {
54311		x, err := c.Do()
54312		if err != nil {
54313			return err
54314		}
54315		if err := f(x); err != nil {
54316			return err
54317		}
54318		if x.NextPageToken == "" {
54319			return nil
54320		}
54321		c.PageToken(x.NextPageToken)
54322	}
54323}
54324
54325// method id "compute.instanceGroups.listInstances":
54326
54327type InstanceGroupsListInstancesCall struct {
54328	s                                  *Service
54329	project                            string
54330	zone                               string
54331	instanceGroup                      string
54332	instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest
54333	urlParams_                         gensupport.URLParams
54334	ctx_                               context.Context
54335	header_                            http.Header
54336}
54337
54338// ListInstances: Lists the instances in the specified instance group.
54339func (r *InstanceGroupsService) ListInstances(project string, zone string, instanceGroup string, instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest) *InstanceGroupsListInstancesCall {
54340	c := &InstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54341	c.project = project
54342	c.zone = zone
54343	c.instanceGroup = instanceGroup
54344	c.instancegroupslistinstancesrequest = instancegroupslistinstancesrequest
54345	return c
54346}
54347
54348// Filter sets the optional parameter "filter": A filter expression that
54349// filters resources listed in the response. The expression must specify
54350// the field name, a comparison operator, and the value that you want to
54351// use for filtering. The value must be a string, a number, or a
54352// boolean. The comparison operator must be either =, !=, >, or <.
54353//
54354// For example, if you are filtering Compute Engine instances, you can
54355// exclude instances named example-instance by specifying name !=
54356// example-instance.
54357//
54358// You can also filter nested fields. For example, you could specify
54359// scheduling.automaticRestart = false to include instances only if they
54360// are not scheduled for automatic restarts. You can use filtering on
54361// nested fields to filter based on resource labels.
54362//
54363// To filter on multiple expressions, provide each separate expression
54364// within parentheses. For example, (scheduling.automaticRestart = true)
54365// (cpuPlatform = "Intel Skylake"). By default, each expression is an
54366// AND expression. However, you can include AND and OR expressions
54367// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
54368// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
54369// true).
54370func (c *InstanceGroupsListInstancesCall) Filter(filter string) *InstanceGroupsListInstancesCall {
54371	c.urlParams_.Set("filter", filter)
54372	return c
54373}
54374
54375// MaxResults sets the optional parameter "maxResults": The maximum
54376// number of results per page that should be returned. If the number of
54377// available results is larger than maxResults, Compute Engine returns a
54378// nextPageToken that can be used to get the next page of results in
54379// subsequent list requests. Acceptable values are 0 to 500, inclusive.
54380// (Default: 500)
54381func (c *InstanceGroupsListInstancesCall) MaxResults(maxResults int64) *InstanceGroupsListInstancesCall {
54382	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
54383	return c
54384}
54385
54386// OrderBy sets the optional parameter "orderBy": Sorts list results by
54387// a certain order. By default, results are returned in alphanumerical
54388// order based on the resource name.
54389//
54390// You can also sort results in descending order based on the creation
54391// timestamp using orderBy="creationTimestamp desc". This sorts results
54392// based on the creationTimestamp field in reverse chronological order
54393// (newest result first). Use this to sort resources like operations so
54394// that the newest operation is returned first.
54395//
54396// Currently, only sorting by name or creationTimestamp desc is
54397// supported.
54398func (c *InstanceGroupsListInstancesCall) OrderBy(orderBy string) *InstanceGroupsListInstancesCall {
54399	c.urlParams_.Set("orderBy", orderBy)
54400	return c
54401}
54402
54403// PageToken sets the optional parameter "pageToken": Specifies a page
54404// token to use. Set pageToken to the nextPageToken returned by a
54405// previous list request to get the next page of results.
54406func (c *InstanceGroupsListInstancesCall) PageToken(pageToken string) *InstanceGroupsListInstancesCall {
54407	c.urlParams_.Set("pageToken", pageToken)
54408	return c
54409}
54410
54411// Fields allows partial responses to be retrieved. See
54412// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54413// for more information.
54414func (c *InstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsListInstancesCall {
54415	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54416	return c
54417}
54418
54419// Context sets the context to be used in this call's Do method. Any
54420// pending HTTP request will be aborted if the provided context is
54421// canceled.
54422func (c *InstanceGroupsListInstancesCall) Context(ctx context.Context) *InstanceGroupsListInstancesCall {
54423	c.ctx_ = ctx
54424	return c
54425}
54426
54427// Header returns an http.Header that can be modified by the caller to
54428// add HTTP headers to the request.
54429func (c *InstanceGroupsListInstancesCall) Header() http.Header {
54430	if c.header_ == nil {
54431		c.header_ = make(http.Header)
54432	}
54433	return c.header_
54434}
54435
54436func (c *InstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
54437	reqHeaders := make(http.Header)
54438	for k, v := range c.header_ {
54439		reqHeaders[k] = v
54440	}
54441	reqHeaders.Set("User-Agent", c.s.userAgent())
54442	var body io.Reader = nil
54443	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupslistinstancesrequest)
54444	if err != nil {
54445		return nil, err
54446	}
54447	reqHeaders.Set("Content-Type", "application/json")
54448	c.urlParams_.Set("alt", alt)
54449	c.urlParams_.Set("prettyPrint", "false")
54450	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances")
54451	urls += "?" + c.urlParams_.Encode()
54452	req, err := http.NewRequest("POST", urls, body)
54453	if err != nil {
54454		return nil, err
54455	}
54456	req.Header = reqHeaders
54457	googleapi.Expand(req.URL, map[string]string{
54458		"project":       c.project,
54459		"zone":          c.zone,
54460		"instanceGroup": c.instanceGroup,
54461	})
54462	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54463}
54464
54465// Do executes the "compute.instanceGroups.listInstances" call.
54466// Exactly one of *InstanceGroupsListInstances or error will be non-nil.
54467// Any non-2xx status code is an error. Response headers are in either
54468// *InstanceGroupsListInstances.ServerResponse.Header or (if a response
54469// was returned at all) in error.(*googleapi.Error).Header. Use
54470// googleapi.IsNotModified to check whether the returned error was
54471// because http.StatusNotModified was returned.
54472func (c *InstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupsListInstances, error) {
54473	gensupport.SetOptions(c.urlParams_, opts...)
54474	res, err := c.doRequest("json")
54475	if res != nil && res.StatusCode == http.StatusNotModified {
54476		if res.Body != nil {
54477			res.Body.Close()
54478		}
54479		return nil, &googleapi.Error{
54480			Code:   res.StatusCode,
54481			Header: res.Header,
54482		}
54483	}
54484	if err != nil {
54485		return nil, err
54486	}
54487	defer googleapi.CloseBody(res)
54488	if err := googleapi.CheckResponse(res); err != nil {
54489		return nil, err
54490	}
54491	ret := &InstanceGroupsListInstances{
54492		ServerResponse: googleapi.ServerResponse{
54493			Header:         res.Header,
54494			HTTPStatusCode: res.StatusCode,
54495		},
54496	}
54497	target := &ret
54498	if err := gensupport.DecodeResponse(target, res); err != nil {
54499		return nil, err
54500	}
54501	return ret, nil
54502	// {
54503	//   "description": "Lists the instances in the specified instance group.",
54504	//   "httpMethod": "POST",
54505	//   "id": "compute.instanceGroups.listInstances",
54506	//   "parameterOrder": [
54507	//     "project",
54508	//     "zone",
54509	//     "instanceGroup"
54510	//   ],
54511	//   "parameters": {
54512	//     "filter": {
54513	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
54514	//       "location": "query",
54515	//       "type": "string"
54516	//     },
54517	//     "instanceGroup": {
54518	//       "description": "The name of the instance group from which you want to generate a list of included instances.",
54519	//       "location": "path",
54520	//       "required": true,
54521	//       "type": "string"
54522	//     },
54523	//     "maxResults": {
54524	//       "default": "500",
54525	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
54526	//       "format": "uint32",
54527	//       "location": "query",
54528	//       "minimum": "0",
54529	//       "type": "integer"
54530	//     },
54531	//     "orderBy": {
54532	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
54533	//       "location": "query",
54534	//       "type": "string"
54535	//     },
54536	//     "pageToken": {
54537	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
54538	//       "location": "query",
54539	//       "type": "string"
54540	//     },
54541	//     "project": {
54542	//       "description": "Project ID for this request.",
54543	//       "location": "path",
54544	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54545	//       "required": true,
54546	//       "type": "string"
54547	//     },
54548	//     "zone": {
54549	//       "description": "The name of the zone where the instance group is located.",
54550	//       "location": "path",
54551	//       "required": true,
54552	//       "type": "string"
54553	//     }
54554	//   },
54555	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances",
54556	//   "request": {
54557	//     "$ref": "InstanceGroupsListInstancesRequest"
54558	//   },
54559	//   "response": {
54560	//     "$ref": "InstanceGroupsListInstances"
54561	//   },
54562	//   "scopes": [
54563	//     "https://www.googleapis.com/auth/cloud-platform",
54564	//     "https://www.googleapis.com/auth/compute",
54565	//     "https://www.googleapis.com/auth/compute.readonly"
54566	//   ]
54567	// }
54568
54569}
54570
54571// Pages invokes f for each page of results.
54572// A non-nil error returned from f will halt the iteration.
54573// The provided context supersedes any context provided to the Context method.
54574func (c *InstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupsListInstances) error) error {
54575	c.ctx_ = ctx
54576	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
54577	for {
54578		x, err := c.Do()
54579		if err != nil {
54580			return err
54581		}
54582		if err := f(x); err != nil {
54583			return err
54584		}
54585		if x.NextPageToken == "" {
54586			return nil
54587		}
54588		c.PageToken(x.NextPageToken)
54589	}
54590}
54591
54592// method id "compute.instanceGroups.removeInstances":
54593
54594type InstanceGroupsRemoveInstancesCall struct {
54595	s                                    *Service
54596	project                              string
54597	zone                                 string
54598	instanceGroup                        string
54599	instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest
54600	urlParams_                           gensupport.URLParams
54601	ctx_                                 context.Context
54602	header_                              http.Header
54603}
54604
54605// RemoveInstances: Removes one or more instances from the specified
54606// instance group, but does not delete those instances.
54607//
54608// If the group is part of a backend service that has enabled connection
54609// draining, it can take up to 60 seconds after the connection draining
54610// duration before the VM instance is removed or deleted.
54611func (r *InstanceGroupsService) RemoveInstances(project string, zone string, instanceGroup string, instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest) *InstanceGroupsRemoveInstancesCall {
54612	c := &InstanceGroupsRemoveInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54613	c.project = project
54614	c.zone = zone
54615	c.instanceGroup = instanceGroup
54616	c.instancegroupsremoveinstancesrequest = instancegroupsremoveinstancesrequest
54617	return c
54618}
54619
54620// RequestId sets the optional parameter "requestId": An optional
54621// request ID to identify requests. Specify a unique request ID so that
54622// if you must retry your request, the server will know to ignore the
54623// request if it has already been completed.
54624//
54625// For example, consider a situation where you make an initial request
54626// and the request times out. If you make the request again with the
54627// same request ID, the server can check if original operation with the
54628// same request ID was received, and if so, will ignore the second
54629// request. This prevents clients from accidentally creating duplicate
54630// commitments.
54631//
54632// The request ID must be a valid UUID with the exception that zero UUID
54633// is not supported (00000000-0000-0000-0000-000000000000).
54634func (c *InstanceGroupsRemoveInstancesCall) RequestId(requestId string) *InstanceGroupsRemoveInstancesCall {
54635	c.urlParams_.Set("requestId", requestId)
54636	return c
54637}
54638
54639// Fields allows partial responses to be retrieved. See
54640// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54641// for more information.
54642func (c *InstanceGroupsRemoveInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsRemoveInstancesCall {
54643	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54644	return c
54645}
54646
54647// Context sets the context to be used in this call's Do method. Any
54648// pending HTTP request will be aborted if the provided context is
54649// canceled.
54650func (c *InstanceGroupsRemoveInstancesCall) Context(ctx context.Context) *InstanceGroupsRemoveInstancesCall {
54651	c.ctx_ = ctx
54652	return c
54653}
54654
54655// Header returns an http.Header that can be modified by the caller to
54656// add HTTP headers to the request.
54657func (c *InstanceGroupsRemoveInstancesCall) Header() http.Header {
54658	if c.header_ == nil {
54659		c.header_ = make(http.Header)
54660	}
54661	return c.header_
54662}
54663
54664func (c *InstanceGroupsRemoveInstancesCall) doRequest(alt string) (*http.Response, error) {
54665	reqHeaders := make(http.Header)
54666	for k, v := range c.header_ {
54667		reqHeaders[k] = v
54668	}
54669	reqHeaders.Set("User-Agent", c.s.userAgent())
54670	var body io.Reader = nil
54671	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsremoveinstancesrequest)
54672	if err != nil {
54673		return nil, err
54674	}
54675	reqHeaders.Set("Content-Type", "application/json")
54676	c.urlParams_.Set("alt", alt)
54677	c.urlParams_.Set("prettyPrint", "false")
54678	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances")
54679	urls += "?" + c.urlParams_.Encode()
54680	req, err := http.NewRequest("POST", urls, body)
54681	if err != nil {
54682		return nil, err
54683	}
54684	req.Header = reqHeaders
54685	googleapi.Expand(req.URL, map[string]string{
54686		"project":       c.project,
54687		"zone":          c.zone,
54688		"instanceGroup": c.instanceGroup,
54689	})
54690	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54691}
54692
54693// Do executes the "compute.instanceGroups.removeInstances" call.
54694// Exactly one of *Operation or error will be non-nil. Any non-2xx
54695// status code is an error. Response headers are in either
54696// *Operation.ServerResponse.Header or (if a response was returned at
54697// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54698// to check whether the returned error was because
54699// http.StatusNotModified was returned.
54700func (c *InstanceGroupsRemoveInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54701	gensupport.SetOptions(c.urlParams_, opts...)
54702	res, err := c.doRequest("json")
54703	if res != nil && res.StatusCode == http.StatusNotModified {
54704		if res.Body != nil {
54705			res.Body.Close()
54706		}
54707		return nil, &googleapi.Error{
54708			Code:   res.StatusCode,
54709			Header: res.Header,
54710		}
54711	}
54712	if err != nil {
54713		return nil, err
54714	}
54715	defer googleapi.CloseBody(res)
54716	if err := googleapi.CheckResponse(res); err != nil {
54717		return nil, err
54718	}
54719	ret := &Operation{
54720		ServerResponse: googleapi.ServerResponse{
54721			Header:         res.Header,
54722			HTTPStatusCode: res.StatusCode,
54723		},
54724	}
54725	target := &ret
54726	if err := gensupport.DecodeResponse(target, res); err != nil {
54727		return nil, err
54728	}
54729	return ret, nil
54730	// {
54731	//   "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.",
54732	//   "httpMethod": "POST",
54733	//   "id": "compute.instanceGroups.removeInstances",
54734	//   "parameterOrder": [
54735	//     "project",
54736	//     "zone",
54737	//     "instanceGroup"
54738	//   ],
54739	//   "parameters": {
54740	//     "instanceGroup": {
54741	//       "description": "The name of the instance group where the specified instances will be removed.",
54742	//       "location": "path",
54743	//       "required": true,
54744	//       "type": "string"
54745	//     },
54746	//     "project": {
54747	//       "description": "Project ID for this request.",
54748	//       "location": "path",
54749	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54750	//       "required": true,
54751	//       "type": "string"
54752	//     },
54753	//     "requestId": {
54754	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54755	//       "location": "query",
54756	//       "type": "string"
54757	//     },
54758	//     "zone": {
54759	//       "description": "The name of the zone where the instance group is located.",
54760	//       "location": "path",
54761	//       "required": true,
54762	//       "type": "string"
54763	//     }
54764	//   },
54765	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances",
54766	//   "request": {
54767	//     "$ref": "InstanceGroupsRemoveInstancesRequest"
54768	//   },
54769	//   "response": {
54770	//     "$ref": "Operation"
54771	//   },
54772	//   "scopes": [
54773	//     "https://www.googleapis.com/auth/cloud-platform",
54774	//     "https://www.googleapis.com/auth/compute"
54775	//   ]
54776	// }
54777
54778}
54779
54780// method id "compute.instanceGroups.setNamedPorts":
54781
54782type InstanceGroupsSetNamedPortsCall struct {
54783	s                                  *Service
54784	project                            string
54785	zone                               string
54786	instanceGroup                      string
54787	instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest
54788	urlParams_                         gensupport.URLParams
54789	ctx_                               context.Context
54790	header_                            http.Header
54791}
54792
54793// SetNamedPorts: Sets the named ports for the specified instance group.
54794func (r *InstanceGroupsService) SetNamedPorts(project string, zone string, instanceGroup string, instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest) *InstanceGroupsSetNamedPortsCall {
54795	c := &InstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54796	c.project = project
54797	c.zone = zone
54798	c.instanceGroup = instanceGroup
54799	c.instancegroupssetnamedportsrequest = instancegroupssetnamedportsrequest
54800	return c
54801}
54802
54803// RequestId sets the optional parameter "requestId": An optional
54804// request ID to identify requests. Specify a unique request ID so that
54805// if you must retry your request, the server will know to ignore the
54806// request if it has already been completed.
54807//
54808// For example, consider a situation where you make an initial request
54809// and the request times out. If you make the request again with the
54810// same request ID, the server can check if original operation with the
54811// same request ID was received, and if so, will ignore the second
54812// request. This prevents clients from accidentally creating duplicate
54813// commitments.
54814//
54815// The request ID must be a valid UUID with the exception that zero UUID
54816// is not supported (00000000-0000-0000-0000-000000000000).
54817func (c *InstanceGroupsSetNamedPortsCall) RequestId(requestId string) *InstanceGroupsSetNamedPortsCall {
54818	c.urlParams_.Set("requestId", requestId)
54819	return c
54820}
54821
54822// Fields allows partial responses to be retrieved. See
54823// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54824// for more information.
54825func (c *InstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *InstanceGroupsSetNamedPortsCall {
54826	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54827	return c
54828}
54829
54830// Context sets the context to be used in this call's Do method. Any
54831// pending HTTP request will be aborted if the provided context is
54832// canceled.
54833func (c *InstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *InstanceGroupsSetNamedPortsCall {
54834	c.ctx_ = ctx
54835	return c
54836}
54837
54838// Header returns an http.Header that can be modified by the caller to
54839// add HTTP headers to the request.
54840func (c *InstanceGroupsSetNamedPortsCall) Header() http.Header {
54841	if c.header_ == nil {
54842		c.header_ = make(http.Header)
54843	}
54844	return c.header_
54845}
54846
54847func (c *InstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
54848	reqHeaders := make(http.Header)
54849	for k, v := range c.header_ {
54850		reqHeaders[k] = v
54851	}
54852	reqHeaders.Set("User-Agent", c.s.userAgent())
54853	var body io.Reader = nil
54854	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupssetnamedportsrequest)
54855	if err != nil {
54856		return nil, err
54857	}
54858	reqHeaders.Set("Content-Type", "application/json")
54859	c.urlParams_.Set("alt", alt)
54860	c.urlParams_.Set("prettyPrint", "false")
54861	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts")
54862	urls += "?" + c.urlParams_.Encode()
54863	req, err := http.NewRequest("POST", urls, body)
54864	if err != nil {
54865		return nil, err
54866	}
54867	req.Header = reqHeaders
54868	googleapi.Expand(req.URL, map[string]string{
54869		"project":       c.project,
54870		"zone":          c.zone,
54871		"instanceGroup": c.instanceGroup,
54872	})
54873	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54874}
54875
54876// Do executes the "compute.instanceGroups.setNamedPorts" call.
54877// Exactly one of *Operation or error will be non-nil. Any non-2xx
54878// status code is an error. Response headers are in either
54879// *Operation.ServerResponse.Header or (if a response was returned at
54880// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54881// to check whether the returned error was because
54882// http.StatusNotModified was returned.
54883func (c *InstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54884	gensupport.SetOptions(c.urlParams_, opts...)
54885	res, err := c.doRequest("json")
54886	if res != nil && res.StatusCode == http.StatusNotModified {
54887		if res.Body != nil {
54888			res.Body.Close()
54889		}
54890		return nil, &googleapi.Error{
54891			Code:   res.StatusCode,
54892			Header: res.Header,
54893		}
54894	}
54895	if err != nil {
54896		return nil, err
54897	}
54898	defer googleapi.CloseBody(res)
54899	if err := googleapi.CheckResponse(res); err != nil {
54900		return nil, err
54901	}
54902	ret := &Operation{
54903		ServerResponse: googleapi.ServerResponse{
54904			Header:         res.Header,
54905			HTTPStatusCode: res.StatusCode,
54906		},
54907	}
54908	target := &ret
54909	if err := gensupport.DecodeResponse(target, res); err != nil {
54910		return nil, err
54911	}
54912	return ret, nil
54913	// {
54914	//   "description": "Sets the named ports for the specified instance group.",
54915	//   "httpMethod": "POST",
54916	//   "id": "compute.instanceGroups.setNamedPorts",
54917	//   "parameterOrder": [
54918	//     "project",
54919	//     "zone",
54920	//     "instanceGroup"
54921	//   ],
54922	//   "parameters": {
54923	//     "instanceGroup": {
54924	//       "description": "The name of the instance group where the named ports are updated.",
54925	//       "location": "path",
54926	//       "required": true,
54927	//       "type": "string"
54928	//     },
54929	//     "project": {
54930	//       "description": "Project ID for this request.",
54931	//       "location": "path",
54932	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54933	//       "required": true,
54934	//       "type": "string"
54935	//     },
54936	//     "requestId": {
54937	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54938	//       "location": "query",
54939	//       "type": "string"
54940	//     },
54941	//     "zone": {
54942	//       "description": "The name of the zone where the instance group is located.",
54943	//       "location": "path",
54944	//       "required": true,
54945	//       "type": "string"
54946	//     }
54947	//   },
54948	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts",
54949	//   "request": {
54950	//     "$ref": "InstanceGroupsSetNamedPortsRequest"
54951	//   },
54952	//   "response": {
54953	//     "$ref": "Operation"
54954	//   },
54955	//   "scopes": [
54956	//     "https://www.googleapis.com/auth/cloud-platform",
54957	//     "https://www.googleapis.com/auth/compute"
54958	//   ]
54959	// }
54960
54961}
54962
54963// method id "compute.instanceTemplates.delete":
54964
54965type InstanceTemplatesDeleteCall struct {
54966	s                *Service
54967	project          string
54968	instanceTemplate string
54969	urlParams_       gensupport.URLParams
54970	ctx_             context.Context
54971	header_          http.Header
54972}
54973
54974// Delete: Deletes the specified instance template. Deleting an instance
54975// template is permanent and cannot be undone. It is not possible to
54976// delete templates that are already in use by a managed instance group.
54977// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/delete
54978func (r *InstanceTemplatesService) Delete(project string, instanceTemplate string) *InstanceTemplatesDeleteCall {
54979	c := &InstanceTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54980	c.project = project
54981	c.instanceTemplate = instanceTemplate
54982	return c
54983}
54984
54985// RequestId sets the optional parameter "requestId": An optional
54986// request ID to identify requests. Specify a unique request ID so that
54987// if you must retry your request, the server will know to ignore the
54988// request if it has already been completed.
54989//
54990// For example, consider a situation where you make an initial request
54991// and the request times out. If you make the request again with the
54992// same request ID, the server can check if original operation with the
54993// same request ID was received, and if so, will ignore the second
54994// request. This prevents clients from accidentally creating duplicate
54995// commitments.
54996//
54997// The request ID must be a valid UUID with the exception that zero UUID
54998// is not supported (00000000-0000-0000-0000-000000000000).
54999func (c *InstanceTemplatesDeleteCall) RequestId(requestId string) *InstanceTemplatesDeleteCall {
55000	c.urlParams_.Set("requestId", requestId)
55001	return c
55002}
55003
55004// Fields allows partial responses to be retrieved. See
55005// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55006// for more information.
55007func (c *InstanceTemplatesDeleteCall) Fields(s ...googleapi.Field) *InstanceTemplatesDeleteCall {
55008	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55009	return c
55010}
55011
55012// Context sets the context to be used in this call's Do method. Any
55013// pending HTTP request will be aborted if the provided context is
55014// canceled.
55015func (c *InstanceTemplatesDeleteCall) Context(ctx context.Context) *InstanceTemplatesDeleteCall {
55016	c.ctx_ = ctx
55017	return c
55018}
55019
55020// Header returns an http.Header that can be modified by the caller to
55021// add HTTP headers to the request.
55022func (c *InstanceTemplatesDeleteCall) Header() http.Header {
55023	if c.header_ == nil {
55024		c.header_ = make(http.Header)
55025	}
55026	return c.header_
55027}
55028
55029func (c *InstanceTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
55030	reqHeaders := make(http.Header)
55031	for k, v := range c.header_ {
55032		reqHeaders[k] = v
55033	}
55034	reqHeaders.Set("User-Agent", c.s.userAgent())
55035	var body io.Reader = nil
55036	c.urlParams_.Set("alt", alt)
55037	c.urlParams_.Set("prettyPrint", "false")
55038	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{instanceTemplate}")
55039	urls += "?" + c.urlParams_.Encode()
55040	req, err := http.NewRequest("DELETE", urls, body)
55041	if err != nil {
55042		return nil, err
55043	}
55044	req.Header = reqHeaders
55045	googleapi.Expand(req.URL, map[string]string{
55046		"project":          c.project,
55047		"instanceTemplate": c.instanceTemplate,
55048	})
55049	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55050}
55051
55052// Do executes the "compute.instanceTemplates.delete" call.
55053// Exactly one of *Operation or error will be non-nil. Any non-2xx
55054// status code is an error. Response headers are in either
55055// *Operation.ServerResponse.Header or (if a response was returned at
55056// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55057// to check whether the returned error was because
55058// http.StatusNotModified was returned.
55059func (c *InstanceTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55060	gensupport.SetOptions(c.urlParams_, opts...)
55061	res, err := c.doRequest("json")
55062	if res != nil && res.StatusCode == http.StatusNotModified {
55063		if res.Body != nil {
55064			res.Body.Close()
55065		}
55066		return nil, &googleapi.Error{
55067			Code:   res.StatusCode,
55068			Header: res.Header,
55069		}
55070	}
55071	if err != nil {
55072		return nil, err
55073	}
55074	defer googleapi.CloseBody(res)
55075	if err := googleapi.CheckResponse(res); err != nil {
55076		return nil, err
55077	}
55078	ret := &Operation{
55079		ServerResponse: googleapi.ServerResponse{
55080			Header:         res.Header,
55081			HTTPStatusCode: res.StatusCode,
55082		},
55083	}
55084	target := &ret
55085	if err := gensupport.DecodeResponse(target, res); err != nil {
55086		return nil, err
55087	}
55088	return ret, nil
55089	// {
55090	//   "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.",
55091	//   "httpMethod": "DELETE",
55092	//   "id": "compute.instanceTemplates.delete",
55093	//   "parameterOrder": [
55094	//     "project",
55095	//     "instanceTemplate"
55096	//   ],
55097	//   "parameters": {
55098	//     "instanceTemplate": {
55099	//       "description": "The name of the instance template to delete.",
55100	//       "location": "path",
55101	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55102	//       "required": true,
55103	//       "type": "string"
55104	//     },
55105	//     "project": {
55106	//       "description": "Project ID for this request.",
55107	//       "location": "path",
55108	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55109	//       "required": true,
55110	//       "type": "string"
55111	//     },
55112	//     "requestId": {
55113	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55114	//       "location": "query",
55115	//       "type": "string"
55116	//     }
55117	//   },
55118	//   "path": "{project}/global/instanceTemplates/{instanceTemplate}",
55119	//   "response": {
55120	//     "$ref": "Operation"
55121	//   },
55122	//   "scopes": [
55123	//     "https://www.googleapis.com/auth/cloud-platform",
55124	//     "https://www.googleapis.com/auth/compute"
55125	//   ]
55126	// }
55127
55128}
55129
55130// method id "compute.instanceTemplates.get":
55131
55132type InstanceTemplatesGetCall struct {
55133	s                *Service
55134	project          string
55135	instanceTemplate string
55136	urlParams_       gensupport.URLParams
55137	ifNoneMatch_     string
55138	ctx_             context.Context
55139	header_          http.Header
55140}
55141
55142// Get: Returns the specified instance template. Gets a list of
55143// available instance templates by making a list() request.
55144// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/get
55145func (r *InstanceTemplatesService) Get(project string, instanceTemplate string) *InstanceTemplatesGetCall {
55146	c := &InstanceTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55147	c.project = project
55148	c.instanceTemplate = instanceTemplate
55149	return c
55150}
55151
55152// Fields allows partial responses to be retrieved. See
55153// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55154// for more information.
55155func (c *InstanceTemplatesGetCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetCall {
55156	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55157	return c
55158}
55159
55160// IfNoneMatch sets the optional parameter which makes the operation
55161// fail if the object's ETag matches the given value. This is useful for
55162// getting updates only after the object has changed since the last
55163// request. Use googleapi.IsNotModified to check whether the response
55164// error from Do is the result of In-None-Match.
55165func (c *InstanceTemplatesGetCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetCall {
55166	c.ifNoneMatch_ = entityTag
55167	return c
55168}
55169
55170// Context sets the context to be used in this call's Do method. Any
55171// pending HTTP request will be aborted if the provided context is
55172// canceled.
55173func (c *InstanceTemplatesGetCall) Context(ctx context.Context) *InstanceTemplatesGetCall {
55174	c.ctx_ = ctx
55175	return c
55176}
55177
55178// Header returns an http.Header that can be modified by the caller to
55179// add HTTP headers to the request.
55180func (c *InstanceTemplatesGetCall) Header() http.Header {
55181	if c.header_ == nil {
55182		c.header_ = make(http.Header)
55183	}
55184	return c.header_
55185}
55186
55187func (c *InstanceTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
55188	reqHeaders := make(http.Header)
55189	for k, v := range c.header_ {
55190		reqHeaders[k] = v
55191	}
55192	reqHeaders.Set("User-Agent", c.s.userAgent())
55193	if c.ifNoneMatch_ != "" {
55194		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55195	}
55196	var body io.Reader = nil
55197	c.urlParams_.Set("alt", alt)
55198	c.urlParams_.Set("prettyPrint", "false")
55199	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{instanceTemplate}")
55200	urls += "?" + c.urlParams_.Encode()
55201	req, err := http.NewRequest("GET", urls, body)
55202	if err != nil {
55203		return nil, err
55204	}
55205	req.Header = reqHeaders
55206	googleapi.Expand(req.URL, map[string]string{
55207		"project":          c.project,
55208		"instanceTemplate": c.instanceTemplate,
55209	})
55210	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55211}
55212
55213// Do executes the "compute.instanceTemplates.get" call.
55214// Exactly one of *InstanceTemplate or error will be non-nil. Any
55215// non-2xx status code is an error. Response headers are in either
55216// *InstanceTemplate.ServerResponse.Header or (if a response was
55217// returned at all) in error.(*googleapi.Error).Header. Use
55218// googleapi.IsNotModified to check whether the returned error was
55219// because http.StatusNotModified was returned.
55220func (c *InstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*InstanceTemplate, error) {
55221	gensupport.SetOptions(c.urlParams_, opts...)
55222	res, err := c.doRequest("json")
55223	if res != nil && res.StatusCode == http.StatusNotModified {
55224		if res.Body != nil {
55225			res.Body.Close()
55226		}
55227		return nil, &googleapi.Error{
55228			Code:   res.StatusCode,
55229			Header: res.Header,
55230		}
55231	}
55232	if err != nil {
55233		return nil, err
55234	}
55235	defer googleapi.CloseBody(res)
55236	if err := googleapi.CheckResponse(res); err != nil {
55237		return nil, err
55238	}
55239	ret := &InstanceTemplate{
55240		ServerResponse: googleapi.ServerResponse{
55241			Header:         res.Header,
55242			HTTPStatusCode: res.StatusCode,
55243		},
55244	}
55245	target := &ret
55246	if err := gensupport.DecodeResponse(target, res); err != nil {
55247		return nil, err
55248	}
55249	return ret, nil
55250	// {
55251	//   "description": "Returns the specified instance template. Gets a list of available instance templates by making a list() request.",
55252	//   "httpMethod": "GET",
55253	//   "id": "compute.instanceTemplates.get",
55254	//   "parameterOrder": [
55255	//     "project",
55256	//     "instanceTemplate"
55257	//   ],
55258	//   "parameters": {
55259	//     "instanceTemplate": {
55260	//       "description": "The name of the instance template.",
55261	//       "location": "path",
55262	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55263	//       "required": true,
55264	//       "type": "string"
55265	//     },
55266	//     "project": {
55267	//       "description": "Project ID for this request.",
55268	//       "location": "path",
55269	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55270	//       "required": true,
55271	//       "type": "string"
55272	//     }
55273	//   },
55274	//   "path": "{project}/global/instanceTemplates/{instanceTemplate}",
55275	//   "response": {
55276	//     "$ref": "InstanceTemplate"
55277	//   },
55278	//   "scopes": [
55279	//     "https://www.googleapis.com/auth/cloud-platform",
55280	//     "https://www.googleapis.com/auth/compute",
55281	//     "https://www.googleapis.com/auth/compute.readonly"
55282	//   ]
55283	// }
55284
55285}
55286
55287// method id "compute.instanceTemplates.getIamPolicy":
55288
55289type InstanceTemplatesGetIamPolicyCall struct {
55290	s            *Service
55291	project      string
55292	resource     string
55293	urlParams_   gensupport.URLParams
55294	ifNoneMatch_ string
55295	ctx_         context.Context
55296	header_      http.Header
55297}
55298
55299// GetIamPolicy: Gets the access control policy for a resource. May be
55300// empty if no such policy or resource exists.
55301func (r *InstanceTemplatesService) GetIamPolicy(project string, resource string) *InstanceTemplatesGetIamPolicyCall {
55302	c := &InstanceTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55303	c.project = project
55304	c.resource = resource
55305	return c
55306}
55307
55308// Fields allows partial responses to be retrieved. See
55309// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55310// for more information.
55311func (c *InstanceTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetIamPolicyCall {
55312	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55313	return c
55314}
55315
55316// IfNoneMatch sets the optional parameter which makes the operation
55317// fail if the object's ETag matches the given value. This is useful for
55318// getting updates only after the object has changed since the last
55319// request. Use googleapi.IsNotModified to check whether the response
55320// error from Do is the result of In-None-Match.
55321func (c *InstanceTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetIamPolicyCall {
55322	c.ifNoneMatch_ = entityTag
55323	return c
55324}
55325
55326// Context sets the context to be used in this call's Do method. Any
55327// pending HTTP request will be aborted if the provided context is
55328// canceled.
55329func (c *InstanceTemplatesGetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesGetIamPolicyCall {
55330	c.ctx_ = ctx
55331	return c
55332}
55333
55334// Header returns an http.Header that can be modified by the caller to
55335// add HTTP headers to the request.
55336func (c *InstanceTemplatesGetIamPolicyCall) Header() http.Header {
55337	if c.header_ == nil {
55338		c.header_ = make(http.Header)
55339	}
55340	return c.header_
55341}
55342
55343func (c *InstanceTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
55344	reqHeaders := make(http.Header)
55345	for k, v := range c.header_ {
55346		reqHeaders[k] = v
55347	}
55348	reqHeaders.Set("User-Agent", c.s.userAgent())
55349	if c.ifNoneMatch_ != "" {
55350		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55351	}
55352	var body io.Reader = nil
55353	c.urlParams_.Set("alt", alt)
55354	c.urlParams_.Set("prettyPrint", "false")
55355	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/getIamPolicy")
55356	urls += "?" + c.urlParams_.Encode()
55357	req, err := http.NewRequest("GET", urls, body)
55358	if err != nil {
55359		return nil, err
55360	}
55361	req.Header = reqHeaders
55362	googleapi.Expand(req.URL, map[string]string{
55363		"project":  c.project,
55364		"resource": c.resource,
55365	})
55366	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55367}
55368
55369// Do executes the "compute.instanceTemplates.getIamPolicy" call.
55370// Exactly one of *Policy or error will be non-nil. Any non-2xx status
55371// code is an error. Response headers are in either
55372// *Policy.ServerResponse.Header or (if a response was returned at all)
55373// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
55374// check whether the returned error was because http.StatusNotModified
55375// was returned.
55376func (c *InstanceTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
55377	gensupport.SetOptions(c.urlParams_, opts...)
55378	res, err := c.doRequest("json")
55379	if res != nil && res.StatusCode == http.StatusNotModified {
55380		if res.Body != nil {
55381			res.Body.Close()
55382		}
55383		return nil, &googleapi.Error{
55384			Code:   res.StatusCode,
55385			Header: res.Header,
55386		}
55387	}
55388	if err != nil {
55389		return nil, err
55390	}
55391	defer googleapi.CloseBody(res)
55392	if err := googleapi.CheckResponse(res); err != nil {
55393		return nil, err
55394	}
55395	ret := &Policy{
55396		ServerResponse: googleapi.ServerResponse{
55397			Header:         res.Header,
55398			HTTPStatusCode: res.StatusCode,
55399		},
55400	}
55401	target := &ret
55402	if err := gensupport.DecodeResponse(target, res); err != nil {
55403		return nil, err
55404	}
55405	return ret, nil
55406	// {
55407	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
55408	//   "httpMethod": "GET",
55409	//   "id": "compute.instanceTemplates.getIamPolicy",
55410	//   "parameterOrder": [
55411	//     "project",
55412	//     "resource"
55413	//   ],
55414	//   "parameters": {
55415	//     "project": {
55416	//       "description": "Project ID for this request.",
55417	//       "location": "path",
55418	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55419	//       "required": true,
55420	//       "type": "string"
55421	//     },
55422	//     "resource": {
55423	//       "description": "Name or id of the resource for this request.",
55424	//       "location": "path",
55425	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55426	//       "required": true,
55427	//       "type": "string"
55428	//     }
55429	//   },
55430	//   "path": "{project}/global/instanceTemplates/{resource}/getIamPolicy",
55431	//   "response": {
55432	//     "$ref": "Policy"
55433	//   },
55434	//   "scopes": [
55435	//     "https://www.googleapis.com/auth/cloud-platform",
55436	//     "https://www.googleapis.com/auth/compute",
55437	//     "https://www.googleapis.com/auth/compute.readonly"
55438	//   ]
55439	// }
55440
55441}
55442
55443// method id "compute.instanceTemplates.insert":
55444
55445type InstanceTemplatesInsertCall struct {
55446	s                *Service
55447	project          string
55448	instancetemplate *InstanceTemplate
55449	urlParams_       gensupport.URLParams
55450	ctx_             context.Context
55451	header_          http.Header
55452}
55453
55454// Insert: Creates an instance template in the specified project using
55455// the data that is included in the request. If you are creating a new
55456// template to update an existing instance group, your new instance
55457// template must use the same network or, if applicable, the same
55458// subnetwork as the original template.
55459// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/insert
55460func (r *InstanceTemplatesService) Insert(project string, instancetemplate *InstanceTemplate) *InstanceTemplatesInsertCall {
55461	c := &InstanceTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55462	c.project = project
55463	c.instancetemplate = instancetemplate
55464	return c
55465}
55466
55467// RequestId sets the optional parameter "requestId": An optional
55468// request ID to identify requests. Specify a unique request ID so that
55469// if you must retry your request, the server will know to ignore the
55470// request if it has already been completed.
55471//
55472// For example, consider a situation where you make an initial request
55473// and the request times out. If you make the request again with the
55474// same request ID, the server can check if original operation with the
55475// same request ID was received, and if so, will ignore the second
55476// request. This prevents clients from accidentally creating duplicate
55477// commitments.
55478//
55479// The request ID must be a valid UUID with the exception that zero UUID
55480// is not supported (00000000-0000-0000-0000-000000000000).
55481func (c *InstanceTemplatesInsertCall) RequestId(requestId string) *InstanceTemplatesInsertCall {
55482	c.urlParams_.Set("requestId", requestId)
55483	return c
55484}
55485
55486// Fields allows partial responses to be retrieved. See
55487// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55488// for more information.
55489func (c *InstanceTemplatesInsertCall) Fields(s ...googleapi.Field) *InstanceTemplatesInsertCall {
55490	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55491	return c
55492}
55493
55494// Context sets the context to be used in this call's Do method. Any
55495// pending HTTP request will be aborted if the provided context is
55496// canceled.
55497func (c *InstanceTemplatesInsertCall) Context(ctx context.Context) *InstanceTemplatesInsertCall {
55498	c.ctx_ = ctx
55499	return c
55500}
55501
55502// Header returns an http.Header that can be modified by the caller to
55503// add HTTP headers to the request.
55504func (c *InstanceTemplatesInsertCall) Header() http.Header {
55505	if c.header_ == nil {
55506		c.header_ = make(http.Header)
55507	}
55508	return c.header_
55509}
55510
55511func (c *InstanceTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
55512	reqHeaders := make(http.Header)
55513	for k, v := range c.header_ {
55514		reqHeaders[k] = v
55515	}
55516	reqHeaders.Set("User-Agent", c.s.userAgent())
55517	var body io.Reader = nil
55518	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancetemplate)
55519	if err != nil {
55520		return nil, err
55521	}
55522	reqHeaders.Set("Content-Type", "application/json")
55523	c.urlParams_.Set("alt", alt)
55524	c.urlParams_.Set("prettyPrint", "false")
55525	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates")
55526	urls += "?" + c.urlParams_.Encode()
55527	req, err := http.NewRequest("POST", urls, body)
55528	if err != nil {
55529		return nil, err
55530	}
55531	req.Header = reqHeaders
55532	googleapi.Expand(req.URL, map[string]string{
55533		"project": c.project,
55534	})
55535	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55536}
55537
55538// Do executes the "compute.instanceTemplates.insert" call.
55539// Exactly one of *Operation or error will be non-nil. Any non-2xx
55540// status code is an error. Response headers are in either
55541// *Operation.ServerResponse.Header or (if a response was returned at
55542// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55543// to check whether the returned error was because
55544// http.StatusNotModified was returned.
55545func (c *InstanceTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55546	gensupport.SetOptions(c.urlParams_, opts...)
55547	res, err := c.doRequest("json")
55548	if res != nil && res.StatusCode == http.StatusNotModified {
55549		if res.Body != nil {
55550			res.Body.Close()
55551		}
55552		return nil, &googleapi.Error{
55553			Code:   res.StatusCode,
55554			Header: res.Header,
55555		}
55556	}
55557	if err != nil {
55558		return nil, err
55559	}
55560	defer googleapi.CloseBody(res)
55561	if err := googleapi.CheckResponse(res); err != nil {
55562		return nil, err
55563	}
55564	ret := &Operation{
55565		ServerResponse: googleapi.ServerResponse{
55566			Header:         res.Header,
55567			HTTPStatusCode: res.StatusCode,
55568		},
55569	}
55570	target := &ret
55571	if err := gensupport.DecodeResponse(target, res); err != nil {
55572		return nil, err
55573	}
55574	return ret, nil
55575	// {
55576	//   "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.",
55577	//   "httpMethod": "POST",
55578	//   "id": "compute.instanceTemplates.insert",
55579	//   "parameterOrder": [
55580	//     "project"
55581	//   ],
55582	//   "parameters": {
55583	//     "project": {
55584	//       "description": "Project ID for this request.",
55585	//       "location": "path",
55586	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55587	//       "required": true,
55588	//       "type": "string"
55589	//     },
55590	//     "requestId": {
55591	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55592	//       "location": "query",
55593	//       "type": "string"
55594	//     }
55595	//   },
55596	//   "path": "{project}/global/instanceTemplates",
55597	//   "request": {
55598	//     "$ref": "InstanceTemplate"
55599	//   },
55600	//   "response": {
55601	//     "$ref": "Operation"
55602	//   },
55603	//   "scopes": [
55604	//     "https://www.googleapis.com/auth/cloud-platform",
55605	//     "https://www.googleapis.com/auth/compute"
55606	//   ]
55607	// }
55608
55609}
55610
55611// method id "compute.instanceTemplates.list":
55612
55613type InstanceTemplatesListCall struct {
55614	s            *Service
55615	project      string
55616	urlParams_   gensupport.URLParams
55617	ifNoneMatch_ string
55618	ctx_         context.Context
55619	header_      http.Header
55620}
55621
55622// List: Retrieves a list of instance templates that are contained
55623// within the specified project.
55624// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/list
55625func (r *InstanceTemplatesService) List(project string) *InstanceTemplatesListCall {
55626	c := &InstanceTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55627	c.project = project
55628	return c
55629}
55630
55631// Filter sets the optional parameter "filter": A filter expression that
55632// filters resources listed in the response. The expression must specify
55633// the field name, a comparison operator, and the value that you want to
55634// use for filtering. The value must be a string, a number, or a
55635// boolean. The comparison operator must be either =, !=, >, or <.
55636//
55637// For example, if you are filtering Compute Engine instances, you can
55638// exclude instances named example-instance by specifying name !=
55639// example-instance.
55640//
55641// You can also filter nested fields. For example, you could specify
55642// scheduling.automaticRestart = false to include instances only if they
55643// are not scheduled for automatic restarts. You can use filtering on
55644// nested fields to filter based on resource labels.
55645//
55646// To filter on multiple expressions, provide each separate expression
55647// within parentheses. For example, (scheduling.automaticRestart = true)
55648// (cpuPlatform = "Intel Skylake"). By default, each expression is an
55649// AND expression. However, you can include AND and OR expressions
55650// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
55651// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
55652// true).
55653func (c *InstanceTemplatesListCall) Filter(filter string) *InstanceTemplatesListCall {
55654	c.urlParams_.Set("filter", filter)
55655	return c
55656}
55657
55658// MaxResults sets the optional parameter "maxResults": The maximum
55659// number of results per page that should be returned. If the number of
55660// available results is larger than maxResults, Compute Engine returns a
55661// nextPageToken that can be used to get the next page of results in
55662// subsequent list requests. Acceptable values are 0 to 500, inclusive.
55663// (Default: 500)
55664func (c *InstanceTemplatesListCall) MaxResults(maxResults int64) *InstanceTemplatesListCall {
55665	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
55666	return c
55667}
55668
55669// OrderBy sets the optional parameter "orderBy": Sorts list results by
55670// a certain order. By default, results are returned in alphanumerical
55671// order based on the resource name.
55672//
55673// You can also sort results in descending order based on the creation
55674// timestamp using orderBy="creationTimestamp desc". This sorts results
55675// based on the creationTimestamp field in reverse chronological order
55676// (newest result first). Use this to sort resources like operations so
55677// that the newest operation is returned first.
55678//
55679// Currently, only sorting by name or creationTimestamp desc is
55680// supported.
55681func (c *InstanceTemplatesListCall) OrderBy(orderBy string) *InstanceTemplatesListCall {
55682	c.urlParams_.Set("orderBy", orderBy)
55683	return c
55684}
55685
55686// PageToken sets the optional parameter "pageToken": Specifies a page
55687// token to use. Set pageToken to the nextPageToken returned by a
55688// previous list request to get the next page of results.
55689func (c *InstanceTemplatesListCall) PageToken(pageToken string) *InstanceTemplatesListCall {
55690	c.urlParams_.Set("pageToken", pageToken)
55691	return c
55692}
55693
55694// Fields allows partial responses to be retrieved. See
55695// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55696// for more information.
55697func (c *InstanceTemplatesListCall) Fields(s ...googleapi.Field) *InstanceTemplatesListCall {
55698	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55699	return c
55700}
55701
55702// IfNoneMatch sets the optional parameter which makes the operation
55703// fail if the object's ETag matches the given value. This is useful for
55704// getting updates only after the object has changed since the last
55705// request. Use googleapi.IsNotModified to check whether the response
55706// error from Do is the result of In-None-Match.
55707func (c *InstanceTemplatesListCall) IfNoneMatch(entityTag string) *InstanceTemplatesListCall {
55708	c.ifNoneMatch_ = entityTag
55709	return c
55710}
55711
55712// Context sets the context to be used in this call's Do method. Any
55713// pending HTTP request will be aborted if the provided context is
55714// canceled.
55715func (c *InstanceTemplatesListCall) Context(ctx context.Context) *InstanceTemplatesListCall {
55716	c.ctx_ = ctx
55717	return c
55718}
55719
55720// Header returns an http.Header that can be modified by the caller to
55721// add HTTP headers to the request.
55722func (c *InstanceTemplatesListCall) Header() http.Header {
55723	if c.header_ == nil {
55724		c.header_ = make(http.Header)
55725	}
55726	return c.header_
55727}
55728
55729func (c *InstanceTemplatesListCall) doRequest(alt string) (*http.Response, error) {
55730	reqHeaders := make(http.Header)
55731	for k, v := range c.header_ {
55732		reqHeaders[k] = v
55733	}
55734	reqHeaders.Set("User-Agent", c.s.userAgent())
55735	if c.ifNoneMatch_ != "" {
55736		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55737	}
55738	var body io.Reader = nil
55739	c.urlParams_.Set("alt", alt)
55740	c.urlParams_.Set("prettyPrint", "false")
55741	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates")
55742	urls += "?" + c.urlParams_.Encode()
55743	req, err := http.NewRequest("GET", urls, body)
55744	if err != nil {
55745		return nil, err
55746	}
55747	req.Header = reqHeaders
55748	googleapi.Expand(req.URL, map[string]string{
55749		"project": c.project,
55750	})
55751	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55752}
55753
55754// Do executes the "compute.instanceTemplates.list" call.
55755// Exactly one of *InstanceTemplateList or error will be non-nil. Any
55756// non-2xx status code is an error. Response headers are in either
55757// *InstanceTemplateList.ServerResponse.Header or (if a response was
55758// returned at all) in error.(*googleapi.Error).Header. Use
55759// googleapi.IsNotModified to check whether the returned error was
55760// because http.StatusNotModified was returned.
55761func (c *InstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateList, error) {
55762	gensupport.SetOptions(c.urlParams_, opts...)
55763	res, err := c.doRequest("json")
55764	if res != nil && res.StatusCode == http.StatusNotModified {
55765		if res.Body != nil {
55766			res.Body.Close()
55767		}
55768		return nil, &googleapi.Error{
55769			Code:   res.StatusCode,
55770			Header: res.Header,
55771		}
55772	}
55773	if err != nil {
55774		return nil, err
55775	}
55776	defer googleapi.CloseBody(res)
55777	if err := googleapi.CheckResponse(res); err != nil {
55778		return nil, err
55779	}
55780	ret := &InstanceTemplateList{
55781		ServerResponse: googleapi.ServerResponse{
55782			Header:         res.Header,
55783			HTTPStatusCode: res.StatusCode,
55784		},
55785	}
55786	target := &ret
55787	if err := gensupport.DecodeResponse(target, res); err != nil {
55788		return nil, err
55789	}
55790	return ret, nil
55791	// {
55792	//   "description": "Retrieves a list of instance templates that are contained within the specified project.",
55793	//   "httpMethod": "GET",
55794	//   "id": "compute.instanceTemplates.list",
55795	//   "parameterOrder": [
55796	//     "project"
55797	//   ],
55798	//   "parameters": {
55799	//     "filter": {
55800	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
55801	//       "location": "query",
55802	//       "type": "string"
55803	//     },
55804	//     "maxResults": {
55805	//       "default": "500",
55806	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
55807	//       "format": "uint32",
55808	//       "location": "query",
55809	//       "minimum": "0",
55810	//       "type": "integer"
55811	//     },
55812	//     "orderBy": {
55813	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
55814	//       "location": "query",
55815	//       "type": "string"
55816	//     },
55817	//     "pageToken": {
55818	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
55819	//       "location": "query",
55820	//       "type": "string"
55821	//     },
55822	//     "project": {
55823	//       "description": "Project ID for this request.",
55824	//       "location": "path",
55825	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55826	//       "required": true,
55827	//       "type": "string"
55828	//     }
55829	//   },
55830	//   "path": "{project}/global/instanceTemplates",
55831	//   "response": {
55832	//     "$ref": "InstanceTemplateList"
55833	//   },
55834	//   "scopes": [
55835	//     "https://www.googleapis.com/auth/cloud-platform",
55836	//     "https://www.googleapis.com/auth/compute",
55837	//     "https://www.googleapis.com/auth/compute.readonly"
55838	//   ]
55839	// }
55840
55841}
55842
55843// Pages invokes f for each page of results.
55844// A non-nil error returned from f will halt the iteration.
55845// The provided context supersedes any context provided to the Context method.
55846func (c *InstanceTemplatesListCall) Pages(ctx context.Context, f func(*InstanceTemplateList) error) error {
55847	c.ctx_ = ctx
55848	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
55849	for {
55850		x, err := c.Do()
55851		if err != nil {
55852			return err
55853		}
55854		if err := f(x); err != nil {
55855			return err
55856		}
55857		if x.NextPageToken == "" {
55858			return nil
55859		}
55860		c.PageToken(x.NextPageToken)
55861	}
55862}
55863
55864// method id "compute.instanceTemplates.setIamPolicy":
55865
55866type InstanceTemplatesSetIamPolicyCall struct {
55867	s                      *Service
55868	project                string
55869	resource               string
55870	globalsetpolicyrequest *GlobalSetPolicyRequest
55871	urlParams_             gensupport.URLParams
55872	ctx_                   context.Context
55873	header_                http.Header
55874}
55875
55876// SetIamPolicy: Sets the access control policy on the specified
55877// resource. Replaces any existing policy.
55878func (r *InstanceTemplatesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *InstanceTemplatesSetIamPolicyCall {
55879	c := &InstanceTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55880	c.project = project
55881	c.resource = resource
55882	c.globalsetpolicyrequest = globalsetpolicyrequest
55883	return c
55884}
55885
55886// Fields allows partial responses to be retrieved. See
55887// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55888// for more information.
55889func (c *InstanceTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesSetIamPolicyCall {
55890	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55891	return c
55892}
55893
55894// Context sets the context to be used in this call's Do method. Any
55895// pending HTTP request will be aborted if the provided context is
55896// canceled.
55897func (c *InstanceTemplatesSetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesSetIamPolicyCall {
55898	c.ctx_ = ctx
55899	return c
55900}
55901
55902// Header returns an http.Header that can be modified by the caller to
55903// add HTTP headers to the request.
55904func (c *InstanceTemplatesSetIamPolicyCall) Header() http.Header {
55905	if c.header_ == nil {
55906		c.header_ = make(http.Header)
55907	}
55908	return c.header_
55909}
55910
55911func (c *InstanceTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
55912	reqHeaders := make(http.Header)
55913	for k, v := range c.header_ {
55914		reqHeaders[k] = v
55915	}
55916	reqHeaders.Set("User-Agent", c.s.userAgent())
55917	var body io.Reader = nil
55918	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
55919	if err != nil {
55920		return nil, err
55921	}
55922	reqHeaders.Set("Content-Type", "application/json")
55923	c.urlParams_.Set("alt", alt)
55924	c.urlParams_.Set("prettyPrint", "false")
55925	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/setIamPolicy")
55926	urls += "?" + c.urlParams_.Encode()
55927	req, err := http.NewRequest("POST", urls, body)
55928	if err != nil {
55929		return nil, err
55930	}
55931	req.Header = reqHeaders
55932	googleapi.Expand(req.URL, map[string]string{
55933		"project":  c.project,
55934		"resource": c.resource,
55935	})
55936	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55937}
55938
55939// Do executes the "compute.instanceTemplates.setIamPolicy" call.
55940// Exactly one of *Policy or error will be non-nil. Any non-2xx status
55941// code is an error. Response headers are in either
55942// *Policy.ServerResponse.Header or (if a response was returned at all)
55943// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
55944// check whether the returned error was because http.StatusNotModified
55945// was returned.
55946func (c *InstanceTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
55947	gensupport.SetOptions(c.urlParams_, opts...)
55948	res, err := c.doRequest("json")
55949	if res != nil && res.StatusCode == http.StatusNotModified {
55950		if res.Body != nil {
55951			res.Body.Close()
55952		}
55953		return nil, &googleapi.Error{
55954			Code:   res.StatusCode,
55955			Header: res.Header,
55956		}
55957	}
55958	if err != nil {
55959		return nil, err
55960	}
55961	defer googleapi.CloseBody(res)
55962	if err := googleapi.CheckResponse(res); err != nil {
55963		return nil, err
55964	}
55965	ret := &Policy{
55966		ServerResponse: googleapi.ServerResponse{
55967			Header:         res.Header,
55968			HTTPStatusCode: res.StatusCode,
55969		},
55970	}
55971	target := &ret
55972	if err := gensupport.DecodeResponse(target, res); err != nil {
55973		return nil, err
55974	}
55975	return ret, nil
55976	// {
55977	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
55978	//   "httpMethod": "POST",
55979	//   "id": "compute.instanceTemplates.setIamPolicy",
55980	//   "parameterOrder": [
55981	//     "project",
55982	//     "resource"
55983	//   ],
55984	//   "parameters": {
55985	//     "project": {
55986	//       "description": "Project ID for this request.",
55987	//       "location": "path",
55988	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55989	//       "required": true,
55990	//       "type": "string"
55991	//     },
55992	//     "resource": {
55993	//       "description": "Name or id of the resource for this request.",
55994	//       "location": "path",
55995	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55996	//       "required": true,
55997	//       "type": "string"
55998	//     }
55999	//   },
56000	//   "path": "{project}/global/instanceTemplates/{resource}/setIamPolicy",
56001	//   "request": {
56002	//     "$ref": "GlobalSetPolicyRequest"
56003	//   },
56004	//   "response": {
56005	//     "$ref": "Policy"
56006	//   },
56007	//   "scopes": [
56008	//     "https://www.googleapis.com/auth/cloud-platform",
56009	//     "https://www.googleapis.com/auth/compute"
56010	//   ]
56011	// }
56012
56013}
56014
56015// method id "compute.instanceTemplates.testIamPermissions":
56016
56017type InstanceTemplatesTestIamPermissionsCall struct {
56018	s                      *Service
56019	project                string
56020	resource               string
56021	testpermissionsrequest *TestPermissionsRequest
56022	urlParams_             gensupport.URLParams
56023	ctx_                   context.Context
56024	header_                http.Header
56025}
56026
56027// TestIamPermissions: Returns permissions that a caller has on the
56028// specified resource.
56029func (r *InstanceTemplatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceTemplatesTestIamPermissionsCall {
56030	c := &InstanceTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56031	c.project = project
56032	c.resource = resource
56033	c.testpermissionsrequest = testpermissionsrequest
56034	return c
56035}
56036
56037// Fields allows partial responses to be retrieved. See
56038// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56039// for more information.
56040func (c *InstanceTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceTemplatesTestIamPermissionsCall {
56041	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56042	return c
56043}
56044
56045// Context sets the context to be used in this call's Do method. Any
56046// pending HTTP request will be aborted if the provided context is
56047// canceled.
56048func (c *InstanceTemplatesTestIamPermissionsCall) Context(ctx context.Context) *InstanceTemplatesTestIamPermissionsCall {
56049	c.ctx_ = ctx
56050	return c
56051}
56052
56053// Header returns an http.Header that can be modified by the caller to
56054// add HTTP headers to the request.
56055func (c *InstanceTemplatesTestIamPermissionsCall) Header() http.Header {
56056	if c.header_ == nil {
56057		c.header_ = make(http.Header)
56058	}
56059	return c.header_
56060}
56061
56062func (c *InstanceTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
56063	reqHeaders := make(http.Header)
56064	for k, v := range c.header_ {
56065		reqHeaders[k] = v
56066	}
56067	reqHeaders.Set("User-Agent", c.s.userAgent())
56068	var body io.Reader = nil
56069	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
56070	if err != nil {
56071		return nil, err
56072	}
56073	reqHeaders.Set("Content-Type", "application/json")
56074	c.urlParams_.Set("alt", alt)
56075	c.urlParams_.Set("prettyPrint", "false")
56076	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/testIamPermissions")
56077	urls += "?" + c.urlParams_.Encode()
56078	req, err := http.NewRequest("POST", urls, body)
56079	if err != nil {
56080		return nil, err
56081	}
56082	req.Header = reqHeaders
56083	googleapi.Expand(req.URL, map[string]string{
56084		"project":  c.project,
56085		"resource": c.resource,
56086	})
56087	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56088}
56089
56090// Do executes the "compute.instanceTemplates.testIamPermissions" call.
56091// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
56092// non-2xx status code is an error. Response headers are in either
56093// *TestPermissionsResponse.ServerResponse.Header or (if a response was
56094// returned at all) in error.(*googleapi.Error).Header. Use
56095// googleapi.IsNotModified to check whether the returned error was
56096// because http.StatusNotModified was returned.
56097func (c *InstanceTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
56098	gensupport.SetOptions(c.urlParams_, opts...)
56099	res, err := c.doRequest("json")
56100	if res != nil && res.StatusCode == http.StatusNotModified {
56101		if res.Body != nil {
56102			res.Body.Close()
56103		}
56104		return nil, &googleapi.Error{
56105			Code:   res.StatusCode,
56106			Header: res.Header,
56107		}
56108	}
56109	if err != nil {
56110		return nil, err
56111	}
56112	defer googleapi.CloseBody(res)
56113	if err := googleapi.CheckResponse(res); err != nil {
56114		return nil, err
56115	}
56116	ret := &TestPermissionsResponse{
56117		ServerResponse: googleapi.ServerResponse{
56118			Header:         res.Header,
56119			HTTPStatusCode: res.StatusCode,
56120		},
56121	}
56122	target := &ret
56123	if err := gensupport.DecodeResponse(target, res); err != nil {
56124		return nil, err
56125	}
56126	return ret, nil
56127	// {
56128	//   "description": "Returns permissions that a caller has on the specified resource.",
56129	//   "httpMethod": "POST",
56130	//   "id": "compute.instanceTemplates.testIamPermissions",
56131	//   "parameterOrder": [
56132	//     "project",
56133	//     "resource"
56134	//   ],
56135	//   "parameters": {
56136	//     "project": {
56137	//       "description": "Project ID for this request.",
56138	//       "location": "path",
56139	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56140	//       "required": true,
56141	//       "type": "string"
56142	//     },
56143	//     "resource": {
56144	//       "description": "Name or id of the resource for this request.",
56145	//       "location": "path",
56146	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56147	//       "required": true,
56148	//       "type": "string"
56149	//     }
56150	//   },
56151	//   "path": "{project}/global/instanceTemplates/{resource}/testIamPermissions",
56152	//   "request": {
56153	//     "$ref": "TestPermissionsRequest"
56154	//   },
56155	//   "response": {
56156	//     "$ref": "TestPermissionsResponse"
56157	//   },
56158	//   "scopes": [
56159	//     "https://www.googleapis.com/auth/cloud-platform",
56160	//     "https://www.googleapis.com/auth/compute",
56161	//     "https://www.googleapis.com/auth/compute.readonly"
56162	//   ]
56163	// }
56164
56165}
56166
56167// method id "compute.instances.addAccessConfig":
56168
56169type InstancesAddAccessConfigCall struct {
56170	s            *Service
56171	project      string
56172	zone         string
56173	instance     string
56174	accessconfig *AccessConfig
56175	urlParams_   gensupport.URLParams
56176	ctx_         context.Context
56177	header_      http.Header
56178}
56179
56180// AddAccessConfig: Adds an access config to an instance's network
56181// interface.
56182// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/addAccessConfig
56183func (r *InstancesService) AddAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesAddAccessConfigCall {
56184	c := &InstancesAddAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56185	c.project = project
56186	c.zone = zone
56187	c.instance = instance
56188	c.urlParams_.Set("networkInterface", networkInterface)
56189	c.accessconfig = accessconfig
56190	return c
56191}
56192
56193// RequestId sets the optional parameter "requestId": An optional
56194// request ID to identify requests. Specify a unique request ID so that
56195// if you must retry your request, the server will know to ignore the
56196// request if it has already been completed.
56197//
56198// For example, consider a situation where you make an initial request
56199// and the request times out. If you make the request again with the
56200// same request ID, the server can check if original operation with the
56201// same request ID was received, and if so, will ignore the second
56202// request. This prevents clients from accidentally creating duplicate
56203// commitments.
56204//
56205// The request ID must be a valid UUID with the exception that zero UUID
56206// is not supported (00000000-0000-0000-0000-000000000000).
56207func (c *InstancesAddAccessConfigCall) RequestId(requestId string) *InstancesAddAccessConfigCall {
56208	c.urlParams_.Set("requestId", requestId)
56209	return c
56210}
56211
56212// Fields allows partial responses to be retrieved. See
56213// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56214// for more information.
56215func (c *InstancesAddAccessConfigCall) Fields(s ...googleapi.Field) *InstancesAddAccessConfigCall {
56216	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56217	return c
56218}
56219
56220// Context sets the context to be used in this call's Do method. Any
56221// pending HTTP request will be aborted if the provided context is
56222// canceled.
56223func (c *InstancesAddAccessConfigCall) Context(ctx context.Context) *InstancesAddAccessConfigCall {
56224	c.ctx_ = ctx
56225	return c
56226}
56227
56228// Header returns an http.Header that can be modified by the caller to
56229// add HTTP headers to the request.
56230func (c *InstancesAddAccessConfigCall) Header() http.Header {
56231	if c.header_ == nil {
56232		c.header_ = make(http.Header)
56233	}
56234	return c.header_
56235}
56236
56237func (c *InstancesAddAccessConfigCall) doRequest(alt string) (*http.Response, error) {
56238	reqHeaders := make(http.Header)
56239	for k, v := range c.header_ {
56240		reqHeaders[k] = v
56241	}
56242	reqHeaders.Set("User-Agent", c.s.userAgent())
56243	var body io.Reader = nil
56244	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
56245	if err != nil {
56246		return nil, err
56247	}
56248	reqHeaders.Set("Content-Type", "application/json")
56249	c.urlParams_.Set("alt", alt)
56250	c.urlParams_.Set("prettyPrint", "false")
56251	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/addAccessConfig")
56252	urls += "?" + c.urlParams_.Encode()
56253	req, err := http.NewRequest("POST", urls, body)
56254	if err != nil {
56255		return nil, err
56256	}
56257	req.Header = reqHeaders
56258	googleapi.Expand(req.URL, map[string]string{
56259		"project":  c.project,
56260		"zone":     c.zone,
56261		"instance": c.instance,
56262	})
56263	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56264}
56265
56266// Do executes the "compute.instances.addAccessConfig" call.
56267// Exactly one of *Operation or error will be non-nil. Any non-2xx
56268// status code is an error. Response headers are in either
56269// *Operation.ServerResponse.Header or (if a response was returned at
56270// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56271// to check whether the returned error was because
56272// http.StatusNotModified was returned.
56273func (c *InstancesAddAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56274	gensupport.SetOptions(c.urlParams_, opts...)
56275	res, err := c.doRequest("json")
56276	if res != nil && res.StatusCode == http.StatusNotModified {
56277		if res.Body != nil {
56278			res.Body.Close()
56279		}
56280		return nil, &googleapi.Error{
56281			Code:   res.StatusCode,
56282			Header: res.Header,
56283		}
56284	}
56285	if err != nil {
56286		return nil, err
56287	}
56288	defer googleapi.CloseBody(res)
56289	if err := googleapi.CheckResponse(res); err != nil {
56290		return nil, err
56291	}
56292	ret := &Operation{
56293		ServerResponse: googleapi.ServerResponse{
56294			Header:         res.Header,
56295			HTTPStatusCode: res.StatusCode,
56296		},
56297	}
56298	target := &ret
56299	if err := gensupport.DecodeResponse(target, res); err != nil {
56300		return nil, err
56301	}
56302	return ret, nil
56303	// {
56304	//   "description": "Adds an access config to an instance's network interface.",
56305	//   "httpMethod": "POST",
56306	//   "id": "compute.instances.addAccessConfig",
56307	//   "parameterOrder": [
56308	//     "project",
56309	//     "zone",
56310	//     "instance",
56311	//     "networkInterface"
56312	//   ],
56313	//   "parameters": {
56314	//     "instance": {
56315	//       "description": "The instance name for this request.",
56316	//       "location": "path",
56317	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56318	//       "required": true,
56319	//       "type": "string"
56320	//     },
56321	//     "networkInterface": {
56322	//       "description": "The name of the network interface to add to this instance.",
56323	//       "location": "query",
56324	//       "required": true,
56325	//       "type": "string"
56326	//     },
56327	//     "project": {
56328	//       "description": "Project ID for this request.",
56329	//       "location": "path",
56330	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56331	//       "required": true,
56332	//       "type": "string"
56333	//     },
56334	//     "requestId": {
56335	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56336	//       "location": "query",
56337	//       "type": "string"
56338	//     },
56339	//     "zone": {
56340	//       "description": "The name of the zone for this request.",
56341	//       "location": "path",
56342	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
56343	//       "required": true,
56344	//       "type": "string"
56345	//     }
56346	//   },
56347	//   "path": "{project}/zones/{zone}/instances/{instance}/addAccessConfig",
56348	//   "request": {
56349	//     "$ref": "AccessConfig"
56350	//   },
56351	//   "response": {
56352	//     "$ref": "Operation"
56353	//   },
56354	//   "scopes": [
56355	//     "https://www.googleapis.com/auth/cloud-platform",
56356	//     "https://www.googleapis.com/auth/compute"
56357	//   ]
56358	// }
56359
56360}
56361
56362// method id "compute.instances.aggregatedList":
56363
56364type InstancesAggregatedListCall struct {
56365	s            *Service
56366	project      string
56367	urlParams_   gensupport.URLParams
56368	ifNoneMatch_ string
56369	ctx_         context.Context
56370	header_      http.Header
56371}
56372
56373// AggregatedList: Retrieves aggregated list of all of the instances in
56374// your project across all regions and zones.
56375// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/aggregatedList
56376func (r *InstancesService) AggregatedList(project string) *InstancesAggregatedListCall {
56377	c := &InstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56378	c.project = project
56379	return c
56380}
56381
56382// Filter sets the optional parameter "filter": A filter expression that
56383// filters resources listed in the response. The expression must specify
56384// the field name, a comparison operator, and the value that you want to
56385// use for filtering. The value must be a string, a number, or a
56386// boolean. The comparison operator must be either =, !=, >, or <.
56387//
56388// For example, if you are filtering Compute Engine instances, you can
56389// exclude instances named example-instance by specifying name !=
56390// example-instance.
56391//
56392// You can also filter nested fields. For example, you could specify
56393// scheduling.automaticRestart = false to include instances only if they
56394// are not scheduled for automatic restarts. You can use filtering on
56395// nested fields to filter based on resource labels.
56396//
56397// To filter on multiple expressions, provide each separate expression
56398// within parentheses. For example, (scheduling.automaticRestart = true)
56399// (cpuPlatform = "Intel Skylake"). By default, each expression is an
56400// AND expression. However, you can include AND and OR expressions
56401// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
56402// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
56403// true).
56404func (c *InstancesAggregatedListCall) Filter(filter string) *InstancesAggregatedListCall {
56405	c.urlParams_.Set("filter", filter)
56406	return c
56407}
56408
56409// MaxResults sets the optional parameter "maxResults": The maximum
56410// number of results per page that should be returned. If the number of
56411// available results is larger than maxResults, Compute Engine returns a
56412// nextPageToken that can be used to get the next page of results in
56413// subsequent list requests. Acceptable values are 0 to 500, inclusive.
56414// (Default: 500)
56415func (c *InstancesAggregatedListCall) MaxResults(maxResults int64) *InstancesAggregatedListCall {
56416	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
56417	return c
56418}
56419
56420// OrderBy sets the optional parameter "orderBy": Sorts list results by
56421// a certain order. By default, results are returned in alphanumerical
56422// order based on the resource name.
56423//
56424// You can also sort results in descending order based on the creation
56425// timestamp using orderBy="creationTimestamp desc". This sorts results
56426// based on the creationTimestamp field in reverse chronological order
56427// (newest result first). Use this to sort resources like operations so
56428// that the newest operation is returned first.
56429//
56430// Currently, only sorting by name or creationTimestamp desc is
56431// supported.
56432func (c *InstancesAggregatedListCall) OrderBy(orderBy string) *InstancesAggregatedListCall {
56433	c.urlParams_.Set("orderBy", orderBy)
56434	return c
56435}
56436
56437// PageToken sets the optional parameter "pageToken": Specifies a page
56438// token to use. Set pageToken to the nextPageToken returned by a
56439// previous list request to get the next page of results.
56440func (c *InstancesAggregatedListCall) PageToken(pageToken string) *InstancesAggregatedListCall {
56441	c.urlParams_.Set("pageToken", pageToken)
56442	return c
56443}
56444
56445// Fields allows partial responses to be retrieved. See
56446// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56447// for more information.
56448func (c *InstancesAggregatedListCall) Fields(s ...googleapi.Field) *InstancesAggregatedListCall {
56449	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56450	return c
56451}
56452
56453// IfNoneMatch sets the optional parameter which makes the operation
56454// fail if the object's ETag matches the given value. This is useful for
56455// getting updates only after the object has changed since the last
56456// request. Use googleapi.IsNotModified to check whether the response
56457// error from Do is the result of In-None-Match.
56458func (c *InstancesAggregatedListCall) IfNoneMatch(entityTag string) *InstancesAggregatedListCall {
56459	c.ifNoneMatch_ = entityTag
56460	return c
56461}
56462
56463// Context sets the context to be used in this call's Do method. Any
56464// pending HTTP request will be aborted if the provided context is
56465// canceled.
56466func (c *InstancesAggregatedListCall) Context(ctx context.Context) *InstancesAggregatedListCall {
56467	c.ctx_ = ctx
56468	return c
56469}
56470
56471// Header returns an http.Header that can be modified by the caller to
56472// add HTTP headers to the request.
56473func (c *InstancesAggregatedListCall) Header() http.Header {
56474	if c.header_ == nil {
56475		c.header_ = make(http.Header)
56476	}
56477	return c.header_
56478}
56479
56480func (c *InstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
56481	reqHeaders := make(http.Header)
56482	for k, v := range c.header_ {
56483		reqHeaders[k] = v
56484	}
56485	reqHeaders.Set("User-Agent", c.s.userAgent())
56486	if c.ifNoneMatch_ != "" {
56487		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56488	}
56489	var body io.Reader = nil
56490	c.urlParams_.Set("alt", alt)
56491	c.urlParams_.Set("prettyPrint", "false")
56492	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instances")
56493	urls += "?" + c.urlParams_.Encode()
56494	req, err := http.NewRequest("GET", urls, body)
56495	if err != nil {
56496		return nil, err
56497	}
56498	req.Header = reqHeaders
56499	googleapi.Expand(req.URL, map[string]string{
56500		"project": c.project,
56501	})
56502	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56503}
56504
56505// Do executes the "compute.instances.aggregatedList" call.
56506// Exactly one of *InstanceAggregatedList or error will be non-nil. Any
56507// non-2xx status code is an error. Response headers are in either
56508// *InstanceAggregatedList.ServerResponse.Header or (if a response was
56509// returned at all) in error.(*googleapi.Error).Header. Use
56510// googleapi.IsNotModified to check whether the returned error was
56511// because http.StatusNotModified was returned.
56512func (c *InstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceAggregatedList, error) {
56513	gensupport.SetOptions(c.urlParams_, opts...)
56514	res, err := c.doRequest("json")
56515	if res != nil && res.StatusCode == http.StatusNotModified {
56516		if res.Body != nil {
56517			res.Body.Close()
56518		}
56519		return nil, &googleapi.Error{
56520			Code:   res.StatusCode,
56521			Header: res.Header,
56522		}
56523	}
56524	if err != nil {
56525		return nil, err
56526	}
56527	defer googleapi.CloseBody(res)
56528	if err := googleapi.CheckResponse(res); err != nil {
56529		return nil, err
56530	}
56531	ret := &InstanceAggregatedList{
56532		ServerResponse: googleapi.ServerResponse{
56533			Header:         res.Header,
56534			HTTPStatusCode: res.StatusCode,
56535		},
56536	}
56537	target := &ret
56538	if err := gensupport.DecodeResponse(target, res); err != nil {
56539		return nil, err
56540	}
56541	return ret, nil
56542	// {
56543	//   "description": "Retrieves aggregated list of all of the instances in your project across all regions and zones.",
56544	//   "httpMethod": "GET",
56545	//   "id": "compute.instances.aggregatedList",
56546	//   "parameterOrder": [
56547	//     "project"
56548	//   ],
56549	//   "parameters": {
56550	//     "filter": {
56551	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
56552	//       "location": "query",
56553	//       "type": "string"
56554	//     },
56555	//     "maxResults": {
56556	//       "default": "500",
56557	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
56558	//       "format": "uint32",
56559	//       "location": "query",
56560	//       "minimum": "0",
56561	//       "type": "integer"
56562	//     },
56563	//     "orderBy": {
56564	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
56565	//       "location": "query",
56566	//       "type": "string"
56567	//     },
56568	//     "pageToken": {
56569	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
56570	//       "location": "query",
56571	//       "type": "string"
56572	//     },
56573	//     "project": {
56574	//       "description": "Project ID for this request.",
56575	//       "location": "path",
56576	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56577	//       "required": true,
56578	//       "type": "string"
56579	//     }
56580	//   },
56581	//   "path": "{project}/aggregated/instances",
56582	//   "response": {
56583	//     "$ref": "InstanceAggregatedList"
56584	//   },
56585	//   "scopes": [
56586	//     "https://www.googleapis.com/auth/cloud-platform",
56587	//     "https://www.googleapis.com/auth/compute",
56588	//     "https://www.googleapis.com/auth/compute.readonly"
56589	//   ]
56590	// }
56591
56592}
56593
56594// Pages invokes f for each page of results.
56595// A non-nil error returned from f will halt the iteration.
56596// The provided context supersedes any context provided to the Context method.
56597func (c *InstancesAggregatedListCall) Pages(ctx context.Context, f func(*InstanceAggregatedList) error) error {
56598	c.ctx_ = ctx
56599	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
56600	for {
56601		x, err := c.Do()
56602		if err != nil {
56603			return err
56604		}
56605		if err := f(x); err != nil {
56606			return err
56607		}
56608		if x.NextPageToken == "" {
56609			return nil
56610		}
56611		c.PageToken(x.NextPageToken)
56612	}
56613}
56614
56615// method id "compute.instances.attachDisk":
56616
56617type InstancesAttachDiskCall struct {
56618	s            *Service
56619	project      string
56620	zone         string
56621	instance     string
56622	attacheddisk *AttachedDisk
56623	urlParams_   gensupport.URLParams
56624	ctx_         context.Context
56625	header_      http.Header
56626}
56627
56628// AttachDisk: Attaches an existing Disk resource to an instance. You
56629// must first create the disk before you can attach it. It is not
56630// possible to create and attach a disk at the same time. For more
56631// information, read Adding a persistent disk to your instance.
56632// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/attachDisk
56633func (r *InstancesService) AttachDisk(project string, zone string, instance string, attacheddisk *AttachedDisk) *InstancesAttachDiskCall {
56634	c := &InstancesAttachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56635	c.project = project
56636	c.zone = zone
56637	c.instance = instance
56638	c.attacheddisk = attacheddisk
56639	return c
56640}
56641
56642// ForceAttach sets the optional parameter "forceAttach": Whether to
56643// force attach the disk even if it's currently attached to another
56644// instance.
56645func (c *InstancesAttachDiskCall) ForceAttach(forceAttach bool) *InstancesAttachDiskCall {
56646	c.urlParams_.Set("forceAttach", fmt.Sprint(forceAttach))
56647	return c
56648}
56649
56650// RequestId sets the optional parameter "requestId": An optional
56651// request ID to identify requests. Specify a unique request ID so that
56652// if you must retry your request, the server will know to ignore the
56653// request if it has already been completed.
56654//
56655// For example, consider a situation where you make an initial request
56656// and the request times out. If you make the request again with the
56657// same request ID, the server can check if original operation with the
56658// same request ID was received, and if so, will ignore the second
56659// request. This prevents clients from accidentally creating duplicate
56660// commitments.
56661//
56662// The request ID must be a valid UUID with the exception that zero UUID
56663// is not supported (00000000-0000-0000-0000-000000000000).
56664func (c *InstancesAttachDiskCall) RequestId(requestId string) *InstancesAttachDiskCall {
56665	c.urlParams_.Set("requestId", requestId)
56666	return c
56667}
56668
56669// Fields allows partial responses to be retrieved. See
56670// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56671// for more information.
56672func (c *InstancesAttachDiskCall) Fields(s ...googleapi.Field) *InstancesAttachDiskCall {
56673	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56674	return c
56675}
56676
56677// Context sets the context to be used in this call's Do method. Any
56678// pending HTTP request will be aborted if the provided context is
56679// canceled.
56680func (c *InstancesAttachDiskCall) Context(ctx context.Context) *InstancesAttachDiskCall {
56681	c.ctx_ = ctx
56682	return c
56683}
56684
56685// Header returns an http.Header that can be modified by the caller to
56686// add HTTP headers to the request.
56687func (c *InstancesAttachDiskCall) Header() http.Header {
56688	if c.header_ == nil {
56689		c.header_ = make(http.Header)
56690	}
56691	return c.header_
56692}
56693
56694func (c *InstancesAttachDiskCall) doRequest(alt string) (*http.Response, error) {
56695	reqHeaders := make(http.Header)
56696	for k, v := range c.header_ {
56697		reqHeaders[k] = v
56698	}
56699	reqHeaders.Set("User-Agent", c.s.userAgent())
56700	var body io.Reader = nil
56701	body, err := googleapi.WithoutDataWrapper.JSONReader(c.attacheddisk)
56702	if err != nil {
56703		return nil, err
56704	}
56705	reqHeaders.Set("Content-Type", "application/json")
56706	c.urlParams_.Set("alt", alt)
56707	c.urlParams_.Set("prettyPrint", "false")
56708	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/attachDisk")
56709	urls += "?" + c.urlParams_.Encode()
56710	req, err := http.NewRequest("POST", urls, body)
56711	if err != nil {
56712		return nil, err
56713	}
56714	req.Header = reqHeaders
56715	googleapi.Expand(req.URL, map[string]string{
56716		"project":  c.project,
56717		"zone":     c.zone,
56718		"instance": c.instance,
56719	})
56720	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56721}
56722
56723// Do executes the "compute.instances.attachDisk" call.
56724// Exactly one of *Operation or error will be non-nil. Any non-2xx
56725// status code is an error. Response headers are in either
56726// *Operation.ServerResponse.Header or (if a response was returned at
56727// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56728// to check whether the returned error was because
56729// http.StatusNotModified was returned.
56730func (c *InstancesAttachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56731	gensupport.SetOptions(c.urlParams_, opts...)
56732	res, err := c.doRequest("json")
56733	if res != nil && res.StatusCode == http.StatusNotModified {
56734		if res.Body != nil {
56735			res.Body.Close()
56736		}
56737		return nil, &googleapi.Error{
56738			Code:   res.StatusCode,
56739			Header: res.Header,
56740		}
56741	}
56742	if err != nil {
56743		return nil, err
56744	}
56745	defer googleapi.CloseBody(res)
56746	if err := googleapi.CheckResponse(res); err != nil {
56747		return nil, err
56748	}
56749	ret := &Operation{
56750		ServerResponse: googleapi.ServerResponse{
56751			Header:         res.Header,
56752			HTTPStatusCode: res.StatusCode,
56753		},
56754	}
56755	target := &ret
56756	if err := gensupport.DecodeResponse(target, res); err != nil {
56757		return nil, err
56758	}
56759	return ret, nil
56760	// {
56761	//   "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.",
56762	//   "httpMethod": "POST",
56763	//   "id": "compute.instances.attachDisk",
56764	//   "parameterOrder": [
56765	//     "project",
56766	//     "zone",
56767	//     "instance"
56768	//   ],
56769	//   "parameters": {
56770	//     "forceAttach": {
56771	//       "description": "Whether to force attach the disk even if it's currently attached to another instance.",
56772	//       "location": "query",
56773	//       "type": "boolean"
56774	//     },
56775	//     "instance": {
56776	//       "description": "The instance name for this request.",
56777	//       "location": "path",
56778	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56779	//       "required": true,
56780	//       "type": "string"
56781	//     },
56782	//     "project": {
56783	//       "description": "Project ID for this request.",
56784	//       "location": "path",
56785	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56786	//       "required": true,
56787	//       "type": "string"
56788	//     },
56789	//     "requestId": {
56790	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56791	//       "location": "query",
56792	//       "type": "string"
56793	//     },
56794	//     "zone": {
56795	//       "description": "The name of the zone for this request.",
56796	//       "location": "path",
56797	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
56798	//       "required": true,
56799	//       "type": "string"
56800	//     }
56801	//   },
56802	//   "path": "{project}/zones/{zone}/instances/{instance}/attachDisk",
56803	//   "request": {
56804	//     "$ref": "AttachedDisk"
56805	//   },
56806	//   "response": {
56807	//     "$ref": "Operation"
56808	//   },
56809	//   "scopes": [
56810	//     "https://www.googleapis.com/auth/cloud-platform",
56811	//     "https://www.googleapis.com/auth/compute"
56812	//   ]
56813	// }
56814
56815}
56816
56817// method id "compute.instances.delete":
56818
56819type InstancesDeleteCall struct {
56820	s          *Service
56821	project    string
56822	zone       string
56823	instance   string
56824	urlParams_ gensupport.URLParams
56825	ctx_       context.Context
56826	header_    http.Header
56827}
56828
56829// Delete: Deletes the specified Instance resource. For more
56830// information, see Stopping or Deleting an Instance.
56831// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/delete
56832func (r *InstancesService) Delete(project string, zone string, instance string) *InstancesDeleteCall {
56833	c := &InstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56834	c.project = project
56835	c.zone = zone
56836	c.instance = instance
56837	return c
56838}
56839
56840// RequestId sets the optional parameter "requestId": An optional
56841// request ID to identify requests. Specify a unique request ID so that
56842// if you must retry your request, the server will know to ignore the
56843// request if it has already been completed.
56844//
56845// For example, consider a situation where you make an initial request
56846// and the request times out. If you make the request again with the
56847// same request ID, the server can check if original operation with the
56848// same request ID was received, and if so, will ignore the second
56849// request. This prevents clients from accidentally creating duplicate
56850// commitments.
56851//
56852// The request ID must be a valid UUID with the exception that zero UUID
56853// is not supported (00000000-0000-0000-0000-000000000000).
56854func (c *InstancesDeleteCall) RequestId(requestId string) *InstancesDeleteCall {
56855	c.urlParams_.Set("requestId", requestId)
56856	return c
56857}
56858
56859// Fields allows partial responses to be retrieved. See
56860// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56861// for more information.
56862func (c *InstancesDeleteCall) Fields(s ...googleapi.Field) *InstancesDeleteCall {
56863	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56864	return c
56865}
56866
56867// Context sets the context to be used in this call's Do method. Any
56868// pending HTTP request will be aborted if the provided context is
56869// canceled.
56870func (c *InstancesDeleteCall) Context(ctx context.Context) *InstancesDeleteCall {
56871	c.ctx_ = ctx
56872	return c
56873}
56874
56875// Header returns an http.Header that can be modified by the caller to
56876// add HTTP headers to the request.
56877func (c *InstancesDeleteCall) Header() http.Header {
56878	if c.header_ == nil {
56879		c.header_ = make(http.Header)
56880	}
56881	return c.header_
56882}
56883
56884func (c *InstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
56885	reqHeaders := make(http.Header)
56886	for k, v := range c.header_ {
56887		reqHeaders[k] = v
56888	}
56889	reqHeaders.Set("User-Agent", c.s.userAgent())
56890	var body io.Reader = nil
56891	c.urlParams_.Set("alt", alt)
56892	c.urlParams_.Set("prettyPrint", "false")
56893	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
56894	urls += "?" + c.urlParams_.Encode()
56895	req, err := http.NewRequest("DELETE", urls, body)
56896	if err != nil {
56897		return nil, err
56898	}
56899	req.Header = reqHeaders
56900	googleapi.Expand(req.URL, map[string]string{
56901		"project":  c.project,
56902		"zone":     c.zone,
56903		"instance": c.instance,
56904	})
56905	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56906}
56907
56908// Do executes the "compute.instances.delete" call.
56909// Exactly one of *Operation or error will be non-nil. Any non-2xx
56910// status code is an error. Response headers are in either
56911// *Operation.ServerResponse.Header or (if a response was returned at
56912// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56913// to check whether the returned error was because
56914// http.StatusNotModified was returned.
56915func (c *InstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56916	gensupport.SetOptions(c.urlParams_, opts...)
56917	res, err := c.doRequest("json")
56918	if res != nil && res.StatusCode == http.StatusNotModified {
56919		if res.Body != nil {
56920			res.Body.Close()
56921		}
56922		return nil, &googleapi.Error{
56923			Code:   res.StatusCode,
56924			Header: res.Header,
56925		}
56926	}
56927	if err != nil {
56928		return nil, err
56929	}
56930	defer googleapi.CloseBody(res)
56931	if err := googleapi.CheckResponse(res); err != nil {
56932		return nil, err
56933	}
56934	ret := &Operation{
56935		ServerResponse: googleapi.ServerResponse{
56936			Header:         res.Header,
56937			HTTPStatusCode: res.StatusCode,
56938		},
56939	}
56940	target := &ret
56941	if err := gensupport.DecodeResponse(target, res); err != nil {
56942		return nil, err
56943	}
56944	return ret, nil
56945	// {
56946	//   "description": "Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance.",
56947	//   "httpMethod": "DELETE",
56948	//   "id": "compute.instances.delete",
56949	//   "parameterOrder": [
56950	//     "project",
56951	//     "zone",
56952	//     "instance"
56953	//   ],
56954	//   "parameters": {
56955	//     "instance": {
56956	//       "description": "Name of the instance resource to delete.",
56957	//       "location": "path",
56958	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56959	//       "required": true,
56960	//       "type": "string"
56961	//     },
56962	//     "project": {
56963	//       "description": "Project ID for this request.",
56964	//       "location": "path",
56965	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56966	//       "required": true,
56967	//       "type": "string"
56968	//     },
56969	//     "requestId": {
56970	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56971	//       "location": "query",
56972	//       "type": "string"
56973	//     },
56974	//     "zone": {
56975	//       "description": "The name of the zone for this request.",
56976	//       "location": "path",
56977	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
56978	//       "required": true,
56979	//       "type": "string"
56980	//     }
56981	//   },
56982	//   "path": "{project}/zones/{zone}/instances/{instance}",
56983	//   "response": {
56984	//     "$ref": "Operation"
56985	//   },
56986	//   "scopes": [
56987	//     "https://www.googleapis.com/auth/cloud-platform",
56988	//     "https://www.googleapis.com/auth/compute"
56989	//   ]
56990	// }
56991
56992}
56993
56994// method id "compute.instances.deleteAccessConfig":
56995
56996type InstancesDeleteAccessConfigCall struct {
56997	s          *Service
56998	project    string
56999	zone       string
57000	instance   string
57001	urlParams_ gensupport.URLParams
57002	ctx_       context.Context
57003	header_    http.Header
57004}
57005
57006// DeleteAccessConfig: Deletes an access config from an instance's
57007// network interface.
57008// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/deleteAccessConfig
57009func (r *InstancesService) DeleteAccessConfig(project string, zone string, instance string, accessConfig string, networkInterface string) *InstancesDeleteAccessConfigCall {
57010	c := &InstancesDeleteAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57011	c.project = project
57012	c.zone = zone
57013	c.instance = instance
57014	c.urlParams_.Set("accessConfig", accessConfig)
57015	c.urlParams_.Set("networkInterface", networkInterface)
57016	return c
57017}
57018
57019// RequestId sets the optional parameter "requestId": An optional
57020// request ID to identify requests. Specify a unique request ID so that
57021// if you must retry your request, the server will know to ignore the
57022// request if it has already been completed.
57023//
57024// For example, consider a situation where you make an initial request
57025// and the request times out. If you make the request again with the
57026// same request ID, the server can check if original operation with the
57027// same request ID was received, and if so, will ignore the second
57028// request. This prevents clients from accidentally creating duplicate
57029// commitments.
57030//
57031// The request ID must be a valid UUID with the exception that zero UUID
57032// is not supported (00000000-0000-0000-0000-000000000000).
57033func (c *InstancesDeleteAccessConfigCall) RequestId(requestId string) *InstancesDeleteAccessConfigCall {
57034	c.urlParams_.Set("requestId", requestId)
57035	return c
57036}
57037
57038// Fields allows partial responses to be retrieved. See
57039// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57040// for more information.
57041func (c *InstancesDeleteAccessConfigCall) Fields(s ...googleapi.Field) *InstancesDeleteAccessConfigCall {
57042	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57043	return c
57044}
57045
57046// Context sets the context to be used in this call's Do method. Any
57047// pending HTTP request will be aborted if the provided context is
57048// canceled.
57049func (c *InstancesDeleteAccessConfigCall) Context(ctx context.Context) *InstancesDeleteAccessConfigCall {
57050	c.ctx_ = ctx
57051	return c
57052}
57053
57054// Header returns an http.Header that can be modified by the caller to
57055// add HTTP headers to the request.
57056func (c *InstancesDeleteAccessConfigCall) Header() http.Header {
57057	if c.header_ == nil {
57058		c.header_ = make(http.Header)
57059	}
57060	return c.header_
57061}
57062
57063func (c *InstancesDeleteAccessConfigCall) doRequest(alt string) (*http.Response, error) {
57064	reqHeaders := make(http.Header)
57065	for k, v := range c.header_ {
57066		reqHeaders[k] = v
57067	}
57068	reqHeaders.Set("User-Agent", c.s.userAgent())
57069	var body io.Reader = nil
57070	c.urlParams_.Set("alt", alt)
57071	c.urlParams_.Set("prettyPrint", "false")
57072	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/deleteAccessConfig")
57073	urls += "?" + c.urlParams_.Encode()
57074	req, err := http.NewRequest("POST", urls, body)
57075	if err != nil {
57076		return nil, err
57077	}
57078	req.Header = reqHeaders
57079	googleapi.Expand(req.URL, map[string]string{
57080		"project":  c.project,
57081		"zone":     c.zone,
57082		"instance": c.instance,
57083	})
57084	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57085}
57086
57087// Do executes the "compute.instances.deleteAccessConfig" call.
57088// Exactly one of *Operation or error will be non-nil. Any non-2xx
57089// status code is an error. Response headers are in either
57090// *Operation.ServerResponse.Header or (if a response was returned at
57091// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57092// to check whether the returned error was because
57093// http.StatusNotModified was returned.
57094func (c *InstancesDeleteAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57095	gensupport.SetOptions(c.urlParams_, opts...)
57096	res, err := c.doRequest("json")
57097	if res != nil && res.StatusCode == http.StatusNotModified {
57098		if res.Body != nil {
57099			res.Body.Close()
57100		}
57101		return nil, &googleapi.Error{
57102			Code:   res.StatusCode,
57103			Header: res.Header,
57104		}
57105	}
57106	if err != nil {
57107		return nil, err
57108	}
57109	defer googleapi.CloseBody(res)
57110	if err := googleapi.CheckResponse(res); err != nil {
57111		return nil, err
57112	}
57113	ret := &Operation{
57114		ServerResponse: googleapi.ServerResponse{
57115			Header:         res.Header,
57116			HTTPStatusCode: res.StatusCode,
57117		},
57118	}
57119	target := &ret
57120	if err := gensupport.DecodeResponse(target, res); err != nil {
57121		return nil, err
57122	}
57123	return ret, nil
57124	// {
57125	//   "description": "Deletes an access config from an instance's network interface.",
57126	//   "httpMethod": "POST",
57127	//   "id": "compute.instances.deleteAccessConfig",
57128	//   "parameterOrder": [
57129	//     "project",
57130	//     "zone",
57131	//     "instance",
57132	//     "accessConfig",
57133	//     "networkInterface"
57134	//   ],
57135	//   "parameters": {
57136	//     "accessConfig": {
57137	//       "description": "The name of the access config to delete.",
57138	//       "location": "query",
57139	//       "required": true,
57140	//       "type": "string"
57141	//     },
57142	//     "instance": {
57143	//       "description": "The instance name for this request.",
57144	//       "location": "path",
57145	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57146	//       "required": true,
57147	//       "type": "string"
57148	//     },
57149	//     "networkInterface": {
57150	//       "description": "The name of the network interface.",
57151	//       "location": "query",
57152	//       "required": true,
57153	//       "type": "string"
57154	//     },
57155	//     "project": {
57156	//       "description": "Project ID for this request.",
57157	//       "location": "path",
57158	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57159	//       "required": true,
57160	//       "type": "string"
57161	//     },
57162	//     "requestId": {
57163	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57164	//       "location": "query",
57165	//       "type": "string"
57166	//     },
57167	//     "zone": {
57168	//       "description": "The name of the zone for this request.",
57169	//       "location": "path",
57170	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57171	//       "required": true,
57172	//       "type": "string"
57173	//     }
57174	//   },
57175	//   "path": "{project}/zones/{zone}/instances/{instance}/deleteAccessConfig",
57176	//   "response": {
57177	//     "$ref": "Operation"
57178	//   },
57179	//   "scopes": [
57180	//     "https://www.googleapis.com/auth/cloud-platform",
57181	//     "https://www.googleapis.com/auth/compute"
57182	//   ]
57183	// }
57184
57185}
57186
57187// method id "compute.instances.detachDisk":
57188
57189type InstancesDetachDiskCall struct {
57190	s          *Service
57191	project    string
57192	zone       string
57193	instance   string
57194	urlParams_ gensupport.URLParams
57195	ctx_       context.Context
57196	header_    http.Header
57197}
57198
57199// DetachDisk: Detaches a disk from an instance.
57200// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/detachDisk
57201func (r *InstancesService) DetachDisk(project string, zone string, instance string, deviceName string) *InstancesDetachDiskCall {
57202	c := &InstancesDetachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57203	c.project = project
57204	c.zone = zone
57205	c.instance = instance
57206	c.urlParams_.Set("deviceName", deviceName)
57207	return c
57208}
57209
57210// RequestId sets the optional parameter "requestId": An optional
57211// request ID to identify requests. Specify a unique request ID so that
57212// if you must retry your request, the server will know to ignore the
57213// request if it has already been completed.
57214//
57215// For example, consider a situation where you make an initial request
57216// and the request times out. If you make the request again with the
57217// same request ID, the server can check if original operation with the
57218// same request ID was received, and if so, will ignore the second
57219// request. This prevents clients from accidentally creating duplicate
57220// commitments.
57221//
57222// The request ID must be a valid UUID with the exception that zero UUID
57223// is not supported (00000000-0000-0000-0000-000000000000).
57224func (c *InstancesDetachDiskCall) RequestId(requestId string) *InstancesDetachDiskCall {
57225	c.urlParams_.Set("requestId", requestId)
57226	return c
57227}
57228
57229// Fields allows partial responses to be retrieved. See
57230// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57231// for more information.
57232func (c *InstancesDetachDiskCall) Fields(s ...googleapi.Field) *InstancesDetachDiskCall {
57233	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57234	return c
57235}
57236
57237// Context sets the context to be used in this call's Do method. Any
57238// pending HTTP request will be aborted if the provided context is
57239// canceled.
57240func (c *InstancesDetachDiskCall) Context(ctx context.Context) *InstancesDetachDiskCall {
57241	c.ctx_ = ctx
57242	return c
57243}
57244
57245// Header returns an http.Header that can be modified by the caller to
57246// add HTTP headers to the request.
57247func (c *InstancesDetachDiskCall) Header() http.Header {
57248	if c.header_ == nil {
57249		c.header_ = make(http.Header)
57250	}
57251	return c.header_
57252}
57253
57254func (c *InstancesDetachDiskCall) doRequest(alt string) (*http.Response, error) {
57255	reqHeaders := make(http.Header)
57256	for k, v := range c.header_ {
57257		reqHeaders[k] = v
57258	}
57259	reqHeaders.Set("User-Agent", c.s.userAgent())
57260	var body io.Reader = nil
57261	c.urlParams_.Set("alt", alt)
57262	c.urlParams_.Set("prettyPrint", "false")
57263	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/detachDisk")
57264	urls += "?" + c.urlParams_.Encode()
57265	req, err := http.NewRequest("POST", urls, body)
57266	if err != nil {
57267		return nil, err
57268	}
57269	req.Header = reqHeaders
57270	googleapi.Expand(req.URL, map[string]string{
57271		"project":  c.project,
57272		"zone":     c.zone,
57273		"instance": c.instance,
57274	})
57275	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57276}
57277
57278// Do executes the "compute.instances.detachDisk" call.
57279// Exactly one of *Operation or error will be non-nil. Any non-2xx
57280// status code is an error. Response headers are in either
57281// *Operation.ServerResponse.Header or (if a response was returned at
57282// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57283// to check whether the returned error was because
57284// http.StatusNotModified was returned.
57285func (c *InstancesDetachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57286	gensupport.SetOptions(c.urlParams_, opts...)
57287	res, err := c.doRequest("json")
57288	if res != nil && res.StatusCode == http.StatusNotModified {
57289		if res.Body != nil {
57290			res.Body.Close()
57291		}
57292		return nil, &googleapi.Error{
57293			Code:   res.StatusCode,
57294			Header: res.Header,
57295		}
57296	}
57297	if err != nil {
57298		return nil, err
57299	}
57300	defer googleapi.CloseBody(res)
57301	if err := googleapi.CheckResponse(res); err != nil {
57302		return nil, err
57303	}
57304	ret := &Operation{
57305		ServerResponse: googleapi.ServerResponse{
57306			Header:         res.Header,
57307			HTTPStatusCode: res.StatusCode,
57308		},
57309	}
57310	target := &ret
57311	if err := gensupport.DecodeResponse(target, res); err != nil {
57312		return nil, err
57313	}
57314	return ret, nil
57315	// {
57316	//   "description": "Detaches a disk from an instance.",
57317	//   "httpMethod": "POST",
57318	//   "id": "compute.instances.detachDisk",
57319	//   "parameterOrder": [
57320	//     "project",
57321	//     "zone",
57322	//     "instance",
57323	//     "deviceName"
57324	//   ],
57325	//   "parameters": {
57326	//     "deviceName": {
57327	//       "description": "The device name of the disk to detach. Make a get() request on the instance to view currently attached disks and device names.",
57328	//       "location": "query",
57329	//       "required": true,
57330	//       "type": "string"
57331	//     },
57332	//     "instance": {
57333	//       "description": "Instance name for this request.",
57334	//       "location": "path",
57335	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57336	//       "required": true,
57337	//       "type": "string"
57338	//     },
57339	//     "project": {
57340	//       "description": "Project ID for this request.",
57341	//       "location": "path",
57342	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57343	//       "required": true,
57344	//       "type": "string"
57345	//     },
57346	//     "requestId": {
57347	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57348	//       "location": "query",
57349	//       "type": "string"
57350	//     },
57351	//     "zone": {
57352	//       "description": "The name of the zone for this request.",
57353	//       "location": "path",
57354	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57355	//       "required": true,
57356	//       "type": "string"
57357	//     }
57358	//   },
57359	//   "path": "{project}/zones/{zone}/instances/{instance}/detachDisk",
57360	//   "response": {
57361	//     "$ref": "Operation"
57362	//   },
57363	//   "scopes": [
57364	//     "https://www.googleapis.com/auth/cloud-platform",
57365	//     "https://www.googleapis.com/auth/compute"
57366	//   ]
57367	// }
57368
57369}
57370
57371// method id "compute.instances.get":
57372
57373type InstancesGetCall struct {
57374	s            *Service
57375	project      string
57376	zone         string
57377	instance     string
57378	urlParams_   gensupport.URLParams
57379	ifNoneMatch_ string
57380	ctx_         context.Context
57381	header_      http.Header
57382}
57383
57384// Get: Returns the specified Instance resource. Gets a list of
57385// available instances by making a list() request.
57386// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/get
57387func (r *InstancesService) Get(project string, zone string, instance string) *InstancesGetCall {
57388	c := &InstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57389	c.project = project
57390	c.zone = zone
57391	c.instance = instance
57392	return c
57393}
57394
57395// Fields allows partial responses to be retrieved. See
57396// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57397// for more information.
57398func (c *InstancesGetCall) Fields(s ...googleapi.Field) *InstancesGetCall {
57399	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57400	return c
57401}
57402
57403// IfNoneMatch sets the optional parameter which makes the operation
57404// fail if the object's ETag matches the given value. This is useful for
57405// getting updates only after the object has changed since the last
57406// request. Use googleapi.IsNotModified to check whether the response
57407// error from Do is the result of In-None-Match.
57408func (c *InstancesGetCall) IfNoneMatch(entityTag string) *InstancesGetCall {
57409	c.ifNoneMatch_ = entityTag
57410	return c
57411}
57412
57413// Context sets the context to be used in this call's Do method. Any
57414// pending HTTP request will be aborted if the provided context is
57415// canceled.
57416func (c *InstancesGetCall) Context(ctx context.Context) *InstancesGetCall {
57417	c.ctx_ = ctx
57418	return c
57419}
57420
57421// Header returns an http.Header that can be modified by the caller to
57422// add HTTP headers to the request.
57423func (c *InstancesGetCall) Header() http.Header {
57424	if c.header_ == nil {
57425		c.header_ = make(http.Header)
57426	}
57427	return c.header_
57428}
57429
57430func (c *InstancesGetCall) doRequest(alt string) (*http.Response, error) {
57431	reqHeaders := make(http.Header)
57432	for k, v := range c.header_ {
57433		reqHeaders[k] = v
57434	}
57435	reqHeaders.Set("User-Agent", c.s.userAgent())
57436	if c.ifNoneMatch_ != "" {
57437		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57438	}
57439	var body io.Reader = nil
57440	c.urlParams_.Set("alt", alt)
57441	c.urlParams_.Set("prettyPrint", "false")
57442	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
57443	urls += "?" + c.urlParams_.Encode()
57444	req, err := http.NewRequest("GET", urls, body)
57445	if err != nil {
57446		return nil, err
57447	}
57448	req.Header = reqHeaders
57449	googleapi.Expand(req.URL, map[string]string{
57450		"project":  c.project,
57451		"zone":     c.zone,
57452		"instance": c.instance,
57453	})
57454	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57455}
57456
57457// Do executes the "compute.instances.get" call.
57458// Exactly one of *Instance or error will be non-nil. Any non-2xx status
57459// code is an error. Response headers are in either
57460// *Instance.ServerResponse.Header or (if a response was returned at
57461// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57462// to check whether the returned error was because
57463// http.StatusNotModified was returned.
57464func (c *InstancesGetCall) Do(opts ...googleapi.CallOption) (*Instance, error) {
57465	gensupport.SetOptions(c.urlParams_, opts...)
57466	res, err := c.doRequest("json")
57467	if res != nil && res.StatusCode == http.StatusNotModified {
57468		if res.Body != nil {
57469			res.Body.Close()
57470		}
57471		return nil, &googleapi.Error{
57472			Code:   res.StatusCode,
57473			Header: res.Header,
57474		}
57475	}
57476	if err != nil {
57477		return nil, err
57478	}
57479	defer googleapi.CloseBody(res)
57480	if err := googleapi.CheckResponse(res); err != nil {
57481		return nil, err
57482	}
57483	ret := &Instance{
57484		ServerResponse: googleapi.ServerResponse{
57485			Header:         res.Header,
57486			HTTPStatusCode: res.StatusCode,
57487		},
57488	}
57489	target := &ret
57490	if err := gensupport.DecodeResponse(target, res); err != nil {
57491		return nil, err
57492	}
57493	return ret, nil
57494	// {
57495	//   "description": "Returns the specified Instance resource. Gets a list of available instances by making a list() request.",
57496	//   "httpMethod": "GET",
57497	//   "id": "compute.instances.get",
57498	//   "parameterOrder": [
57499	//     "project",
57500	//     "zone",
57501	//     "instance"
57502	//   ],
57503	//   "parameters": {
57504	//     "instance": {
57505	//       "description": "Name of the instance resource to return.",
57506	//       "location": "path",
57507	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57508	//       "required": true,
57509	//       "type": "string"
57510	//     },
57511	//     "project": {
57512	//       "description": "Project ID for this request.",
57513	//       "location": "path",
57514	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57515	//       "required": true,
57516	//       "type": "string"
57517	//     },
57518	//     "zone": {
57519	//       "description": "The name of the zone for this request.",
57520	//       "location": "path",
57521	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57522	//       "required": true,
57523	//       "type": "string"
57524	//     }
57525	//   },
57526	//   "path": "{project}/zones/{zone}/instances/{instance}",
57527	//   "response": {
57528	//     "$ref": "Instance"
57529	//   },
57530	//   "scopes": [
57531	//     "https://www.googleapis.com/auth/cloud-platform",
57532	//     "https://www.googleapis.com/auth/compute",
57533	//     "https://www.googleapis.com/auth/compute.readonly"
57534	//   ]
57535	// }
57536
57537}
57538
57539// method id "compute.instances.getIamPolicy":
57540
57541type InstancesGetIamPolicyCall struct {
57542	s            *Service
57543	project      string
57544	zone         string
57545	resource     string
57546	urlParams_   gensupport.URLParams
57547	ifNoneMatch_ string
57548	ctx_         context.Context
57549	header_      http.Header
57550}
57551
57552// GetIamPolicy: Gets the access control policy for a resource. May be
57553// empty if no such policy or resource exists.
57554func (r *InstancesService) GetIamPolicy(project string, zone string, resource string) *InstancesGetIamPolicyCall {
57555	c := &InstancesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57556	c.project = project
57557	c.zone = zone
57558	c.resource = resource
57559	return c
57560}
57561
57562// Fields allows partial responses to be retrieved. See
57563// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57564// for more information.
57565func (c *InstancesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesGetIamPolicyCall {
57566	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57567	return c
57568}
57569
57570// IfNoneMatch sets the optional parameter which makes the operation
57571// fail if the object's ETag matches the given value. This is useful for
57572// getting updates only after the object has changed since the last
57573// request. Use googleapi.IsNotModified to check whether the response
57574// error from Do is the result of In-None-Match.
57575func (c *InstancesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstancesGetIamPolicyCall {
57576	c.ifNoneMatch_ = entityTag
57577	return c
57578}
57579
57580// Context sets the context to be used in this call's Do method. Any
57581// pending HTTP request will be aborted if the provided context is
57582// canceled.
57583func (c *InstancesGetIamPolicyCall) Context(ctx context.Context) *InstancesGetIamPolicyCall {
57584	c.ctx_ = ctx
57585	return c
57586}
57587
57588// Header returns an http.Header that can be modified by the caller to
57589// add HTTP headers to the request.
57590func (c *InstancesGetIamPolicyCall) Header() http.Header {
57591	if c.header_ == nil {
57592		c.header_ = make(http.Header)
57593	}
57594	return c.header_
57595}
57596
57597func (c *InstancesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
57598	reqHeaders := make(http.Header)
57599	for k, v := range c.header_ {
57600		reqHeaders[k] = v
57601	}
57602	reqHeaders.Set("User-Agent", c.s.userAgent())
57603	if c.ifNoneMatch_ != "" {
57604		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57605	}
57606	var body io.Reader = nil
57607	c.urlParams_.Set("alt", alt)
57608	c.urlParams_.Set("prettyPrint", "false")
57609	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/getIamPolicy")
57610	urls += "?" + c.urlParams_.Encode()
57611	req, err := http.NewRequest("GET", urls, body)
57612	if err != nil {
57613		return nil, err
57614	}
57615	req.Header = reqHeaders
57616	googleapi.Expand(req.URL, map[string]string{
57617		"project":  c.project,
57618		"zone":     c.zone,
57619		"resource": c.resource,
57620	})
57621	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57622}
57623
57624// Do executes the "compute.instances.getIamPolicy" call.
57625// Exactly one of *Policy or error will be non-nil. Any non-2xx status
57626// code is an error. Response headers are in either
57627// *Policy.ServerResponse.Header or (if a response was returned at all)
57628// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
57629// check whether the returned error was because http.StatusNotModified
57630// was returned.
57631func (c *InstancesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
57632	gensupport.SetOptions(c.urlParams_, opts...)
57633	res, err := c.doRequest("json")
57634	if res != nil && res.StatusCode == http.StatusNotModified {
57635		if res.Body != nil {
57636			res.Body.Close()
57637		}
57638		return nil, &googleapi.Error{
57639			Code:   res.StatusCode,
57640			Header: res.Header,
57641		}
57642	}
57643	if err != nil {
57644		return nil, err
57645	}
57646	defer googleapi.CloseBody(res)
57647	if err := googleapi.CheckResponse(res); err != nil {
57648		return nil, err
57649	}
57650	ret := &Policy{
57651		ServerResponse: googleapi.ServerResponse{
57652			Header:         res.Header,
57653			HTTPStatusCode: res.StatusCode,
57654		},
57655	}
57656	target := &ret
57657	if err := gensupport.DecodeResponse(target, res); err != nil {
57658		return nil, err
57659	}
57660	return ret, nil
57661	// {
57662	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
57663	//   "httpMethod": "GET",
57664	//   "id": "compute.instances.getIamPolicy",
57665	//   "parameterOrder": [
57666	//     "project",
57667	//     "zone",
57668	//     "resource"
57669	//   ],
57670	//   "parameters": {
57671	//     "project": {
57672	//       "description": "Project ID for this request.",
57673	//       "location": "path",
57674	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57675	//       "required": true,
57676	//       "type": "string"
57677	//     },
57678	//     "resource": {
57679	//       "description": "Name or id of the resource for this request.",
57680	//       "location": "path",
57681	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57682	//       "required": true,
57683	//       "type": "string"
57684	//     },
57685	//     "zone": {
57686	//       "description": "The name of the zone for this request.",
57687	//       "location": "path",
57688	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57689	//       "required": true,
57690	//       "type": "string"
57691	//     }
57692	//   },
57693	//   "path": "{project}/zones/{zone}/instances/{resource}/getIamPolicy",
57694	//   "response": {
57695	//     "$ref": "Policy"
57696	//   },
57697	//   "scopes": [
57698	//     "https://www.googleapis.com/auth/cloud-platform",
57699	//     "https://www.googleapis.com/auth/compute",
57700	//     "https://www.googleapis.com/auth/compute.readonly"
57701	//   ]
57702	// }
57703
57704}
57705
57706// method id "compute.instances.getSerialPortOutput":
57707
57708type InstancesGetSerialPortOutputCall struct {
57709	s            *Service
57710	project      string
57711	zone         string
57712	instance     string
57713	urlParams_   gensupport.URLParams
57714	ifNoneMatch_ string
57715	ctx_         context.Context
57716	header_      http.Header
57717}
57718
57719// GetSerialPortOutput: Returns the last 1 MB of serial port output from
57720// the specified instance.
57721// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/getSerialPortOutput
57722func (r *InstancesService) GetSerialPortOutput(project string, zone string, instance string) *InstancesGetSerialPortOutputCall {
57723	c := &InstancesGetSerialPortOutputCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57724	c.project = project
57725	c.zone = zone
57726	c.instance = instance
57727	return c
57728}
57729
57730// Port sets the optional parameter "port": Specifies which COM or
57731// serial port to retrieve data from.
57732func (c *InstancesGetSerialPortOutputCall) Port(port int64) *InstancesGetSerialPortOutputCall {
57733	c.urlParams_.Set("port", fmt.Sprint(port))
57734	return c
57735}
57736
57737// Start sets the optional parameter "start": Returns output starting
57738// from a specific byte position. Use this to page through output when
57739// the output is too large to return in a single request. For the
57740// initial request, leave this field unspecified. For subsequent calls,
57741// this field should be set to the next value returned in the previous
57742// call.
57743func (c *InstancesGetSerialPortOutputCall) Start(start int64) *InstancesGetSerialPortOutputCall {
57744	c.urlParams_.Set("start", fmt.Sprint(start))
57745	return c
57746}
57747
57748// Fields allows partial responses to be retrieved. See
57749// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57750// for more information.
57751func (c *InstancesGetSerialPortOutputCall) Fields(s ...googleapi.Field) *InstancesGetSerialPortOutputCall {
57752	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57753	return c
57754}
57755
57756// IfNoneMatch sets the optional parameter which makes the operation
57757// fail if the object's ETag matches the given value. This is useful for
57758// getting updates only after the object has changed since the last
57759// request. Use googleapi.IsNotModified to check whether the response
57760// error from Do is the result of In-None-Match.
57761func (c *InstancesGetSerialPortOutputCall) IfNoneMatch(entityTag string) *InstancesGetSerialPortOutputCall {
57762	c.ifNoneMatch_ = entityTag
57763	return c
57764}
57765
57766// Context sets the context to be used in this call's Do method. Any
57767// pending HTTP request will be aborted if the provided context is
57768// canceled.
57769func (c *InstancesGetSerialPortOutputCall) Context(ctx context.Context) *InstancesGetSerialPortOutputCall {
57770	c.ctx_ = ctx
57771	return c
57772}
57773
57774// Header returns an http.Header that can be modified by the caller to
57775// add HTTP headers to the request.
57776func (c *InstancesGetSerialPortOutputCall) Header() http.Header {
57777	if c.header_ == nil {
57778		c.header_ = make(http.Header)
57779	}
57780	return c.header_
57781}
57782
57783func (c *InstancesGetSerialPortOutputCall) doRequest(alt string) (*http.Response, error) {
57784	reqHeaders := make(http.Header)
57785	for k, v := range c.header_ {
57786		reqHeaders[k] = v
57787	}
57788	reqHeaders.Set("User-Agent", c.s.userAgent())
57789	if c.ifNoneMatch_ != "" {
57790		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57791	}
57792	var body io.Reader = nil
57793	c.urlParams_.Set("alt", alt)
57794	c.urlParams_.Set("prettyPrint", "false")
57795	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/serialPort")
57796	urls += "?" + c.urlParams_.Encode()
57797	req, err := http.NewRequest("GET", urls, body)
57798	if err != nil {
57799		return nil, err
57800	}
57801	req.Header = reqHeaders
57802	googleapi.Expand(req.URL, map[string]string{
57803		"project":  c.project,
57804		"zone":     c.zone,
57805		"instance": c.instance,
57806	})
57807	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57808}
57809
57810// Do executes the "compute.instances.getSerialPortOutput" call.
57811// Exactly one of *SerialPortOutput or error will be non-nil. Any
57812// non-2xx status code is an error. Response headers are in either
57813// *SerialPortOutput.ServerResponse.Header or (if a response was
57814// returned at all) in error.(*googleapi.Error).Header. Use
57815// googleapi.IsNotModified to check whether the returned error was
57816// because http.StatusNotModified was returned.
57817func (c *InstancesGetSerialPortOutputCall) Do(opts ...googleapi.CallOption) (*SerialPortOutput, error) {
57818	gensupport.SetOptions(c.urlParams_, opts...)
57819	res, err := c.doRequest("json")
57820	if res != nil && res.StatusCode == http.StatusNotModified {
57821		if res.Body != nil {
57822			res.Body.Close()
57823		}
57824		return nil, &googleapi.Error{
57825			Code:   res.StatusCode,
57826			Header: res.Header,
57827		}
57828	}
57829	if err != nil {
57830		return nil, err
57831	}
57832	defer googleapi.CloseBody(res)
57833	if err := googleapi.CheckResponse(res); err != nil {
57834		return nil, err
57835	}
57836	ret := &SerialPortOutput{
57837		ServerResponse: googleapi.ServerResponse{
57838			Header:         res.Header,
57839			HTTPStatusCode: res.StatusCode,
57840		},
57841	}
57842	target := &ret
57843	if err := gensupport.DecodeResponse(target, res); err != nil {
57844		return nil, err
57845	}
57846	return ret, nil
57847	// {
57848	//   "description": "Returns the last 1 MB of serial port output from the specified instance.",
57849	//   "httpMethod": "GET",
57850	//   "id": "compute.instances.getSerialPortOutput",
57851	//   "parameterOrder": [
57852	//     "project",
57853	//     "zone",
57854	//     "instance"
57855	//   ],
57856	//   "parameters": {
57857	//     "instance": {
57858	//       "description": "Name of the instance scoping this request.",
57859	//       "location": "path",
57860	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57861	//       "required": true,
57862	//       "type": "string"
57863	//     },
57864	//     "port": {
57865	//       "default": "1",
57866	//       "description": "Specifies which COM or serial port to retrieve data from.",
57867	//       "format": "int32",
57868	//       "location": "query",
57869	//       "maximum": "4",
57870	//       "minimum": "1",
57871	//       "type": "integer"
57872	//     },
57873	//     "project": {
57874	//       "description": "Project ID for this request.",
57875	//       "location": "path",
57876	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57877	//       "required": true,
57878	//       "type": "string"
57879	//     },
57880	//     "start": {
57881	//       "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.",
57882	//       "format": "int64",
57883	//       "location": "query",
57884	//       "type": "string"
57885	//     },
57886	//     "zone": {
57887	//       "description": "The name of the zone for this request.",
57888	//       "location": "path",
57889	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57890	//       "required": true,
57891	//       "type": "string"
57892	//     }
57893	//   },
57894	//   "path": "{project}/zones/{zone}/instances/{instance}/serialPort",
57895	//   "response": {
57896	//     "$ref": "SerialPortOutput"
57897	//   },
57898	//   "scopes": [
57899	//     "https://www.googleapis.com/auth/cloud-platform",
57900	//     "https://www.googleapis.com/auth/compute",
57901	//     "https://www.googleapis.com/auth/compute.readonly"
57902	//   ]
57903	// }
57904
57905}
57906
57907// method id "compute.instances.getShieldedInstanceIdentity":
57908
57909type InstancesGetShieldedInstanceIdentityCall struct {
57910	s            *Service
57911	project      string
57912	zone         string
57913	instance     string
57914	urlParams_   gensupport.URLParams
57915	ifNoneMatch_ string
57916	ctx_         context.Context
57917	header_      http.Header
57918}
57919
57920// GetShieldedInstanceIdentity: Returns the Shielded Instance Identity
57921// of an instance
57922func (r *InstancesService) GetShieldedInstanceIdentity(project string, zone string, instance string) *InstancesGetShieldedInstanceIdentityCall {
57923	c := &InstancesGetShieldedInstanceIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57924	c.project = project
57925	c.zone = zone
57926	c.instance = instance
57927	return c
57928}
57929
57930// Fields allows partial responses to be retrieved. See
57931// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57932// for more information.
57933func (c *InstancesGetShieldedInstanceIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedInstanceIdentityCall {
57934	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57935	return c
57936}
57937
57938// IfNoneMatch sets the optional parameter which makes the operation
57939// fail if the object's ETag matches the given value. This is useful for
57940// getting updates only after the object has changed since the last
57941// request. Use googleapi.IsNotModified to check whether the response
57942// error from Do is the result of In-None-Match.
57943func (c *InstancesGetShieldedInstanceIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedInstanceIdentityCall {
57944	c.ifNoneMatch_ = entityTag
57945	return c
57946}
57947
57948// Context sets the context to be used in this call's Do method. Any
57949// pending HTTP request will be aborted if the provided context is
57950// canceled.
57951func (c *InstancesGetShieldedInstanceIdentityCall) Context(ctx context.Context) *InstancesGetShieldedInstanceIdentityCall {
57952	c.ctx_ = ctx
57953	return c
57954}
57955
57956// Header returns an http.Header that can be modified by the caller to
57957// add HTTP headers to the request.
57958func (c *InstancesGetShieldedInstanceIdentityCall) Header() http.Header {
57959	if c.header_ == nil {
57960		c.header_ = make(http.Header)
57961	}
57962	return c.header_
57963}
57964
57965func (c *InstancesGetShieldedInstanceIdentityCall) doRequest(alt string) (*http.Response, error) {
57966	reqHeaders := make(http.Header)
57967	for k, v := range c.header_ {
57968		reqHeaders[k] = v
57969	}
57970	reqHeaders.Set("User-Agent", c.s.userAgent())
57971	if c.ifNoneMatch_ != "" {
57972		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57973	}
57974	var body io.Reader = nil
57975	c.urlParams_.Set("alt", alt)
57976	c.urlParams_.Set("prettyPrint", "false")
57977	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity")
57978	urls += "?" + c.urlParams_.Encode()
57979	req, err := http.NewRequest("GET", urls, body)
57980	if err != nil {
57981		return nil, err
57982	}
57983	req.Header = reqHeaders
57984	googleapi.Expand(req.URL, map[string]string{
57985		"project":  c.project,
57986		"zone":     c.zone,
57987		"instance": c.instance,
57988	})
57989	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57990}
57991
57992// Do executes the "compute.instances.getShieldedInstanceIdentity" call.
57993// Exactly one of *ShieldedInstanceIdentity or error will be non-nil.
57994// Any non-2xx status code is an error. Response headers are in either
57995// *ShieldedInstanceIdentity.ServerResponse.Header or (if a response was
57996// returned at all) in error.(*googleapi.Error).Header. Use
57997// googleapi.IsNotModified to check whether the returned error was
57998// because http.StatusNotModified was returned.
57999func (c *InstancesGetShieldedInstanceIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedInstanceIdentity, error) {
58000	gensupport.SetOptions(c.urlParams_, opts...)
58001	res, err := c.doRequest("json")
58002	if res != nil && res.StatusCode == http.StatusNotModified {
58003		if res.Body != nil {
58004			res.Body.Close()
58005		}
58006		return nil, &googleapi.Error{
58007			Code:   res.StatusCode,
58008			Header: res.Header,
58009		}
58010	}
58011	if err != nil {
58012		return nil, err
58013	}
58014	defer googleapi.CloseBody(res)
58015	if err := googleapi.CheckResponse(res); err != nil {
58016		return nil, err
58017	}
58018	ret := &ShieldedInstanceIdentity{
58019		ServerResponse: googleapi.ServerResponse{
58020			Header:         res.Header,
58021			HTTPStatusCode: res.StatusCode,
58022		},
58023	}
58024	target := &ret
58025	if err := gensupport.DecodeResponse(target, res); err != nil {
58026		return nil, err
58027	}
58028	return ret, nil
58029	// {
58030	//   "description": "Returns the Shielded Instance Identity of an instance",
58031	//   "httpMethod": "GET",
58032	//   "id": "compute.instances.getShieldedInstanceIdentity",
58033	//   "parameterOrder": [
58034	//     "project",
58035	//     "zone",
58036	//     "instance"
58037	//   ],
58038	//   "parameters": {
58039	//     "instance": {
58040	//       "description": "Name or id of the instance scoping this request.",
58041	//       "location": "path",
58042	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58043	//       "required": true,
58044	//       "type": "string"
58045	//     },
58046	//     "project": {
58047	//       "description": "Project ID for this request.",
58048	//       "location": "path",
58049	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58050	//       "required": true,
58051	//       "type": "string"
58052	//     },
58053	//     "zone": {
58054	//       "description": "The name of the zone for this request.",
58055	//       "location": "path",
58056	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58057	//       "required": true,
58058	//       "type": "string"
58059	//     }
58060	//   },
58061	//   "path": "{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity",
58062	//   "response": {
58063	//     "$ref": "ShieldedInstanceIdentity"
58064	//   },
58065	//   "scopes": [
58066	//     "https://www.googleapis.com/auth/cloud-platform",
58067	//     "https://www.googleapis.com/auth/compute",
58068	//     "https://www.googleapis.com/auth/compute.readonly"
58069	//   ]
58070	// }
58071
58072}
58073
58074// method id "compute.instances.insert":
58075
58076type InstancesInsertCall struct {
58077	s          *Service
58078	project    string
58079	zone       string
58080	instance   *Instance
58081	urlParams_ gensupport.URLParams
58082	ctx_       context.Context
58083	header_    http.Header
58084}
58085
58086// Insert: Creates an instance resource in the specified project using
58087// the data included in the request.
58088// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/insert
58089func (r *InstancesService) Insert(project string, zone string, instance *Instance) *InstancesInsertCall {
58090	c := &InstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58091	c.project = project
58092	c.zone = zone
58093	c.instance = instance
58094	return c
58095}
58096
58097// RequestId sets the optional parameter "requestId": An optional
58098// request ID to identify requests. Specify a unique request ID so that
58099// if you must retry your request, the server will know to ignore the
58100// request if it has already been completed.
58101//
58102// For example, consider a situation where you make an initial request
58103// and the request times out. If you make the request again with the
58104// same request ID, the server can check if original operation with the
58105// same request ID was received, and if so, will ignore the second
58106// request. This prevents clients from accidentally creating duplicate
58107// commitments.
58108//
58109// The request ID must be a valid UUID with the exception that zero UUID
58110// is not supported (00000000-0000-0000-0000-000000000000).
58111func (c *InstancesInsertCall) RequestId(requestId string) *InstancesInsertCall {
58112	c.urlParams_.Set("requestId", requestId)
58113	return c
58114}
58115
58116// SourceInstanceTemplate sets the optional parameter
58117// "sourceInstanceTemplate": Specifies instance template to create the
58118// instance.
58119//
58120// This field is optional. It can be a full or partial URL. For example,
58121// the following are all valid URLs to an instance template:
58122// -
58123// https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate
58124// - projects/project/global/instanceTemplates/instanceTemplate
58125// - global/instanceTemplates/instanceTemplate
58126func (c *InstancesInsertCall) SourceInstanceTemplate(sourceInstanceTemplate string) *InstancesInsertCall {
58127	c.urlParams_.Set("sourceInstanceTemplate", sourceInstanceTemplate)
58128	return c
58129}
58130
58131// Fields allows partial responses to be retrieved. See
58132// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58133// for more information.
58134func (c *InstancesInsertCall) Fields(s ...googleapi.Field) *InstancesInsertCall {
58135	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58136	return c
58137}
58138
58139// Context sets the context to be used in this call's Do method. Any
58140// pending HTTP request will be aborted if the provided context is
58141// canceled.
58142func (c *InstancesInsertCall) Context(ctx context.Context) *InstancesInsertCall {
58143	c.ctx_ = ctx
58144	return c
58145}
58146
58147// Header returns an http.Header that can be modified by the caller to
58148// add HTTP headers to the request.
58149func (c *InstancesInsertCall) Header() http.Header {
58150	if c.header_ == nil {
58151		c.header_ = make(http.Header)
58152	}
58153	return c.header_
58154}
58155
58156func (c *InstancesInsertCall) doRequest(alt string) (*http.Response, error) {
58157	reqHeaders := make(http.Header)
58158	for k, v := range c.header_ {
58159		reqHeaders[k] = v
58160	}
58161	reqHeaders.Set("User-Agent", c.s.userAgent())
58162	var body io.Reader = nil
58163	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance)
58164	if err != nil {
58165		return nil, err
58166	}
58167	reqHeaders.Set("Content-Type", "application/json")
58168	c.urlParams_.Set("alt", alt)
58169	c.urlParams_.Set("prettyPrint", "false")
58170	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances")
58171	urls += "?" + c.urlParams_.Encode()
58172	req, err := http.NewRequest("POST", urls, body)
58173	if err != nil {
58174		return nil, err
58175	}
58176	req.Header = reqHeaders
58177	googleapi.Expand(req.URL, map[string]string{
58178		"project": c.project,
58179		"zone":    c.zone,
58180	})
58181	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58182}
58183
58184// Do executes the "compute.instances.insert" call.
58185// Exactly one of *Operation or error will be non-nil. Any non-2xx
58186// status code is an error. Response headers are in either
58187// *Operation.ServerResponse.Header or (if a response was returned at
58188// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58189// to check whether the returned error was because
58190// http.StatusNotModified was returned.
58191func (c *InstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58192	gensupport.SetOptions(c.urlParams_, opts...)
58193	res, err := c.doRequest("json")
58194	if res != nil && res.StatusCode == http.StatusNotModified {
58195		if res.Body != nil {
58196			res.Body.Close()
58197		}
58198		return nil, &googleapi.Error{
58199			Code:   res.StatusCode,
58200			Header: res.Header,
58201		}
58202	}
58203	if err != nil {
58204		return nil, err
58205	}
58206	defer googleapi.CloseBody(res)
58207	if err := googleapi.CheckResponse(res); err != nil {
58208		return nil, err
58209	}
58210	ret := &Operation{
58211		ServerResponse: googleapi.ServerResponse{
58212			Header:         res.Header,
58213			HTTPStatusCode: res.StatusCode,
58214		},
58215	}
58216	target := &ret
58217	if err := gensupport.DecodeResponse(target, res); err != nil {
58218		return nil, err
58219	}
58220	return ret, nil
58221	// {
58222	//   "description": "Creates an instance resource in the specified project using the data included in the request.",
58223	//   "httpMethod": "POST",
58224	//   "id": "compute.instances.insert",
58225	//   "parameterOrder": [
58226	//     "project",
58227	//     "zone"
58228	//   ],
58229	//   "parameters": {
58230	//     "project": {
58231	//       "description": "Project ID for this request.",
58232	//       "location": "path",
58233	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58234	//       "required": true,
58235	//       "type": "string"
58236	//     },
58237	//     "requestId": {
58238	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58239	//       "location": "query",
58240	//       "type": "string"
58241	//     },
58242	//     "sourceInstanceTemplate": {
58243	//       "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",
58244	//       "location": "query",
58245	//       "type": "string"
58246	//     },
58247	//     "zone": {
58248	//       "description": "The name of the zone for this request.",
58249	//       "location": "path",
58250	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58251	//       "required": true,
58252	//       "type": "string"
58253	//     }
58254	//   },
58255	//   "path": "{project}/zones/{zone}/instances",
58256	//   "request": {
58257	//     "$ref": "Instance"
58258	//   },
58259	//   "response": {
58260	//     "$ref": "Operation"
58261	//   },
58262	//   "scopes": [
58263	//     "https://www.googleapis.com/auth/cloud-platform",
58264	//     "https://www.googleapis.com/auth/compute"
58265	//   ]
58266	// }
58267
58268}
58269
58270// method id "compute.instances.list":
58271
58272type InstancesListCall struct {
58273	s            *Service
58274	project      string
58275	zone         string
58276	urlParams_   gensupport.URLParams
58277	ifNoneMatch_ string
58278	ctx_         context.Context
58279	header_      http.Header
58280}
58281
58282// List: Retrieves the list of instances contained within the specified
58283// zone.
58284// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/list
58285func (r *InstancesService) List(project string, zone string) *InstancesListCall {
58286	c := &InstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58287	c.project = project
58288	c.zone = zone
58289	return c
58290}
58291
58292// Filter sets the optional parameter "filter": A filter expression that
58293// filters resources listed in the response. The expression must specify
58294// the field name, a comparison operator, and the value that you want to
58295// use for filtering. The value must be a string, a number, or a
58296// boolean. The comparison operator must be either =, !=, >, or <.
58297//
58298// For example, if you are filtering Compute Engine instances, you can
58299// exclude instances named example-instance by specifying name !=
58300// example-instance.
58301//
58302// You can also filter nested fields. For example, you could specify
58303// scheduling.automaticRestart = false to include instances only if they
58304// are not scheduled for automatic restarts. You can use filtering on
58305// nested fields to filter based on resource labels.
58306//
58307// To filter on multiple expressions, provide each separate expression
58308// within parentheses. For example, (scheduling.automaticRestart = true)
58309// (cpuPlatform = "Intel Skylake"). By default, each expression is an
58310// AND expression. However, you can include AND and OR expressions
58311// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
58312// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
58313// true).
58314func (c *InstancesListCall) Filter(filter string) *InstancesListCall {
58315	c.urlParams_.Set("filter", filter)
58316	return c
58317}
58318
58319// MaxResults sets the optional parameter "maxResults": The maximum
58320// number of results per page that should be returned. If the number of
58321// available results is larger than maxResults, Compute Engine returns a
58322// nextPageToken that can be used to get the next page of results in
58323// subsequent list requests. Acceptable values are 0 to 500, inclusive.
58324// (Default: 500)
58325func (c *InstancesListCall) MaxResults(maxResults int64) *InstancesListCall {
58326	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
58327	return c
58328}
58329
58330// OrderBy sets the optional parameter "orderBy": Sorts list results by
58331// a certain order. By default, results are returned in alphanumerical
58332// order based on the resource name.
58333//
58334// You can also sort results in descending order based on the creation
58335// timestamp using orderBy="creationTimestamp desc". This sorts results
58336// based on the creationTimestamp field in reverse chronological order
58337// (newest result first). Use this to sort resources like operations so
58338// that the newest operation is returned first.
58339//
58340// Currently, only sorting by name or creationTimestamp desc is
58341// supported.
58342func (c *InstancesListCall) OrderBy(orderBy string) *InstancesListCall {
58343	c.urlParams_.Set("orderBy", orderBy)
58344	return c
58345}
58346
58347// PageToken sets the optional parameter "pageToken": Specifies a page
58348// token to use. Set pageToken to the nextPageToken returned by a
58349// previous list request to get the next page of results.
58350func (c *InstancesListCall) PageToken(pageToken string) *InstancesListCall {
58351	c.urlParams_.Set("pageToken", pageToken)
58352	return c
58353}
58354
58355// Fields allows partial responses to be retrieved. See
58356// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58357// for more information.
58358func (c *InstancesListCall) Fields(s ...googleapi.Field) *InstancesListCall {
58359	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58360	return c
58361}
58362
58363// IfNoneMatch sets the optional parameter which makes the operation
58364// fail if the object's ETag matches the given value. This is useful for
58365// getting updates only after the object has changed since the last
58366// request. Use googleapi.IsNotModified to check whether the response
58367// error from Do is the result of In-None-Match.
58368func (c *InstancesListCall) IfNoneMatch(entityTag string) *InstancesListCall {
58369	c.ifNoneMatch_ = entityTag
58370	return c
58371}
58372
58373// Context sets the context to be used in this call's Do method. Any
58374// pending HTTP request will be aborted if the provided context is
58375// canceled.
58376func (c *InstancesListCall) Context(ctx context.Context) *InstancesListCall {
58377	c.ctx_ = ctx
58378	return c
58379}
58380
58381// Header returns an http.Header that can be modified by the caller to
58382// add HTTP headers to the request.
58383func (c *InstancesListCall) Header() http.Header {
58384	if c.header_ == nil {
58385		c.header_ = make(http.Header)
58386	}
58387	return c.header_
58388}
58389
58390func (c *InstancesListCall) doRequest(alt string) (*http.Response, error) {
58391	reqHeaders := make(http.Header)
58392	for k, v := range c.header_ {
58393		reqHeaders[k] = v
58394	}
58395	reqHeaders.Set("User-Agent", c.s.userAgent())
58396	if c.ifNoneMatch_ != "" {
58397		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58398	}
58399	var body io.Reader = nil
58400	c.urlParams_.Set("alt", alt)
58401	c.urlParams_.Set("prettyPrint", "false")
58402	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances")
58403	urls += "?" + c.urlParams_.Encode()
58404	req, err := http.NewRequest("GET", urls, body)
58405	if err != nil {
58406		return nil, err
58407	}
58408	req.Header = reqHeaders
58409	googleapi.Expand(req.URL, map[string]string{
58410		"project": c.project,
58411		"zone":    c.zone,
58412	})
58413	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58414}
58415
58416// Do executes the "compute.instances.list" call.
58417// Exactly one of *InstanceList or error will be non-nil. Any non-2xx
58418// status code is an error. Response headers are in either
58419// *InstanceList.ServerResponse.Header or (if a response was returned at
58420// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58421// to check whether the returned error was because
58422// http.StatusNotModified was returned.
58423func (c *InstancesListCall) Do(opts ...googleapi.CallOption) (*InstanceList, error) {
58424	gensupport.SetOptions(c.urlParams_, opts...)
58425	res, err := c.doRequest("json")
58426	if res != nil && res.StatusCode == http.StatusNotModified {
58427		if res.Body != nil {
58428			res.Body.Close()
58429		}
58430		return nil, &googleapi.Error{
58431			Code:   res.StatusCode,
58432			Header: res.Header,
58433		}
58434	}
58435	if err != nil {
58436		return nil, err
58437	}
58438	defer googleapi.CloseBody(res)
58439	if err := googleapi.CheckResponse(res); err != nil {
58440		return nil, err
58441	}
58442	ret := &InstanceList{
58443		ServerResponse: googleapi.ServerResponse{
58444			Header:         res.Header,
58445			HTTPStatusCode: res.StatusCode,
58446		},
58447	}
58448	target := &ret
58449	if err := gensupport.DecodeResponse(target, res); err != nil {
58450		return nil, err
58451	}
58452	return ret, nil
58453	// {
58454	//   "description": "Retrieves the list of instances contained within the specified zone.",
58455	//   "httpMethod": "GET",
58456	//   "id": "compute.instances.list",
58457	//   "parameterOrder": [
58458	//     "project",
58459	//     "zone"
58460	//   ],
58461	//   "parameters": {
58462	//     "filter": {
58463	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
58464	//       "location": "query",
58465	//       "type": "string"
58466	//     },
58467	//     "maxResults": {
58468	//       "default": "500",
58469	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
58470	//       "format": "uint32",
58471	//       "location": "query",
58472	//       "minimum": "0",
58473	//       "type": "integer"
58474	//     },
58475	//     "orderBy": {
58476	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
58477	//       "location": "query",
58478	//       "type": "string"
58479	//     },
58480	//     "pageToken": {
58481	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
58482	//       "location": "query",
58483	//       "type": "string"
58484	//     },
58485	//     "project": {
58486	//       "description": "Project ID for this request.",
58487	//       "location": "path",
58488	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58489	//       "required": true,
58490	//       "type": "string"
58491	//     },
58492	//     "zone": {
58493	//       "description": "The name of the zone for this request.",
58494	//       "location": "path",
58495	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58496	//       "required": true,
58497	//       "type": "string"
58498	//     }
58499	//   },
58500	//   "path": "{project}/zones/{zone}/instances",
58501	//   "response": {
58502	//     "$ref": "InstanceList"
58503	//   },
58504	//   "scopes": [
58505	//     "https://www.googleapis.com/auth/cloud-platform",
58506	//     "https://www.googleapis.com/auth/compute",
58507	//     "https://www.googleapis.com/auth/compute.readonly"
58508	//   ]
58509	// }
58510
58511}
58512
58513// Pages invokes f for each page of results.
58514// A non-nil error returned from f will halt the iteration.
58515// The provided context supersedes any context provided to the Context method.
58516func (c *InstancesListCall) Pages(ctx context.Context, f func(*InstanceList) error) error {
58517	c.ctx_ = ctx
58518	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
58519	for {
58520		x, err := c.Do()
58521		if err != nil {
58522			return err
58523		}
58524		if err := f(x); err != nil {
58525			return err
58526		}
58527		if x.NextPageToken == "" {
58528			return nil
58529		}
58530		c.PageToken(x.NextPageToken)
58531	}
58532}
58533
58534// method id "compute.instances.listReferrers":
58535
58536type InstancesListReferrersCall struct {
58537	s            *Service
58538	project      string
58539	zone         string
58540	instance     string
58541	urlParams_   gensupport.URLParams
58542	ifNoneMatch_ string
58543	ctx_         context.Context
58544	header_      http.Header
58545}
58546
58547// ListReferrers: Retrieves the list of referrers to instances contained
58548// within the specified zone. For more information, read Viewing
58549// Referrers to VM Instances.
58550func (r *InstancesService) ListReferrers(project string, zone string, instance string) *InstancesListReferrersCall {
58551	c := &InstancesListReferrersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58552	c.project = project
58553	c.zone = zone
58554	c.instance = instance
58555	return c
58556}
58557
58558// Filter sets the optional parameter "filter": A filter expression that
58559// filters resources listed in the response. The expression must specify
58560// the field name, a comparison operator, and the value that you want to
58561// use for filtering. The value must be a string, a number, or a
58562// boolean. The comparison operator must be either =, !=, >, or <.
58563//
58564// For example, if you are filtering Compute Engine instances, you can
58565// exclude instances named example-instance by specifying name !=
58566// example-instance.
58567//
58568// You can also filter nested fields. For example, you could specify
58569// scheduling.automaticRestart = false to include instances only if they
58570// are not scheduled for automatic restarts. You can use filtering on
58571// nested fields to filter based on resource labels.
58572//
58573// To filter on multiple expressions, provide each separate expression
58574// within parentheses. For example, (scheduling.automaticRestart = true)
58575// (cpuPlatform = "Intel Skylake"). By default, each expression is an
58576// AND expression. However, you can include AND and OR expressions
58577// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
58578// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
58579// true).
58580func (c *InstancesListReferrersCall) Filter(filter string) *InstancesListReferrersCall {
58581	c.urlParams_.Set("filter", filter)
58582	return c
58583}
58584
58585// MaxResults sets the optional parameter "maxResults": The maximum
58586// number of results per page that should be returned. If the number of
58587// available results is larger than maxResults, Compute Engine returns a
58588// nextPageToken that can be used to get the next page of results in
58589// subsequent list requests. Acceptable values are 0 to 500, inclusive.
58590// (Default: 500)
58591func (c *InstancesListReferrersCall) MaxResults(maxResults int64) *InstancesListReferrersCall {
58592	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
58593	return c
58594}
58595
58596// OrderBy sets the optional parameter "orderBy": Sorts list results by
58597// a certain order. By default, results are returned in alphanumerical
58598// order based on the resource name.
58599//
58600// You can also sort results in descending order based on the creation
58601// timestamp using orderBy="creationTimestamp desc". This sorts results
58602// based on the creationTimestamp field in reverse chronological order
58603// (newest result first). Use this to sort resources like operations so
58604// that the newest operation is returned first.
58605//
58606// Currently, only sorting by name or creationTimestamp desc is
58607// supported.
58608func (c *InstancesListReferrersCall) OrderBy(orderBy string) *InstancesListReferrersCall {
58609	c.urlParams_.Set("orderBy", orderBy)
58610	return c
58611}
58612
58613// PageToken sets the optional parameter "pageToken": Specifies a page
58614// token to use. Set pageToken to the nextPageToken returned by a
58615// previous list request to get the next page of results.
58616func (c *InstancesListReferrersCall) PageToken(pageToken string) *InstancesListReferrersCall {
58617	c.urlParams_.Set("pageToken", pageToken)
58618	return c
58619}
58620
58621// Fields allows partial responses to be retrieved. See
58622// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58623// for more information.
58624func (c *InstancesListReferrersCall) Fields(s ...googleapi.Field) *InstancesListReferrersCall {
58625	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58626	return c
58627}
58628
58629// IfNoneMatch sets the optional parameter which makes the operation
58630// fail if the object's ETag matches the given value. This is useful for
58631// getting updates only after the object has changed since the last
58632// request. Use googleapi.IsNotModified to check whether the response
58633// error from Do is the result of In-None-Match.
58634func (c *InstancesListReferrersCall) IfNoneMatch(entityTag string) *InstancesListReferrersCall {
58635	c.ifNoneMatch_ = entityTag
58636	return c
58637}
58638
58639// Context sets the context to be used in this call's Do method. Any
58640// pending HTTP request will be aborted if the provided context is
58641// canceled.
58642func (c *InstancesListReferrersCall) Context(ctx context.Context) *InstancesListReferrersCall {
58643	c.ctx_ = ctx
58644	return c
58645}
58646
58647// Header returns an http.Header that can be modified by the caller to
58648// add HTTP headers to the request.
58649func (c *InstancesListReferrersCall) Header() http.Header {
58650	if c.header_ == nil {
58651		c.header_ = make(http.Header)
58652	}
58653	return c.header_
58654}
58655
58656func (c *InstancesListReferrersCall) doRequest(alt string) (*http.Response, error) {
58657	reqHeaders := make(http.Header)
58658	for k, v := range c.header_ {
58659		reqHeaders[k] = v
58660	}
58661	reqHeaders.Set("User-Agent", c.s.userAgent())
58662	if c.ifNoneMatch_ != "" {
58663		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58664	}
58665	var body io.Reader = nil
58666	c.urlParams_.Set("alt", alt)
58667	c.urlParams_.Set("prettyPrint", "false")
58668	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/referrers")
58669	urls += "?" + c.urlParams_.Encode()
58670	req, err := http.NewRequest("GET", urls, body)
58671	if err != nil {
58672		return nil, err
58673	}
58674	req.Header = reqHeaders
58675	googleapi.Expand(req.URL, map[string]string{
58676		"project":  c.project,
58677		"zone":     c.zone,
58678		"instance": c.instance,
58679	})
58680	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58681}
58682
58683// Do executes the "compute.instances.listReferrers" call.
58684// Exactly one of *InstanceListReferrers or error will be non-nil. Any
58685// non-2xx status code is an error. Response headers are in either
58686// *InstanceListReferrers.ServerResponse.Header or (if a response was
58687// returned at all) in error.(*googleapi.Error).Header. Use
58688// googleapi.IsNotModified to check whether the returned error was
58689// because http.StatusNotModified was returned.
58690func (c *InstancesListReferrersCall) Do(opts ...googleapi.CallOption) (*InstanceListReferrers, error) {
58691	gensupport.SetOptions(c.urlParams_, opts...)
58692	res, err := c.doRequest("json")
58693	if res != nil && res.StatusCode == http.StatusNotModified {
58694		if res.Body != nil {
58695			res.Body.Close()
58696		}
58697		return nil, &googleapi.Error{
58698			Code:   res.StatusCode,
58699			Header: res.Header,
58700		}
58701	}
58702	if err != nil {
58703		return nil, err
58704	}
58705	defer googleapi.CloseBody(res)
58706	if err := googleapi.CheckResponse(res); err != nil {
58707		return nil, err
58708	}
58709	ret := &InstanceListReferrers{
58710		ServerResponse: googleapi.ServerResponse{
58711			Header:         res.Header,
58712			HTTPStatusCode: res.StatusCode,
58713		},
58714	}
58715	target := &ret
58716	if err := gensupport.DecodeResponse(target, res); err != nil {
58717		return nil, err
58718	}
58719	return ret, nil
58720	// {
58721	//   "description": "Retrieves the list of referrers to instances contained within the specified zone. For more information, read Viewing Referrers to VM Instances.",
58722	//   "httpMethod": "GET",
58723	//   "id": "compute.instances.listReferrers",
58724	//   "parameterOrder": [
58725	//     "project",
58726	//     "zone",
58727	//     "instance"
58728	//   ],
58729	//   "parameters": {
58730	//     "filter": {
58731	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
58732	//       "location": "query",
58733	//       "type": "string"
58734	//     },
58735	//     "instance": {
58736	//       "description": "Name of the target instance scoping this request, or '-' if the request should span over all instances in the container.",
58737	//       "location": "path",
58738	//       "pattern": "-|[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58739	//       "required": true,
58740	//       "type": "string"
58741	//     },
58742	//     "maxResults": {
58743	//       "default": "500",
58744	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
58745	//       "format": "uint32",
58746	//       "location": "query",
58747	//       "minimum": "0",
58748	//       "type": "integer"
58749	//     },
58750	//     "orderBy": {
58751	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
58752	//       "location": "query",
58753	//       "type": "string"
58754	//     },
58755	//     "pageToken": {
58756	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
58757	//       "location": "query",
58758	//       "type": "string"
58759	//     },
58760	//     "project": {
58761	//       "description": "Project ID for this request.",
58762	//       "location": "path",
58763	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58764	//       "required": true,
58765	//       "type": "string"
58766	//     },
58767	//     "zone": {
58768	//       "description": "The name of the zone for this request.",
58769	//       "location": "path",
58770	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58771	//       "required": true,
58772	//       "type": "string"
58773	//     }
58774	//   },
58775	//   "path": "{project}/zones/{zone}/instances/{instance}/referrers",
58776	//   "response": {
58777	//     "$ref": "InstanceListReferrers"
58778	//   },
58779	//   "scopes": [
58780	//     "https://www.googleapis.com/auth/cloud-platform",
58781	//     "https://www.googleapis.com/auth/compute",
58782	//     "https://www.googleapis.com/auth/compute.readonly"
58783	//   ]
58784	// }
58785
58786}
58787
58788// Pages invokes f for each page of results.
58789// A non-nil error returned from f will halt the iteration.
58790// The provided context supersedes any context provided to the Context method.
58791func (c *InstancesListReferrersCall) Pages(ctx context.Context, f func(*InstanceListReferrers) error) error {
58792	c.ctx_ = ctx
58793	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
58794	for {
58795		x, err := c.Do()
58796		if err != nil {
58797			return err
58798		}
58799		if err := f(x); err != nil {
58800			return err
58801		}
58802		if x.NextPageToken == "" {
58803			return nil
58804		}
58805		c.PageToken(x.NextPageToken)
58806	}
58807}
58808
58809// method id "compute.instances.reset":
58810
58811type InstancesResetCall struct {
58812	s          *Service
58813	project    string
58814	zone       string
58815	instance   string
58816	urlParams_ gensupport.URLParams
58817	ctx_       context.Context
58818	header_    http.Header
58819}
58820
58821// Reset: Performs a reset on the instance. This is a hard reset the VM
58822// does not do a graceful shutdown. For more information, see Resetting
58823// an instance.
58824// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/reset
58825func (r *InstancesService) Reset(project string, zone string, instance string) *InstancesResetCall {
58826	c := &InstancesResetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58827	c.project = project
58828	c.zone = zone
58829	c.instance = instance
58830	return c
58831}
58832
58833// RequestId sets the optional parameter "requestId": An optional
58834// request ID to identify requests. Specify a unique request ID so that
58835// if you must retry your request, the server will know to ignore the
58836// request if it has already been completed.
58837//
58838// For example, consider a situation where you make an initial request
58839// and the request times out. If you make the request again with the
58840// same request ID, the server can check if original operation with the
58841// same request ID was received, and if so, will ignore the second
58842// request. This prevents clients from accidentally creating duplicate
58843// commitments.
58844//
58845// The request ID must be a valid UUID with the exception that zero UUID
58846// is not supported (00000000-0000-0000-0000-000000000000).
58847func (c *InstancesResetCall) RequestId(requestId string) *InstancesResetCall {
58848	c.urlParams_.Set("requestId", requestId)
58849	return c
58850}
58851
58852// Fields allows partial responses to be retrieved. See
58853// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58854// for more information.
58855func (c *InstancesResetCall) Fields(s ...googleapi.Field) *InstancesResetCall {
58856	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58857	return c
58858}
58859
58860// Context sets the context to be used in this call's Do method. Any
58861// pending HTTP request will be aborted if the provided context is
58862// canceled.
58863func (c *InstancesResetCall) Context(ctx context.Context) *InstancesResetCall {
58864	c.ctx_ = ctx
58865	return c
58866}
58867
58868// Header returns an http.Header that can be modified by the caller to
58869// add HTTP headers to the request.
58870func (c *InstancesResetCall) Header() http.Header {
58871	if c.header_ == nil {
58872		c.header_ = make(http.Header)
58873	}
58874	return c.header_
58875}
58876
58877func (c *InstancesResetCall) doRequest(alt string) (*http.Response, error) {
58878	reqHeaders := make(http.Header)
58879	for k, v := range c.header_ {
58880		reqHeaders[k] = v
58881	}
58882	reqHeaders.Set("User-Agent", c.s.userAgent())
58883	var body io.Reader = nil
58884	c.urlParams_.Set("alt", alt)
58885	c.urlParams_.Set("prettyPrint", "false")
58886	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/reset")
58887	urls += "?" + c.urlParams_.Encode()
58888	req, err := http.NewRequest("POST", urls, body)
58889	if err != nil {
58890		return nil, err
58891	}
58892	req.Header = reqHeaders
58893	googleapi.Expand(req.URL, map[string]string{
58894		"project":  c.project,
58895		"zone":     c.zone,
58896		"instance": c.instance,
58897	})
58898	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58899}
58900
58901// Do executes the "compute.instances.reset" call.
58902// Exactly one of *Operation or error will be non-nil. Any non-2xx
58903// status code is an error. Response headers are in either
58904// *Operation.ServerResponse.Header or (if a response was returned at
58905// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58906// to check whether the returned error was because
58907// http.StatusNotModified was returned.
58908func (c *InstancesResetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58909	gensupport.SetOptions(c.urlParams_, opts...)
58910	res, err := c.doRequest("json")
58911	if res != nil && res.StatusCode == http.StatusNotModified {
58912		if res.Body != nil {
58913			res.Body.Close()
58914		}
58915		return nil, &googleapi.Error{
58916			Code:   res.StatusCode,
58917			Header: res.Header,
58918		}
58919	}
58920	if err != nil {
58921		return nil, err
58922	}
58923	defer googleapi.CloseBody(res)
58924	if err := googleapi.CheckResponse(res); err != nil {
58925		return nil, err
58926	}
58927	ret := &Operation{
58928		ServerResponse: googleapi.ServerResponse{
58929			Header:         res.Header,
58930			HTTPStatusCode: res.StatusCode,
58931		},
58932	}
58933	target := &ret
58934	if err := gensupport.DecodeResponse(target, res); err != nil {
58935		return nil, err
58936	}
58937	return ret, nil
58938	// {
58939	//   "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.",
58940	//   "httpMethod": "POST",
58941	//   "id": "compute.instances.reset",
58942	//   "parameterOrder": [
58943	//     "project",
58944	//     "zone",
58945	//     "instance"
58946	//   ],
58947	//   "parameters": {
58948	//     "instance": {
58949	//       "description": "Name of the instance scoping this request.",
58950	//       "location": "path",
58951	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58952	//       "required": true,
58953	//       "type": "string"
58954	//     },
58955	//     "project": {
58956	//       "description": "Project ID for this request.",
58957	//       "location": "path",
58958	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58959	//       "required": true,
58960	//       "type": "string"
58961	//     },
58962	//     "requestId": {
58963	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58964	//       "location": "query",
58965	//       "type": "string"
58966	//     },
58967	//     "zone": {
58968	//       "description": "The name of the zone for this request.",
58969	//       "location": "path",
58970	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58971	//       "required": true,
58972	//       "type": "string"
58973	//     }
58974	//   },
58975	//   "path": "{project}/zones/{zone}/instances/{instance}/reset",
58976	//   "response": {
58977	//     "$ref": "Operation"
58978	//   },
58979	//   "scopes": [
58980	//     "https://www.googleapis.com/auth/cloud-platform",
58981	//     "https://www.googleapis.com/auth/compute"
58982	//   ]
58983	// }
58984
58985}
58986
58987// method id "compute.instances.setDeletionProtection":
58988
58989type InstancesSetDeletionProtectionCall struct {
58990	s          *Service
58991	project    string
58992	zone       string
58993	resource   string
58994	urlParams_ gensupport.URLParams
58995	ctx_       context.Context
58996	header_    http.Header
58997}
58998
58999// SetDeletionProtection: Sets deletion protection on the instance.
59000func (r *InstancesService) SetDeletionProtection(project string, zone string, resource string) *InstancesSetDeletionProtectionCall {
59001	c := &InstancesSetDeletionProtectionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59002	c.project = project
59003	c.zone = zone
59004	c.resource = resource
59005	return c
59006}
59007
59008// DeletionProtection sets the optional parameter "deletionProtection":
59009// Whether the resource should be protected against deletion.
59010func (c *InstancesSetDeletionProtectionCall) DeletionProtection(deletionProtection bool) *InstancesSetDeletionProtectionCall {
59011	c.urlParams_.Set("deletionProtection", fmt.Sprint(deletionProtection))
59012	return c
59013}
59014
59015// RequestId sets the optional parameter "requestId": An optional
59016// request ID to identify requests. Specify a unique request ID so that
59017// if you must retry your request, the server will know to ignore the
59018// request if it has already been completed.
59019//
59020// For example, consider a situation where you make an initial request
59021// and the request times out. If you make the request again with the
59022// same request ID, the server can check if original operation with the
59023// same request ID was received, and if so, will ignore the second
59024// request. This prevents clients from accidentally creating duplicate
59025// commitments.
59026//
59027// The request ID must be a valid UUID with the exception that zero UUID
59028// is not supported (00000000-0000-0000-0000-000000000000).
59029func (c *InstancesSetDeletionProtectionCall) RequestId(requestId string) *InstancesSetDeletionProtectionCall {
59030	c.urlParams_.Set("requestId", requestId)
59031	return c
59032}
59033
59034// Fields allows partial responses to be retrieved. See
59035// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59036// for more information.
59037func (c *InstancesSetDeletionProtectionCall) Fields(s ...googleapi.Field) *InstancesSetDeletionProtectionCall {
59038	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59039	return c
59040}
59041
59042// Context sets the context to be used in this call's Do method. Any
59043// pending HTTP request will be aborted if the provided context is
59044// canceled.
59045func (c *InstancesSetDeletionProtectionCall) Context(ctx context.Context) *InstancesSetDeletionProtectionCall {
59046	c.ctx_ = ctx
59047	return c
59048}
59049
59050// Header returns an http.Header that can be modified by the caller to
59051// add HTTP headers to the request.
59052func (c *InstancesSetDeletionProtectionCall) Header() http.Header {
59053	if c.header_ == nil {
59054		c.header_ = make(http.Header)
59055	}
59056	return c.header_
59057}
59058
59059func (c *InstancesSetDeletionProtectionCall) doRequest(alt string) (*http.Response, error) {
59060	reqHeaders := make(http.Header)
59061	for k, v := range c.header_ {
59062		reqHeaders[k] = v
59063	}
59064	reqHeaders.Set("User-Agent", c.s.userAgent())
59065	var body io.Reader = nil
59066	c.urlParams_.Set("alt", alt)
59067	c.urlParams_.Set("prettyPrint", "false")
59068	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/setDeletionProtection")
59069	urls += "?" + c.urlParams_.Encode()
59070	req, err := http.NewRequest("POST", urls, body)
59071	if err != nil {
59072		return nil, err
59073	}
59074	req.Header = reqHeaders
59075	googleapi.Expand(req.URL, map[string]string{
59076		"project":  c.project,
59077		"zone":     c.zone,
59078		"resource": c.resource,
59079	})
59080	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59081}
59082
59083// Do executes the "compute.instances.setDeletionProtection" call.
59084// Exactly one of *Operation or error will be non-nil. Any non-2xx
59085// status code is an error. Response headers are in either
59086// *Operation.ServerResponse.Header or (if a response was returned at
59087// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59088// to check whether the returned error was because
59089// http.StatusNotModified was returned.
59090func (c *InstancesSetDeletionProtectionCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59091	gensupport.SetOptions(c.urlParams_, opts...)
59092	res, err := c.doRequest("json")
59093	if res != nil && res.StatusCode == http.StatusNotModified {
59094		if res.Body != nil {
59095			res.Body.Close()
59096		}
59097		return nil, &googleapi.Error{
59098			Code:   res.StatusCode,
59099			Header: res.Header,
59100		}
59101	}
59102	if err != nil {
59103		return nil, err
59104	}
59105	defer googleapi.CloseBody(res)
59106	if err := googleapi.CheckResponse(res); err != nil {
59107		return nil, err
59108	}
59109	ret := &Operation{
59110		ServerResponse: googleapi.ServerResponse{
59111			Header:         res.Header,
59112			HTTPStatusCode: res.StatusCode,
59113		},
59114	}
59115	target := &ret
59116	if err := gensupport.DecodeResponse(target, res); err != nil {
59117		return nil, err
59118	}
59119	return ret, nil
59120	// {
59121	//   "description": "Sets deletion protection on the instance.",
59122	//   "httpMethod": "POST",
59123	//   "id": "compute.instances.setDeletionProtection",
59124	//   "parameterOrder": [
59125	//     "project",
59126	//     "zone",
59127	//     "resource"
59128	//   ],
59129	//   "parameters": {
59130	//     "deletionProtection": {
59131	//       "default": "true",
59132	//       "description": "Whether the resource should be protected against deletion.",
59133	//       "location": "query",
59134	//       "type": "boolean"
59135	//     },
59136	//     "project": {
59137	//       "description": "Project ID for this request.",
59138	//       "location": "path",
59139	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59140	//       "required": true,
59141	//       "type": "string"
59142	//     },
59143	//     "requestId": {
59144	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59145	//       "location": "query",
59146	//       "type": "string"
59147	//     },
59148	//     "resource": {
59149	//       "description": "Name or id of the resource for this request.",
59150	//       "location": "path",
59151	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59152	//       "required": true,
59153	//       "type": "string"
59154	//     },
59155	//     "zone": {
59156	//       "description": "The name of the zone for this request.",
59157	//       "location": "path",
59158	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59159	//       "required": true,
59160	//       "type": "string"
59161	//     }
59162	//   },
59163	//   "path": "{project}/zones/{zone}/instances/{resource}/setDeletionProtection",
59164	//   "response": {
59165	//     "$ref": "Operation"
59166	//   },
59167	//   "scopes": [
59168	//     "https://www.googleapis.com/auth/cloud-platform",
59169	//     "https://www.googleapis.com/auth/compute"
59170	//   ]
59171	// }
59172
59173}
59174
59175// method id "compute.instances.setDiskAutoDelete":
59176
59177type InstancesSetDiskAutoDeleteCall struct {
59178	s          *Service
59179	project    string
59180	zone       string
59181	instance   string
59182	urlParams_ gensupport.URLParams
59183	ctx_       context.Context
59184	header_    http.Header
59185}
59186
59187// SetDiskAutoDelete: Sets the auto-delete flag for a disk attached to
59188// an instance.
59189// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setDiskAutoDelete
59190func (r *InstancesService) SetDiskAutoDelete(project string, zone string, instance string, autoDelete bool, deviceName string) *InstancesSetDiskAutoDeleteCall {
59191	c := &InstancesSetDiskAutoDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59192	c.project = project
59193	c.zone = zone
59194	c.instance = instance
59195	c.urlParams_.Set("autoDelete", fmt.Sprint(autoDelete))
59196	c.urlParams_.Set("deviceName", deviceName)
59197	return c
59198}
59199
59200// RequestId sets the optional parameter "requestId": An optional
59201// request ID to identify requests. Specify a unique request ID so that
59202// if you must retry your request, the server will know to ignore the
59203// request if it has already been completed.
59204//
59205// For example, consider a situation where you make an initial request
59206// and the request times out. If you make the request again with the
59207// same request ID, the server can check if original operation with the
59208// same request ID was received, and if so, will ignore the second
59209// request. This prevents clients from accidentally creating duplicate
59210// commitments.
59211//
59212// The request ID must be a valid UUID with the exception that zero UUID
59213// is not supported (00000000-0000-0000-0000-000000000000).
59214func (c *InstancesSetDiskAutoDeleteCall) RequestId(requestId string) *InstancesSetDiskAutoDeleteCall {
59215	c.urlParams_.Set("requestId", requestId)
59216	return c
59217}
59218
59219// Fields allows partial responses to be retrieved. See
59220// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59221// for more information.
59222func (c *InstancesSetDiskAutoDeleteCall) Fields(s ...googleapi.Field) *InstancesSetDiskAutoDeleteCall {
59223	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59224	return c
59225}
59226
59227// Context sets the context to be used in this call's Do method. Any
59228// pending HTTP request will be aborted if the provided context is
59229// canceled.
59230func (c *InstancesSetDiskAutoDeleteCall) Context(ctx context.Context) *InstancesSetDiskAutoDeleteCall {
59231	c.ctx_ = ctx
59232	return c
59233}
59234
59235// Header returns an http.Header that can be modified by the caller to
59236// add HTTP headers to the request.
59237func (c *InstancesSetDiskAutoDeleteCall) Header() http.Header {
59238	if c.header_ == nil {
59239		c.header_ = make(http.Header)
59240	}
59241	return c.header_
59242}
59243
59244func (c *InstancesSetDiskAutoDeleteCall) doRequest(alt string) (*http.Response, error) {
59245	reqHeaders := make(http.Header)
59246	for k, v := range c.header_ {
59247		reqHeaders[k] = v
59248	}
59249	reqHeaders.Set("User-Agent", c.s.userAgent())
59250	var body io.Reader = nil
59251	c.urlParams_.Set("alt", alt)
59252	c.urlParams_.Set("prettyPrint", "false")
59253	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete")
59254	urls += "?" + c.urlParams_.Encode()
59255	req, err := http.NewRequest("POST", urls, body)
59256	if err != nil {
59257		return nil, err
59258	}
59259	req.Header = reqHeaders
59260	googleapi.Expand(req.URL, map[string]string{
59261		"project":  c.project,
59262		"zone":     c.zone,
59263		"instance": c.instance,
59264	})
59265	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59266}
59267
59268// Do executes the "compute.instances.setDiskAutoDelete" call.
59269// Exactly one of *Operation or error will be non-nil. Any non-2xx
59270// status code is an error. Response headers are in either
59271// *Operation.ServerResponse.Header or (if a response was returned at
59272// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59273// to check whether the returned error was because
59274// http.StatusNotModified was returned.
59275func (c *InstancesSetDiskAutoDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59276	gensupport.SetOptions(c.urlParams_, opts...)
59277	res, err := c.doRequest("json")
59278	if res != nil && res.StatusCode == http.StatusNotModified {
59279		if res.Body != nil {
59280			res.Body.Close()
59281		}
59282		return nil, &googleapi.Error{
59283			Code:   res.StatusCode,
59284			Header: res.Header,
59285		}
59286	}
59287	if err != nil {
59288		return nil, err
59289	}
59290	defer googleapi.CloseBody(res)
59291	if err := googleapi.CheckResponse(res); err != nil {
59292		return nil, err
59293	}
59294	ret := &Operation{
59295		ServerResponse: googleapi.ServerResponse{
59296			Header:         res.Header,
59297			HTTPStatusCode: res.StatusCode,
59298		},
59299	}
59300	target := &ret
59301	if err := gensupport.DecodeResponse(target, res); err != nil {
59302		return nil, err
59303	}
59304	return ret, nil
59305	// {
59306	//   "description": "Sets the auto-delete flag for a disk attached to an instance.",
59307	//   "httpMethod": "POST",
59308	//   "id": "compute.instances.setDiskAutoDelete",
59309	//   "parameterOrder": [
59310	//     "project",
59311	//     "zone",
59312	//     "instance",
59313	//     "autoDelete",
59314	//     "deviceName"
59315	//   ],
59316	//   "parameters": {
59317	//     "autoDelete": {
59318	//       "description": "Whether to auto-delete the disk when the instance is deleted.",
59319	//       "location": "query",
59320	//       "required": true,
59321	//       "type": "boolean"
59322	//     },
59323	//     "deviceName": {
59324	//       "description": "The device name of the disk to modify. Make a get() request on the instance to view currently attached disks and device names.",
59325	//       "location": "query",
59326	//       "pattern": "\\w[\\w.-]{0,254}",
59327	//       "required": true,
59328	//       "type": "string"
59329	//     },
59330	//     "instance": {
59331	//       "description": "The instance name for this request.",
59332	//       "location": "path",
59333	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59334	//       "required": true,
59335	//       "type": "string"
59336	//     },
59337	//     "project": {
59338	//       "description": "Project ID for this request.",
59339	//       "location": "path",
59340	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59341	//       "required": true,
59342	//       "type": "string"
59343	//     },
59344	//     "requestId": {
59345	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59346	//       "location": "query",
59347	//       "type": "string"
59348	//     },
59349	//     "zone": {
59350	//       "description": "The name of the zone for this request.",
59351	//       "location": "path",
59352	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59353	//       "required": true,
59354	//       "type": "string"
59355	//     }
59356	//   },
59357	//   "path": "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete",
59358	//   "response": {
59359	//     "$ref": "Operation"
59360	//   },
59361	//   "scopes": [
59362	//     "https://www.googleapis.com/auth/cloud-platform",
59363	//     "https://www.googleapis.com/auth/compute"
59364	//   ]
59365	// }
59366
59367}
59368
59369// method id "compute.instances.setIamPolicy":
59370
59371type InstancesSetIamPolicyCall struct {
59372	s                    *Service
59373	project              string
59374	zone                 string
59375	resource             string
59376	zonesetpolicyrequest *ZoneSetPolicyRequest
59377	urlParams_           gensupport.URLParams
59378	ctx_                 context.Context
59379	header_              http.Header
59380}
59381
59382// SetIamPolicy: Sets the access control policy on the specified
59383// resource. Replaces any existing policy.
59384func (r *InstancesService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *InstancesSetIamPolicyCall {
59385	c := &InstancesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59386	c.project = project
59387	c.zone = zone
59388	c.resource = resource
59389	c.zonesetpolicyrequest = zonesetpolicyrequest
59390	return c
59391}
59392
59393// Fields allows partial responses to be retrieved. See
59394// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59395// for more information.
59396func (c *InstancesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesSetIamPolicyCall {
59397	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59398	return c
59399}
59400
59401// Context sets the context to be used in this call's Do method. Any
59402// pending HTTP request will be aborted if the provided context is
59403// canceled.
59404func (c *InstancesSetIamPolicyCall) Context(ctx context.Context) *InstancesSetIamPolicyCall {
59405	c.ctx_ = ctx
59406	return c
59407}
59408
59409// Header returns an http.Header that can be modified by the caller to
59410// add HTTP headers to the request.
59411func (c *InstancesSetIamPolicyCall) Header() http.Header {
59412	if c.header_ == nil {
59413		c.header_ = make(http.Header)
59414	}
59415	return c.header_
59416}
59417
59418func (c *InstancesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
59419	reqHeaders := make(http.Header)
59420	for k, v := range c.header_ {
59421		reqHeaders[k] = v
59422	}
59423	reqHeaders.Set("User-Agent", c.s.userAgent())
59424	var body io.Reader = nil
59425	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
59426	if err != nil {
59427		return nil, err
59428	}
59429	reqHeaders.Set("Content-Type", "application/json")
59430	c.urlParams_.Set("alt", alt)
59431	c.urlParams_.Set("prettyPrint", "false")
59432	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/setIamPolicy")
59433	urls += "?" + c.urlParams_.Encode()
59434	req, err := http.NewRequest("POST", urls, body)
59435	if err != nil {
59436		return nil, err
59437	}
59438	req.Header = reqHeaders
59439	googleapi.Expand(req.URL, map[string]string{
59440		"project":  c.project,
59441		"zone":     c.zone,
59442		"resource": c.resource,
59443	})
59444	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59445}
59446
59447// Do executes the "compute.instances.setIamPolicy" call.
59448// Exactly one of *Policy or error will be non-nil. Any non-2xx status
59449// code is an error. Response headers are in either
59450// *Policy.ServerResponse.Header or (if a response was returned at all)
59451// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
59452// check whether the returned error was because http.StatusNotModified
59453// was returned.
59454func (c *InstancesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
59455	gensupport.SetOptions(c.urlParams_, opts...)
59456	res, err := c.doRequest("json")
59457	if res != nil && res.StatusCode == http.StatusNotModified {
59458		if res.Body != nil {
59459			res.Body.Close()
59460		}
59461		return nil, &googleapi.Error{
59462			Code:   res.StatusCode,
59463			Header: res.Header,
59464		}
59465	}
59466	if err != nil {
59467		return nil, err
59468	}
59469	defer googleapi.CloseBody(res)
59470	if err := googleapi.CheckResponse(res); err != nil {
59471		return nil, err
59472	}
59473	ret := &Policy{
59474		ServerResponse: googleapi.ServerResponse{
59475			Header:         res.Header,
59476			HTTPStatusCode: res.StatusCode,
59477		},
59478	}
59479	target := &ret
59480	if err := gensupport.DecodeResponse(target, res); err != nil {
59481		return nil, err
59482	}
59483	return ret, nil
59484	// {
59485	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
59486	//   "httpMethod": "POST",
59487	//   "id": "compute.instances.setIamPolicy",
59488	//   "parameterOrder": [
59489	//     "project",
59490	//     "zone",
59491	//     "resource"
59492	//   ],
59493	//   "parameters": {
59494	//     "project": {
59495	//       "description": "Project ID for this request.",
59496	//       "location": "path",
59497	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59498	//       "required": true,
59499	//       "type": "string"
59500	//     },
59501	//     "resource": {
59502	//       "description": "Name or id of the resource for this request.",
59503	//       "location": "path",
59504	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59505	//       "required": true,
59506	//       "type": "string"
59507	//     },
59508	//     "zone": {
59509	//       "description": "The name of the zone for this request.",
59510	//       "location": "path",
59511	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59512	//       "required": true,
59513	//       "type": "string"
59514	//     }
59515	//   },
59516	//   "path": "{project}/zones/{zone}/instances/{resource}/setIamPolicy",
59517	//   "request": {
59518	//     "$ref": "ZoneSetPolicyRequest"
59519	//   },
59520	//   "response": {
59521	//     "$ref": "Policy"
59522	//   },
59523	//   "scopes": [
59524	//     "https://www.googleapis.com/auth/cloud-platform",
59525	//     "https://www.googleapis.com/auth/compute"
59526	//   ]
59527	// }
59528
59529}
59530
59531// method id "compute.instances.setLabels":
59532
59533type InstancesSetLabelsCall struct {
59534	s                         *Service
59535	project                   string
59536	zone                      string
59537	instance                  string
59538	instancessetlabelsrequest *InstancesSetLabelsRequest
59539	urlParams_                gensupport.URLParams
59540	ctx_                      context.Context
59541	header_                   http.Header
59542}
59543
59544// SetLabels: Sets labels on an instance. To learn more about labels,
59545// read the Labeling Resources documentation.
59546func (r *InstancesService) SetLabels(project string, zone string, instance string, instancessetlabelsrequest *InstancesSetLabelsRequest) *InstancesSetLabelsCall {
59547	c := &InstancesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59548	c.project = project
59549	c.zone = zone
59550	c.instance = instance
59551	c.instancessetlabelsrequest = instancessetlabelsrequest
59552	return c
59553}
59554
59555// RequestId sets the optional parameter "requestId": An optional
59556// request ID to identify requests. Specify a unique request ID so that
59557// if you must retry your request, the server will know to ignore the
59558// request if it has already been completed.
59559//
59560// For example, consider a situation where you make an initial request
59561// and the request times out. If you make the request again with the
59562// same request ID, the server can check if original operation with the
59563// same request ID was received, and if so, will ignore the second
59564// request. This prevents clients from accidentally creating duplicate
59565// commitments.
59566//
59567// The request ID must be a valid UUID with the exception that zero UUID
59568// is not supported (00000000-0000-0000-0000-000000000000).
59569func (c *InstancesSetLabelsCall) RequestId(requestId string) *InstancesSetLabelsCall {
59570	c.urlParams_.Set("requestId", requestId)
59571	return c
59572}
59573
59574// Fields allows partial responses to be retrieved. See
59575// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59576// for more information.
59577func (c *InstancesSetLabelsCall) Fields(s ...googleapi.Field) *InstancesSetLabelsCall {
59578	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59579	return c
59580}
59581
59582// Context sets the context to be used in this call's Do method. Any
59583// pending HTTP request will be aborted if the provided context is
59584// canceled.
59585func (c *InstancesSetLabelsCall) Context(ctx context.Context) *InstancesSetLabelsCall {
59586	c.ctx_ = ctx
59587	return c
59588}
59589
59590// Header returns an http.Header that can be modified by the caller to
59591// add HTTP headers to the request.
59592func (c *InstancesSetLabelsCall) Header() http.Header {
59593	if c.header_ == nil {
59594		c.header_ = make(http.Header)
59595	}
59596	return c.header_
59597}
59598
59599func (c *InstancesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
59600	reqHeaders := make(http.Header)
59601	for k, v := range c.header_ {
59602		reqHeaders[k] = v
59603	}
59604	reqHeaders.Set("User-Agent", c.s.userAgent())
59605	var body io.Reader = nil
59606	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetlabelsrequest)
59607	if err != nil {
59608		return nil, err
59609	}
59610	reqHeaders.Set("Content-Type", "application/json")
59611	c.urlParams_.Set("alt", alt)
59612	c.urlParams_.Set("prettyPrint", "false")
59613	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setLabels")
59614	urls += "?" + c.urlParams_.Encode()
59615	req, err := http.NewRequest("POST", urls, body)
59616	if err != nil {
59617		return nil, err
59618	}
59619	req.Header = reqHeaders
59620	googleapi.Expand(req.URL, map[string]string{
59621		"project":  c.project,
59622		"zone":     c.zone,
59623		"instance": c.instance,
59624	})
59625	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59626}
59627
59628// Do executes the "compute.instances.setLabels" call.
59629// Exactly one of *Operation or error will be non-nil. Any non-2xx
59630// status code is an error. Response headers are in either
59631// *Operation.ServerResponse.Header or (if a response was returned at
59632// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59633// to check whether the returned error was because
59634// http.StatusNotModified was returned.
59635func (c *InstancesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59636	gensupport.SetOptions(c.urlParams_, opts...)
59637	res, err := c.doRequest("json")
59638	if res != nil && res.StatusCode == http.StatusNotModified {
59639		if res.Body != nil {
59640			res.Body.Close()
59641		}
59642		return nil, &googleapi.Error{
59643			Code:   res.StatusCode,
59644			Header: res.Header,
59645		}
59646	}
59647	if err != nil {
59648		return nil, err
59649	}
59650	defer googleapi.CloseBody(res)
59651	if err := googleapi.CheckResponse(res); err != nil {
59652		return nil, err
59653	}
59654	ret := &Operation{
59655		ServerResponse: googleapi.ServerResponse{
59656			Header:         res.Header,
59657			HTTPStatusCode: res.StatusCode,
59658		},
59659	}
59660	target := &ret
59661	if err := gensupport.DecodeResponse(target, res); err != nil {
59662		return nil, err
59663	}
59664	return ret, nil
59665	// {
59666	//   "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation.",
59667	//   "httpMethod": "POST",
59668	//   "id": "compute.instances.setLabels",
59669	//   "parameterOrder": [
59670	//     "project",
59671	//     "zone",
59672	//     "instance"
59673	//   ],
59674	//   "parameters": {
59675	//     "instance": {
59676	//       "description": "Name of the instance scoping this request.",
59677	//       "location": "path",
59678	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59679	//       "required": true,
59680	//       "type": "string"
59681	//     },
59682	//     "project": {
59683	//       "description": "Project ID for this request.",
59684	//       "location": "path",
59685	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59686	//       "required": true,
59687	//       "type": "string"
59688	//     },
59689	//     "requestId": {
59690	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59691	//       "location": "query",
59692	//       "type": "string"
59693	//     },
59694	//     "zone": {
59695	//       "description": "The name of the zone for this request.",
59696	//       "location": "path",
59697	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59698	//       "required": true,
59699	//       "type": "string"
59700	//     }
59701	//   },
59702	//   "path": "{project}/zones/{zone}/instances/{instance}/setLabels",
59703	//   "request": {
59704	//     "$ref": "InstancesSetLabelsRequest"
59705	//   },
59706	//   "response": {
59707	//     "$ref": "Operation"
59708	//   },
59709	//   "scopes": [
59710	//     "https://www.googleapis.com/auth/cloud-platform",
59711	//     "https://www.googleapis.com/auth/compute"
59712	//   ]
59713	// }
59714
59715}
59716
59717// method id "compute.instances.setMachineResources":
59718
59719type InstancesSetMachineResourcesCall struct {
59720	s                                   *Service
59721	project                             string
59722	zone                                string
59723	instance                            string
59724	instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest
59725	urlParams_                          gensupport.URLParams
59726	ctx_                                context.Context
59727	header_                             http.Header
59728}
59729
59730// SetMachineResources: Changes the number and/or type of accelerator
59731// for a stopped instance to the values specified in the request.
59732func (r *InstancesService) SetMachineResources(project string, zone string, instance string, instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest) *InstancesSetMachineResourcesCall {
59733	c := &InstancesSetMachineResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59734	c.project = project
59735	c.zone = zone
59736	c.instance = instance
59737	c.instancessetmachineresourcesrequest = instancessetmachineresourcesrequest
59738	return c
59739}
59740
59741// RequestId sets the optional parameter "requestId": An optional
59742// request ID to identify requests. Specify a unique request ID so that
59743// if you must retry your request, the server will know to ignore the
59744// request if it has already been completed.
59745//
59746// For example, consider a situation where you make an initial request
59747// and the request times out. If you make the request again with the
59748// same request ID, the server can check if original operation with the
59749// same request ID was received, and if so, will ignore the second
59750// request. This prevents clients from accidentally creating duplicate
59751// commitments.
59752//
59753// The request ID must be a valid UUID with the exception that zero UUID
59754// is not supported (00000000-0000-0000-0000-000000000000).
59755func (c *InstancesSetMachineResourcesCall) RequestId(requestId string) *InstancesSetMachineResourcesCall {
59756	c.urlParams_.Set("requestId", requestId)
59757	return c
59758}
59759
59760// Fields allows partial responses to be retrieved. See
59761// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59762// for more information.
59763func (c *InstancesSetMachineResourcesCall) Fields(s ...googleapi.Field) *InstancesSetMachineResourcesCall {
59764	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59765	return c
59766}
59767
59768// Context sets the context to be used in this call's Do method. Any
59769// pending HTTP request will be aborted if the provided context is
59770// canceled.
59771func (c *InstancesSetMachineResourcesCall) Context(ctx context.Context) *InstancesSetMachineResourcesCall {
59772	c.ctx_ = ctx
59773	return c
59774}
59775
59776// Header returns an http.Header that can be modified by the caller to
59777// add HTTP headers to the request.
59778func (c *InstancesSetMachineResourcesCall) Header() http.Header {
59779	if c.header_ == nil {
59780		c.header_ = make(http.Header)
59781	}
59782	return c.header_
59783}
59784
59785func (c *InstancesSetMachineResourcesCall) doRequest(alt string) (*http.Response, error) {
59786	reqHeaders := make(http.Header)
59787	for k, v := range c.header_ {
59788		reqHeaders[k] = v
59789	}
59790	reqHeaders.Set("User-Agent", c.s.userAgent())
59791	var body io.Reader = nil
59792	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachineresourcesrequest)
59793	if err != nil {
59794		return nil, err
59795	}
59796	reqHeaders.Set("Content-Type", "application/json")
59797	c.urlParams_.Set("alt", alt)
59798	c.urlParams_.Set("prettyPrint", "false")
59799	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMachineResources")
59800	urls += "?" + c.urlParams_.Encode()
59801	req, err := http.NewRequest("POST", urls, body)
59802	if err != nil {
59803		return nil, err
59804	}
59805	req.Header = reqHeaders
59806	googleapi.Expand(req.URL, map[string]string{
59807		"project":  c.project,
59808		"zone":     c.zone,
59809		"instance": c.instance,
59810	})
59811	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59812}
59813
59814// Do executes the "compute.instances.setMachineResources" call.
59815// Exactly one of *Operation or error will be non-nil. Any non-2xx
59816// status code is an error. Response headers are in either
59817// *Operation.ServerResponse.Header or (if a response was returned at
59818// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59819// to check whether the returned error was because
59820// http.StatusNotModified was returned.
59821func (c *InstancesSetMachineResourcesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59822	gensupport.SetOptions(c.urlParams_, opts...)
59823	res, err := c.doRequest("json")
59824	if res != nil && res.StatusCode == http.StatusNotModified {
59825		if res.Body != nil {
59826			res.Body.Close()
59827		}
59828		return nil, &googleapi.Error{
59829			Code:   res.StatusCode,
59830			Header: res.Header,
59831		}
59832	}
59833	if err != nil {
59834		return nil, err
59835	}
59836	defer googleapi.CloseBody(res)
59837	if err := googleapi.CheckResponse(res); err != nil {
59838		return nil, err
59839	}
59840	ret := &Operation{
59841		ServerResponse: googleapi.ServerResponse{
59842			Header:         res.Header,
59843			HTTPStatusCode: res.StatusCode,
59844		},
59845	}
59846	target := &ret
59847	if err := gensupport.DecodeResponse(target, res); err != nil {
59848		return nil, err
59849	}
59850	return ret, nil
59851	// {
59852	//   "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.",
59853	//   "httpMethod": "POST",
59854	//   "id": "compute.instances.setMachineResources",
59855	//   "parameterOrder": [
59856	//     "project",
59857	//     "zone",
59858	//     "instance"
59859	//   ],
59860	//   "parameters": {
59861	//     "instance": {
59862	//       "description": "Name of the instance scoping this request.",
59863	//       "location": "path",
59864	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59865	//       "required": true,
59866	//       "type": "string"
59867	//     },
59868	//     "project": {
59869	//       "description": "Project ID for this request.",
59870	//       "location": "path",
59871	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59872	//       "required": true,
59873	//       "type": "string"
59874	//     },
59875	//     "requestId": {
59876	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59877	//       "location": "query",
59878	//       "type": "string"
59879	//     },
59880	//     "zone": {
59881	//       "description": "The name of the zone for this request.",
59882	//       "location": "path",
59883	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59884	//       "required": true,
59885	//       "type": "string"
59886	//     }
59887	//   },
59888	//   "path": "{project}/zones/{zone}/instances/{instance}/setMachineResources",
59889	//   "request": {
59890	//     "$ref": "InstancesSetMachineResourcesRequest"
59891	//   },
59892	//   "response": {
59893	//     "$ref": "Operation"
59894	//   },
59895	//   "scopes": [
59896	//     "https://www.googleapis.com/auth/cloud-platform",
59897	//     "https://www.googleapis.com/auth/compute"
59898	//   ]
59899	// }
59900
59901}
59902
59903// method id "compute.instances.setMachineType":
59904
59905type InstancesSetMachineTypeCall struct {
59906	s                              *Service
59907	project                        string
59908	zone                           string
59909	instance                       string
59910	instancessetmachinetyperequest *InstancesSetMachineTypeRequest
59911	urlParams_                     gensupport.URLParams
59912	ctx_                           context.Context
59913	header_                        http.Header
59914}
59915
59916// SetMachineType: Changes the machine type for a stopped instance to
59917// the machine type specified in the request.
59918func (r *InstancesService) SetMachineType(project string, zone string, instance string, instancessetmachinetyperequest *InstancesSetMachineTypeRequest) *InstancesSetMachineTypeCall {
59919	c := &InstancesSetMachineTypeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59920	c.project = project
59921	c.zone = zone
59922	c.instance = instance
59923	c.instancessetmachinetyperequest = instancessetmachinetyperequest
59924	return c
59925}
59926
59927// RequestId sets the optional parameter "requestId": An optional
59928// request ID to identify requests. Specify a unique request ID so that
59929// if you must retry your request, the server will know to ignore the
59930// request if it has already been completed.
59931//
59932// For example, consider a situation where you make an initial request
59933// and the request times out. If you make the request again with the
59934// same request ID, the server can check if original operation with the
59935// same request ID was received, and if so, will ignore the second
59936// request. This prevents clients from accidentally creating duplicate
59937// commitments.
59938//
59939// The request ID must be a valid UUID with the exception that zero UUID
59940// is not supported (00000000-0000-0000-0000-000000000000).
59941func (c *InstancesSetMachineTypeCall) RequestId(requestId string) *InstancesSetMachineTypeCall {
59942	c.urlParams_.Set("requestId", requestId)
59943	return c
59944}
59945
59946// Fields allows partial responses to be retrieved. See
59947// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59948// for more information.
59949func (c *InstancesSetMachineTypeCall) Fields(s ...googleapi.Field) *InstancesSetMachineTypeCall {
59950	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59951	return c
59952}
59953
59954// Context sets the context to be used in this call's Do method. Any
59955// pending HTTP request will be aborted if the provided context is
59956// canceled.
59957func (c *InstancesSetMachineTypeCall) Context(ctx context.Context) *InstancesSetMachineTypeCall {
59958	c.ctx_ = ctx
59959	return c
59960}
59961
59962// Header returns an http.Header that can be modified by the caller to
59963// add HTTP headers to the request.
59964func (c *InstancesSetMachineTypeCall) Header() http.Header {
59965	if c.header_ == nil {
59966		c.header_ = make(http.Header)
59967	}
59968	return c.header_
59969}
59970
59971func (c *InstancesSetMachineTypeCall) doRequest(alt string) (*http.Response, error) {
59972	reqHeaders := make(http.Header)
59973	for k, v := range c.header_ {
59974		reqHeaders[k] = v
59975	}
59976	reqHeaders.Set("User-Agent", c.s.userAgent())
59977	var body io.Reader = nil
59978	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachinetyperequest)
59979	if err != nil {
59980		return nil, err
59981	}
59982	reqHeaders.Set("Content-Type", "application/json")
59983	c.urlParams_.Set("alt", alt)
59984	c.urlParams_.Set("prettyPrint", "false")
59985	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMachineType")
59986	urls += "?" + c.urlParams_.Encode()
59987	req, err := http.NewRequest("POST", urls, body)
59988	if err != nil {
59989		return nil, err
59990	}
59991	req.Header = reqHeaders
59992	googleapi.Expand(req.URL, map[string]string{
59993		"project":  c.project,
59994		"zone":     c.zone,
59995		"instance": c.instance,
59996	})
59997	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59998}
59999
60000// Do executes the "compute.instances.setMachineType" call.
60001// Exactly one of *Operation or error will be non-nil. Any non-2xx
60002// status code is an error. Response headers are in either
60003// *Operation.ServerResponse.Header or (if a response was returned at
60004// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60005// to check whether the returned error was because
60006// http.StatusNotModified was returned.
60007func (c *InstancesSetMachineTypeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60008	gensupport.SetOptions(c.urlParams_, opts...)
60009	res, err := c.doRequest("json")
60010	if res != nil && res.StatusCode == http.StatusNotModified {
60011		if res.Body != nil {
60012			res.Body.Close()
60013		}
60014		return nil, &googleapi.Error{
60015			Code:   res.StatusCode,
60016			Header: res.Header,
60017		}
60018	}
60019	if err != nil {
60020		return nil, err
60021	}
60022	defer googleapi.CloseBody(res)
60023	if err := googleapi.CheckResponse(res); err != nil {
60024		return nil, err
60025	}
60026	ret := &Operation{
60027		ServerResponse: googleapi.ServerResponse{
60028			Header:         res.Header,
60029			HTTPStatusCode: res.StatusCode,
60030		},
60031	}
60032	target := &ret
60033	if err := gensupport.DecodeResponse(target, res); err != nil {
60034		return nil, err
60035	}
60036	return ret, nil
60037	// {
60038	//   "description": "Changes the machine type for a stopped instance to the machine type specified in the request.",
60039	//   "httpMethod": "POST",
60040	//   "id": "compute.instances.setMachineType",
60041	//   "parameterOrder": [
60042	//     "project",
60043	//     "zone",
60044	//     "instance"
60045	//   ],
60046	//   "parameters": {
60047	//     "instance": {
60048	//       "description": "Name of the instance scoping this request.",
60049	//       "location": "path",
60050	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60051	//       "required": true,
60052	//       "type": "string"
60053	//     },
60054	//     "project": {
60055	//       "description": "Project ID for this request.",
60056	//       "location": "path",
60057	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60058	//       "required": true,
60059	//       "type": "string"
60060	//     },
60061	//     "requestId": {
60062	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60063	//       "location": "query",
60064	//       "type": "string"
60065	//     },
60066	//     "zone": {
60067	//       "description": "The name of the zone for this request.",
60068	//       "location": "path",
60069	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60070	//       "required": true,
60071	//       "type": "string"
60072	//     }
60073	//   },
60074	//   "path": "{project}/zones/{zone}/instances/{instance}/setMachineType",
60075	//   "request": {
60076	//     "$ref": "InstancesSetMachineTypeRequest"
60077	//   },
60078	//   "response": {
60079	//     "$ref": "Operation"
60080	//   },
60081	//   "scopes": [
60082	//     "https://www.googleapis.com/auth/cloud-platform",
60083	//     "https://www.googleapis.com/auth/compute"
60084	//   ]
60085	// }
60086
60087}
60088
60089// method id "compute.instances.setMetadata":
60090
60091type InstancesSetMetadataCall struct {
60092	s          *Service
60093	project    string
60094	zone       string
60095	instance   string
60096	metadata   *Metadata
60097	urlParams_ gensupport.URLParams
60098	ctx_       context.Context
60099	header_    http.Header
60100}
60101
60102// SetMetadata: Sets metadata for the specified instance to the data
60103// included in the request.
60104// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setMetadata
60105func (r *InstancesService) SetMetadata(project string, zone string, instance string, metadata *Metadata) *InstancesSetMetadataCall {
60106	c := &InstancesSetMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60107	c.project = project
60108	c.zone = zone
60109	c.instance = instance
60110	c.metadata = metadata
60111	return c
60112}
60113
60114// RequestId sets the optional parameter "requestId": An optional
60115// request ID to identify requests. Specify a unique request ID so that
60116// if you must retry your request, the server will know to ignore the
60117// request if it has already been completed.
60118//
60119// For example, consider a situation where you make an initial request
60120// and the request times out. If you make the request again with the
60121// same request ID, the server can check if original operation with the
60122// same request ID was received, and if so, will ignore the second
60123// request. This prevents clients from accidentally creating duplicate
60124// commitments.
60125//
60126// The request ID must be a valid UUID with the exception that zero UUID
60127// is not supported (00000000-0000-0000-0000-000000000000).
60128func (c *InstancesSetMetadataCall) RequestId(requestId string) *InstancesSetMetadataCall {
60129	c.urlParams_.Set("requestId", requestId)
60130	return c
60131}
60132
60133// Fields allows partial responses to be retrieved. See
60134// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60135// for more information.
60136func (c *InstancesSetMetadataCall) Fields(s ...googleapi.Field) *InstancesSetMetadataCall {
60137	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60138	return c
60139}
60140
60141// Context sets the context to be used in this call's Do method. Any
60142// pending HTTP request will be aborted if the provided context is
60143// canceled.
60144func (c *InstancesSetMetadataCall) Context(ctx context.Context) *InstancesSetMetadataCall {
60145	c.ctx_ = ctx
60146	return c
60147}
60148
60149// Header returns an http.Header that can be modified by the caller to
60150// add HTTP headers to the request.
60151func (c *InstancesSetMetadataCall) Header() http.Header {
60152	if c.header_ == nil {
60153		c.header_ = make(http.Header)
60154	}
60155	return c.header_
60156}
60157
60158func (c *InstancesSetMetadataCall) doRequest(alt string) (*http.Response, error) {
60159	reqHeaders := make(http.Header)
60160	for k, v := range c.header_ {
60161		reqHeaders[k] = v
60162	}
60163	reqHeaders.Set("User-Agent", c.s.userAgent())
60164	var body io.Reader = nil
60165	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
60166	if err != nil {
60167		return nil, err
60168	}
60169	reqHeaders.Set("Content-Type", "application/json")
60170	c.urlParams_.Set("alt", alt)
60171	c.urlParams_.Set("prettyPrint", "false")
60172	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMetadata")
60173	urls += "?" + c.urlParams_.Encode()
60174	req, err := http.NewRequest("POST", urls, body)
60175	if err != nil {
60176		return nil, err
60177	}
60178	req.Header = reqHeaders
60179	googleapi.Expand(req.URL, map[string]string{
60180		"project":  c.project,
60181		"zone":     c.zone,
60182		"instance": c.instance,
60183	})
60184	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60185}
60186
60187// Do executes the "compute.instances.setMetadata" call.
60188// Exactly one of *Operation or error will be non-nil. Any non-2xx
60189// status code is an error. Response headers are in either
60190// *Operation.ServerResponse.Header or (if a response was returned at
60191// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60192// to check whether the returned error was because
60193// http.StatusNotModified was returned.
60194func (c *InstancesSetMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60195	gensupport.SetOptions(c.urlParams_, opts...)
60196	res, err := c.doRequest("json")
60197	if res != nil && res.StatusCode == http.StatusNotModified {
60198		if res.Body != nil {
60199			res.Body.Close()
60200		}
60201		return nil, &googleapi.Error{
60202			Code:   res.StatusCode,
60203			Header: res.Header,
60204		}
60205	}
60206	if err != nil {
60207		return nil, err
60208	}
60209	defer googleapi.CloseBody(res)
60210	if err := googleapi.CheckResponse(res); err != nil {
60211		return nil, err
60212	}
60213	ret := &Operation{
60214		ServerResponse: googleapi.ServerResponse{
60215			Header:         res.Header,
60216			HTTPStatusCode: res.StatusCode,
60217		},
60218	}
60219	target := &ret
60220	if err := gensupport.DecodeResponse(target, res); err != nil {
60221		return nil, err
60222	}
60223	return ret, nil
60224	// {
60225	//   "description": "Sets metadata for the specified instance to the data included in the request.",
60226	//   "httpMethod": "POST",
60227	//   "id": "compute.instances.setMetadata",
60228	//   "parameterOrder": [
60229	//     "project",
60230	//     "zone",
60231	//     "instance"
60232	//   ],
60233	//   "parameters": {
60234	//     "instance": {
60235	//       "description": "Name of the instance scoping this request.",
60236	//       "location": "path",
60237	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60238	//       "required": true,
60239	//       "type": "string"
60240	//     },
60241	//     "project": {
60242	//       "description": "Project ID for this request.",
60243	//       "location": "path",
60244	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60245	//       "required": true,
60246	//       "type": "string"
60247	//     },
60248	//     "requestId": {
60249	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60250	//       "location": "query",
60251	//       "type": "string"
60252	//     },
60253	//     "zone": {
60254	//       "description": "The name of the zone for this request.",
60255	//       "location": "path",
60256	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60257	//       "required": true,
60258	//       "type": "string"
60259	//     }
60260	//   },
60261	//   "path": "{project}/zones/{zone}/instances/{instance}/setMetadata",
60262	//   "request": {
60263	//     "$ref": "Metadata"
60264	//   },
60265	//   "response": {
60266	//     "$ref": "Operation"
60267	//   },
60268	//   "scopes": [
60269	//     "https://www.googleapis.com/auth/cloud-platform",
60270	//     "https://www.googleapis.com/auth/compute"
60271	//   ]
60272	// }
60273
60274}
60275
60276// method id "compute.instances.setMinCpuPlatform":
60277
60278type InstancesSetMinCpuPlatformCall struct {
60279	s                                 *Service
60280	project                           string
60281	zone                              string
60282	instance                          string
60283	instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest
60284	urlParams_                        gensupport.URLParams
60285	ctx_                              context.Context
60286	header_                           http.Header
60287}
60288
60289// SetMinCpuPlatform: Changes the minimum CPU platform that this
60290// instance should use. This method can only be called on a stopped
60291// instance. For more information, read Specifying a Minimum CPU
60292// Platform.
60293func (r *InstancesService) SetMinCpuPlatform(project string, zone string, instance string, instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest) *InstancesSetMinCpuPlatformCall {
60294	c := &InstancesSetMinCpuPlatformCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60295	c.project = project
60296	c.zone = zone
60297	c.instance = instance
60298	c.instancessetmincpuplatformrequest = instancessetmincpuplatformrequest
60299	return c
60300}
60301
60302// RequestId sets the optional parameter "requestId": An optional
60303// request ID to identify requests. Specify a unique request ID so that
60304// if you must retry your request, the server will know to ignore the
60305// request if it has already been completed.
60306//
60307// For example, consider a situation where you make an initial request
60308// and the request times out. If you make the request again with the
60309// same request ID, the server can check if original operation with the
60310// same request ID was received, and if so, will ignore the second
60311// request. This prevents clients from accidentally creating duplicate
60312// commitments.
60313//
60314// The request ID must be a valid UUID with the exception that zero UUID
60315// is not supported (00000000-0000-0000-0000-000000000000).
60316func (c *InstancesSetMinCpuPlatformCall) RequestId(requestId string) *InstancesSetMinCpuPlatformCall {
60317	c.urlParams_.Set("requestId", requestId)
60318	return c
60319}
60320
60321// Fields allows partial responses to be retrieved. See
60322// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60323// for more information.
60324func (c *InstancesSetMinCpuPlatformCall) Fields(s ...googleapi.Field) *InstancesSetMinCpuPlatformCall {
60325	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60326	return c
60327}
60328
60329// Context sets the context to be used in this call's Do method. Any
60330// pending HTTP request will be aborted if the provided context is
60331// canceled.
60332func (c *InstancesSetMinCpuPlatformCall) Context(ctx context.Context) *InstancesSetMinCpuPlatformCall {
60333	c.ctx_ = ctx
60334	return c
60335}
60336
60337// Header returns an http.Header that can be modified by the caller to
60338// add HTTP headers to the request.
60339func (c *InstancesSetMinCpuPlatformCall) Header() http.Header {
60340	if c.header_ == nil {
60341		c.header_ = make(http.Header)
60342	}
60343	return c.header_
60344}
60345
60346func (c *InstancesSetMinCpuPlatformCall) doRequest(alt string) (*http.Response, error) {
60347	reqHeaders := make(http.Header)
60348	for k, v := range c.header_ {
60349		reqHeaders[k] = v
60350	}
60351	reqHeaders.Set("User-Agent", c.s.userAgent())
60352	var body io.Reader = nil
60353	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmincpuplatformrequest)
60354	if err != nil {
60355		return nil, err
60356	}
60357	reqHeaders.Set("Content-Type", "application/json")
60358	c.urlParams_.Set("alt", alt)
60359	c.urlParams_.Set("prettyPrint", "false")
60360	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform")
60361	urls += "?" + c.urlParams_.Encode()
60362	req, err := http.NewRequest("POST", urls, body)
60363	if err != nil {
60364		return nil, err
60365	}
60366	req.Header = reqHeaders
60367	googleapi.Expand(req.URL, map[string]string{
60368		"project":  c.project,
60369		"zone":     c.zone,
60370		"instance": c.instance,
60371	})
60372	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60373}
60374
60375// Do executes the "compute.instances.setMinCpuPlatform" call.
60376// Exactly one of *Operation or error will be non-nil. Any non-2xx
60377// status code is an error. Response headers are in either
60378// *Operation.ServerResponse.Header or (if a response was returned at
60379// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60380// to check whether the returned error was because
60381// http.StatusNotModified was returned.
60382func (c *InstancesSetMinCpuPlatformCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60383	gensupport.SetOptions(c.urlParams_, opts...)
60384	res, err := c.doRequest("json")
60385	if res != nil && res.StatusCode == http.StatusNotModified {
60386		if res.Body != nil {
60387			res.Body.Close()
60388		}
60389		return nil, &googleapi.Error{
60390			Code:   res.StatusCode,
60391			Header: res.Header,
60392		}
60393	}
60394	if err != nil {
60395		return nil, err
60396	}
60397	defer googleapi.CloseBody(res)
60398	if err := googleapi.CheckResponse(res); err != nil {
60399		return nil, err
60400	}
60401	ret := &Operation{
60402		ServerResponse: googleapi.ServerResponse{
60403			Header:         res.Header,
60404			HTTPStatusCode: res.StatusCode,
60405		},
60406	}
60407	target := &ret
60408	if err := gensupport.DecodeResponse(target, res); err != nil {
60409		return nil, err
60410	}
60411	return ret, nil
60412	// {
60413	//   "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.",
60414	//   "httpMethod": "POST",
60415	//   "id": "compute.instances.setMinCpuPlatform",
60416	//   "parameterOrder": [
60417	//     "project",
60418	//     "zone",
60419	//     "instance"
60420	//   ],
60421	//   "parameters": {
60422	//     "instance": {
60423	//       "description": "Name of the instance scoping this request.",
60424	//       "location": "path",
60425	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60426	//       "required": true,
60427	//       "type": "string"
60428	//     },
60429	//     "project": {
60430	//       "description": "Project ID for this request.",
60431	//       "location": "path",
60432	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60433	//       "required": true,
60434	//       "type": "string"
60435	//     },
60436	//     "requestId": {
60437	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60438	//       "location": "query",
60439	//       "type": "string"
60440	//     },
60441	//     "zone": {
60442	//       "description": "The name of the zone for this request.",
60443	//       "location": "path",
60444	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60445	//       "required": true,
60446	//       "type": "string"
60447	//     }
60448	//   },
60449	//   "path": "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform",
60450	//   "request": {
60451	//     "$ref": "InstancesSetMinCpuPlatformRequest"
60452	//   },
60453	//   "response": {
60454	//     "$ref": "Operation"
60455	//   },
60456	//   "scopes": [
60457	//     "https://www.googleapis.com/auth/cloud-platform",
60458	//     "https://www.googleapis.com/auth/compute"
60459	//   ]
60460	// }
60461
60462}
60463
60464// method id "compute.instances.setScheduling":
60465
60466type InstancesSetSchedulingCall struct {
60467	s          *Service
60468	project    string
60469	zone       string
60470	instance   string
60471	scheduling *Scheduling
60472	urlParams_ gensupport.URLParams
60473	ctx_       context.Context
60474	header_    http.Header
60475}
60476
60477// SetScheduling: Sets an instance's scheduling options.
60478// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setScheduling
60479func (r *InstancesService) SetScheduling(project string, zone string, instance string, scheduling *Scheduling) *InstancesSetSchedulingCall {
60480	c := &InstancesSetSchedulingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60481	c.project = project
60482	c.zone = zone
60483	c.instance = instance
60484	c.scheduling = scheduling
60485	return c
60486}
60487
60488// RequestId sets the optional parameter "requestId": An optional
60489// request ID to identify requests. Specify a unique request ID so that
60490// if you must retry your request, the server will know to ignore the
60491// request if it has already been completed.
60492//
60493// For example, consider a situation where you make an initial request
60494// and the request times out. If you make the request again with the
60495// same request ID, the server can check if original operation with the
60496// same request ID was received, and if so, will ignore the second
60497// request. This prevents clients from accidentally creating duplicate
60498// commitments.
60499//
60500// The request ID must be a valid UUID with the exception that zero UUID
60501// is not supported (00000000-0000-0000-0000-000000000000).
60502func (c *InstancesSetSchedulingCall) RequestId(requestId string) *InstancesSetSchedulingCall {
60503	c.urlParams_.Set("requestId", requestId)
60504	return c
60505}
60506
60507// Fields allows partial responses to be retrieved. See
60508// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60509// for more information.
60510func (c *InstancesSetSchedulingCall) Fields(s ...googleapi.Field) *InstancesSetSchedulingCall {
60511	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60512	return c
60513}
60514
60515// Context sets the context to be used in this call's Do method. Any
60516// pending HTTP request will be aborted if the provided context is
60517// canceled.
60518func (c *InstancesSetSchedulingCall) Context(ctx context.Context) *InstancesSetSchedulingCall {
60519	c.ctx_ = ctx
60520	return c
60521}
60522
60523// Header returns an http.Header that can be modified by the caller to
60524// add HTTP headers to the request.
60525func (c *InstancesSetSchedulingCall) Header() http.Header {
60526	if c.header_ == nil {
60527		c.header_ = make(http.Header)
60528	}
60529	return c.header_
60530}
60531
60532func (c *InstancesSetSchedulingCall) doRequest(alt string) (*http.Response, error) {
60533	reqHeaders := make(http.Header)
60534	for k, v := range c.header_ {
60535		reqHeaders[k] = v
60536	}
60537	reqHeaders.Set("User-Agent", c.s.userAgent())
60538	var body io.Reader = nil
60539	body, err := googleapi.WithoutDataWrapper.JSONReader(c.scheduling)
60540	if err != nil {
60541		return nil, err
60542	}
60543	reqHeaders.Set("Content-Type", "application/json")
60544	c.urlParams_.Set("alt", alt)
60545	c.urlParams_.Set("prettyPrint", "false")
60546	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setScheduling")
60547	urls += "?" + c.urlParams_.Encode()
60548	req, err := http.NewRequest("POST", urls, body)
60549	if err != nil {
60550		return nil, err
60551	}
60552	req.Header = reqHeaders
60553	googleapi.Expand(req.URL, map[string]string{
60554		"project":  c.project,
60555		"zone":     c.zone,
60556		"instance": c.instance,
60557	})
60558	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60559}
60560
60561// Do executes the "compute.instances.setScheduling" call.
60562// Exactly one of *Operation or error will be non-nil. Any non-2xx
60563// status code is an error. Response headers are in either
60564// *Operation.ServerResponse.Header or (if a response was returned at
60565// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60566// to check whether the returned error was because
60567// http.StatusNotModified was returned.
60568func (c *InstancesSetSchedulingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60569	gensupport.SetOptions(c.urlParams_, opts...)
60570	res, err := c.doRequest("json")
60571	if res != nil && res.StatusCode == http.StatusNotModified {
60572		if res.Body != nil {
60573			res.Body.Close()
60574		}
60575		return nil, &googleapi.Error{
60576			Code:   res.StatusCode,
60577			Header: res.Header,
60578		}
60579	}
60580	if err != nil {
60581		return nil, err
60582	}
60583	defer googleapi.CloseBody(res)
60584	if err := googleapi.CheckResponse(res); err != nil {
60585		return nil, err
60586	}
60587	ret := &Operation{
60588		ServerResponse: googleapi.ServerResponse{
60589			Header:         res.Header,
60590			HTTPStatusCode: res.StatusCode,
60591		},
60592	}
60593	target := &ret
60594	if err := gensupport.DecodeResponse(target, res); err != nil {
60595		return nil, err
60596	}
60597	return ret, nil
60598	// {
60599	//   "description": "Sets an instance's scheduling options.",
60600	//   "httpMethod": "POST",
60601	//   "id": "compute.instances.setScheduling",
60602	//   "parameterOrder": [
60603	//     "project",
60604	//     "zone",
60605	//     "instance"
60606	//   ],
60607	//   "parameters": {
60608	//     "instance": {
60609	//       "description": "Instance name for this request.",
60610	//       "location": "path",
60611	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60612	//       "required": true,
60613	//       "type": "string"
60614	//     },
60615	//     "project": {
60616	//       "description": "Project ID for this request.",
60617	//       "location": "path",
60618	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60619	//       "required": true,
60620	//       "type": "string"
60621	//     },
60622	//     "requestId": {
60623	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60624	//       "location": "query",
60625	//       "type": "string"
60626	//     },
60627	//     "zone": {
60628	//       "description": "The name of the zone for this request.",
60629	//       "location": "path",
60630	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60631	//       "required": true,
60632	//       "type": "string"
60633	//     }
60634	//   },
60635	//   "path": "{project}/zones/{zone}/instances/{instance}/setScheduling",
60636	//   "request": {
60637	//     "$ref": "Scheduling"
60638	//   },
60639	//   "response": {
60640	//     "$ref": "Operation"
60641	//   },
60642	//   "scopes": [
60643	//     "https://www.googleapis.com/auth/cloud-platform",
60644	//     "https://www.googleapis.com/auth/compute"
60645	//   ]
60646	// }
60647
60648}
60649
60650// method id "compute.instances.setServiceAccount":
60651
60652type InstancesSetServiceAccountCall struct {
60653	s                                 *Service
60654	project                           string
60655	zone                              string
60656	instance                          string
60657	instancessetserviceaccountrequest *InstancesSetServiceAccountRequest
60658	urlParams_                        gensupport.URLParams
60659	ctx_                              context.Context
60660	header_                           http.Header
60661}
60662
60663// SetServiceAccount: Sets the service account on the instance. For more
60664// information, read Changing the service account and access scopes for
60665// an instance.
60666func (r *InstancesService) SetServiceAccount(project string, zone string, instance string, instancessetserviceaccountrequest *InstancesSetServiceAccountRequest) *InstancesSetServiceAccountCall {
60667	c := &InstancesSetServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60668	c.project = project
60669	c.zone = zone
60670	c.instance = instance
60671	c.instancessetserviceaccountrequest = instancessetserviceaccountrequest
60672	return c
60673}
60674
60675// RequestId sets the optional parameter "requestId": An optional
60676// request ID to identify requests. Specify a unique request ID so that
60677// if you must retry your request, the server will know to ignore the
60678// request if it has already been completed.
60679//
60680// For example, consider a situation where you make an initial request
60681// and the request times out. If you make the request again with the
60682// same request ID, the server can check if original operation with the
60683// same request ID was received, and if so, will ignore the second
60684// request. This prevents clients from accidentally creating duplicate
60685// commitments.
60686//
60687// The request ID must be a valid UUID with the exception that zero UUID
60688// is not supported (00000000-0000-0000-0000-000000000000).
60689func (c *InstancesSetServiceAccountCall) RequestId(requestId string) *InstancesSetServiceAccountCall {
60690	c.urlParams_.Set("requestId", requestId)
60691	return c
60692}
60693
60694// Fields allows partial responses to be retrieved. See
60695// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60696// for more information.
60697func (c *InstancesSetServiceAccountCall) Fields(s ...googleapi.Field) *InstancesSetServiceAccountCall {
60698	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60699	return c
60700}
60701
60702// Context sets the context to be used in this call's Do method. Any
60703// pending HTTP request will be aborted if the provided context is
60704// canceled.
60705func (c *InstancesSetServiceAccountCall) Context(ctx context.Context) *InstancesSetServiceAccountCall {
60706	c.ctx_ = ctx
60707	return c
60708}
60709
60710// Header returns an http.Header that can be modified by the caller to
60711// add HTTP headers to the request.
60712func (c *InstancesSetServiceAccountCall) Header() http.Header {
60713	if c.header_ == nil {
60714		c.header_ = make(http.Header)
60715	}
60716	return c.header_
60717}
60718
60719func (c *InstancesSetServiceAccountCall) doRequest(alt string) (*http.Response, error) {
60720	reqHeaders := make(http.Header)
60721	for k, v := range c.header_ {
60722		reqHeaders[k] = v
60723	}
60724	reqHeaders.Set("User-Agent", c.s.userAgent())
60725	var body io.Reader = nil
60726	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetserviceaccountrequest)
60727	if err != nil {
60728		return nil, err
60729	}
60730	reqHeaders.Set("Content-Type", "application/json")
60731	c.urlParams_.Set("alt", alt)
60732	c.urlParams_.Set("prettyPrint", "false")
60733	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setServiceAccount")
60734	urls += "?" + c.urlParams_.Encode()
60735	req, err := http.NewRequest("POST", urls, body)
60736	if err != nil {
60737		return nil, err
60738	}
60739	req.Header = reqHeaders
60740	googleapi.Expand(req.URL, map[string]string{
60741		"project":  c.project,
60742		"zone":     c.zone,
60743		"instance": c.instance,
60744	})
60745	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60746}
60747
60748// Do executes the "compute.instances.setServiceAccount" call.
60749// Exactly one of *Operation or error will be non-nil. Any non-2xx
60750// status code is an error. Response headers are in either
60751// *Operation.ServerResponse.Header or (if a response was returned at
60752// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60753// to check whether the returned error was because
60754// http.StatusNotModified was returned.
60755func (c *InstancesSetServiceAccountCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60756	gensupport.SetOptions(c.urlParams_, opts...)
60757	res, err := c.doRequest("json")
60758	if res != nil && res.StatusCode == http.StatusNotModified {
60759		if res.Body != nil {
60760			res.Body.Close()
60761		}
60762		return nil, &googleapi.Error{
60763			Code:   res.StatusCode,
60764			Header: res.Header,
60765		}
60766	}
60767	if err != nil {
60768		return nil, err
60769	}
60770	defer googleapi.CloseBody(res)
60771	if err := googleapi.CheckResponse(res); err != nil {
60772		return nil, err
60773	}
60774	ret := &Operation{
60775		ServerResponse: googleapi.ServerResponse{
60776			Header:         res.Header,
60777			HTTPStatusCode: res.StatusCode,
60778		},
60779	}
60780	target := &ret
60781	if err := gensupport.DecodeResponse(target, res); err != nil {
60782		return nil, err
60783	}
60784	return ret, nil
60785	// {
60786	//   "description": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.",
60787	//   "httpMethod": "POST",
60788	//   "id": "compute.instances.setServiceAccount",
60789	//   "parameterOrder": [
60790	//     "project",
60791	//     "zone",
60792	//     "instance"
60793	//   ],
60794	//   "parameters": {
60795	//     "instance": {
60796	//       "description": "Name of the instance resource to start.",
60797	//       "location": "path",
60798	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60799	//       "required": true,
60800	//       "type": "string"
60801	//     },
60802	//     "project": {
60803	//       "description": "Project ID for this request.",
60804	//       "location": "path",
60805	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60806	//       "required": true,
60807	//       "type": "string"
60808	//     },
60809	//     "requestId": {
60810	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60811	//       "location": "query",
60812	//       "type": "string"
60813	//     },
60814	//     "zone": {
60815	//       "description": "The name of the zone for this request.",
60816	//       "location": "path",
60817	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60818	//       "required": true,
60819	//       "type": "string"
60820	//     }
60821	//   },
60822	//   "path": "{project}/zones/{zone}/instances/{instance}/setServiceAccount",
60823	//   "request": {
60824	//     "$ref": "InstancesSetServiceAccountRequest"
60825	//   },
60826	//   "response": {
60827	//     "$ref": "Operation"
60828	//   },
60829	//   "scopes": [
60830	//     "https://www.googleapis.com/auth/cloud-platform",
60831	//     "https://www.googleapis.com/auth/compute"
60832	//   ]
60833	// }
60834
60835}
60836
60837// method id "compute.instances.setShieldedInstanceIntegrityPolicy":
60838
60839type InstancesSetShieldedInstanceIntegrityPolicyCall struct {
60840	s                               *Service
60841	project                         string
60842	zone                            string
60843	instance                        string
60844	shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy
60845	urlParams_                      gensupport.URLParams
60846	ctx_                            context.Context
60847	header_                         http.Header
60848}
60849
60850// SetShieldedInstanceIntegrityPolicy: Sets the Shielded Instance
60851// integrity policy for an instance. You can only use this method on a
60852// running instance. This method supports PATCH semantics and uses the
60853// JSON merge patch format and processing rules.
60854func (r *InstancesService) SetShieldedInstanceIntegrityPolicy(project string, zone string, instance string, shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy) *InstancesSetShieldedInstanceIntegrityPolicyCall {
60855	c := &InstancesSetShieldedInstanceIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60856	c.project = project
60857	c.zone = zone
60858	c.instance = instance
60859	c.shieldedinstanceintegritypolicy = shieldedinstanceintegritypolicy
60860	return c
60861}
60862
60863// RequestId sets the optional parameter "requestId": An optional
60864// request ID to identify requests. Specify a unique request ID so that
60865// if you must retry your request, the server will know to ignore the
60866// request if it has already been completed.
60867//
60868// For example, consider a situation where you make an initial request
60869// and the request times out. If you make the request again with the
60870// same request ID, the server can check if original operation with the
60871// same request ID was received, and if so, will ignore the second
60872// request. This prevents clients from accidentally creating duplicate
60873// commitments.
60874//
60875// The request ID must be a valid UUID with the exception that zero UUID
60876// is not supported (00000000-0000-0000-0000-000000000000).
60877func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedInstanceIntegrityPolicyCall {
60878	c.urlParams_.Set("requestId", requestId)
60879	return c
60880}
60881
60882// Fields allows partial responses to be retrieved. See
60883// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60884// for more information.
60885func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedInstanceIntegrityPolicyCall {
60886	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60887	return c
60888}
60889
60890// Context sets the context to be used in this call's Do method. Any
60891// pending HTTP request will be aborted if the provided context is
60892// canceled.
60893func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedInstanceIntegrityPolicyCall {
60894	c.ctx_ = ctx
60895	return c
60896}
60897
60898// Header returns an http.Header that can be modified by the caller to
60899// add HTTP headers to the request.
60900func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Header() http.Header {
60901	if c.header_ == nil {
60902		c.header_ = make(http.Header)
60903	}
60904	return c.header_
60905}
60906
60907func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) {
60908	reqHeaders := make(http.Header)
60909	for k, v := range c.header_ {
60910		reqHeaders[k] = v
60911	}
60912	reqHeaders.Set("User-Agent", c.s.userAgent())
60913	var body io.Reader = nil
60914	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceintegritypolicy)
60915	if err != nil {
60916		return nil, err
60917	}
60918	reqHeaders.Set("Content-Type", "application/json")
60919	c.urlParams_.Set("alt", alt)
60920	c.urlParams_.Set("prettyPrint", "false")
60921	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy")
60922	urls += "?" + c.urlParams_.Encode()
60923	req, err := http.NewRequest("PATCH", urls, body)
60924	if err != nil {
60925		return nil, err
60926	}
60927	req.Header = reqHeaders
60928	googleapi.Expand(req.URL, map[string]string{
60929		"project":  c.project,
60930		"zone":     c.zone,
60931		"instance": c.instance,
60932	})
60933	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60934}
60935
60936// Do executes the "compute.instances.setShieldedInstanceIntegrityPolicy" call.
60937// Exactly one of *Operation or error will be non-nil. Any non-2xx
60938// status code is an error. Response headers are in either
60939// *Operation.ServerResponse.Header or (if a response was returned at
60940// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60941// to check whether the returned error was because
60942// http.StatusNotModified was returned.
60943func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60944	gensupport.SetOptions(c.urlParams_, opts...)
60945	res, err := c.doRequest("json")
60946	if res != nil && res.StatusCode == http.StatusNotModified {
60947		if res.Body != nil {
60948			res.Body.Close()
60949		}
60950		return nil, &googleapi.Error{
60951			Code:   res.StatusCode,
60952			Header: res.Header,
60953		}
60954	}
60955	if err != nil {
60956		return nil, err
60957	}
60958	defer googleapi.CloseBody(res)
60959	if err := googleapi.CheckResponse(res); err != nil {
60960		return nil, err
60961	}
60962	ret := &Operation{
60963		ServerResponse: googleapi.ServerResponse{
60964			Header:         res.Header,
60965			HTTPStatusCode: res.StatusCode,
60966		},
60967	}
60968	target := &ret
60969	if err := gensupport.DecodeResponse(target, res); err != nil {
60970		return nil, err
60971	}
60972	return ret, nil
60973	// {
60974	//   "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.",
60975	//   "httpMethod": "PATCH",
60976	//   "id": "compute.instances.setShieldedInstanceIntegrityPolicy",
60977	//   "parameterOrder": [
60978	//     "project",
60979	//     "zone",
60980	//     "instance"
60981	//   ],
60982	//   "parameters": {
60983	//     "instance": {
60984	//       "description": "Name or id of the instance scoping this request.",
60985	//       "location": "path",
60986	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60987	//       "required": true,
60988	//       "type": "string"
60989	//     },
60990	//     "project": {
60991	//       "description": "Project ID for this request.",
60992	//       "location": "path",
60993	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60994	//       "required": true,
60995	//       "type": "string"
60996	//     },
60997	//     "requestId": {
60998	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60999	//       "location": "query",
61000	//       "type": "string"
61001	//     },
61002	//     "zone": {
61003	//       "description": "The name of the zone for this request.",
61004	//       "location": "path",
61005	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61006	//       "required": true,
61007	//       "type": "string"
61008	//     }
61009	//   },
61010	//   "path": "{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy",
61011	//   "request": {
61012	//     "$ref": "ShieldedInstanceIntegrityPolicy"
61013	//   },
61014	//   "response": {
61015	//     "$ref": "Operation"
61016	//   },
61017	//   "scopes": [
61018	//     "https://www.googleapis.com/auth/cloud-platform",
61019	//     "https://www.googleapis.com/auth/compute"
61020	//   ]
61021	// }
61022
61023}
61024
61025// method id "compute.instances.setTags":
61026
61027type InstancesSetTagsCall struct {
61028	s          *Service
61029	project    string
61030	zone       string
61031	instance   string
61032	tags       *Tags
61033	urlParams_ gensupport.URLParams
61034	ctx_       context.Context
61035	header_    http.Header
61036}
61037
61038// SetTags: Sets network tags for the specified instance to the data
61039// included in the request.
61040// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setTags
61041func (r *InstancesService) SetTags(project string, zone string, instance string, tags *Tags) *InstancesSetTagsCall {
61042	c := &InstancesSetTagsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61043	c.project = project
61044	c.zone = zone
61045	c.instance = instance
61046	c.tags = tags
61047	return c
61048}
61049
61050// RequestId sets the optional parameter "requestId": An optional
61051// request ID to identify requests. Specify a unique request ID so that
61052// if you must retry your request, the server will know to ignore the
61053// request if it has already been completed.
61054//
61055// For example, consider a situation where you make an initial request
61056// and the request times out. If you make the request again with the
61057// same request ID, the server can check if original operation with the
61058// same request ID was received, and if so, will ignore the second
61059// request. This prevents clients from accidentally creating duplicate
61060// commitments.
61061//
61062// The request ID must be a valid UUID with the exception that zero UUID
61063// is not supported (00000000-0000-0000-0000-000000000000).
61064func (c *InstancesSetTagsCall) RequestId(requestId string) *InstancesSetTagsCall {
61065	c.urlParams_.Set("requestId", requestId)
61066	return c
61067}
61068
61069// Fields allows partial responses to be retrieved. See
61070// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61071// for more information.
61072func (c *InstancesSetTagsCall) Fields(s ...googleapi.Field) *InstancesSetTagsCall {
61073	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61074	return c
61075}
61076
61077// Context sets the context to be used in this call's Do method. Any
61078// pending HTTP request will be aborted if the provided context is
61079// canceled.
61080func (c *InstancesSetTagsCall) Context(ctx context.Context) *InstancesSetTagsCall {
61081	c.ctx_ = ctx
61082	return c
61083}
61084
61085// Header returns an http.Header that can be modified by the caller to
61086// add HTTP headers to the request.
61087func (c *InstancesSetTagsCall) Header() http.Header {
61088	if c.header_ == nil {
61089		c.header_ = make(http.Header)
61090	}
61091	return c.header_
61092}
61093
61094func (c *InstancesSetTagsCall) doRequest(alt string) (*http.Response, error) {
61095	reqHeaders := make(http.Header)
61096	for k, v := range c.header_ {
61097		reqHeaders[k] = v
61098	}
61099	reqHeaders.Set("User-Agent", c.s.userAgent())
61100	var body io.Reader = nil
61101	body, err := googleapi.WithoutDataWrapper.JSONReader(c.tags)
61102	if err != nil {
61103		return nil, err
61104	}
61105	reqHeaders.Set("Content-Type", "application/json")
61106	c.urlParams_.Set("alt", alt)
61107	c.urlParams_.Set("prettyPrint", "false")
61108	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setTags")
61109	urls += "?" + c.urlParams_.Encode()
61110	req, err := http.NewRequest("POST", urls, body)
61111	if err != nil {
61112		return nil, err
61113	}
61114	req.Header = reqHeaders
61115	googleapi.Expand(req.URL, map[string]string{
61116		"project":  c.project,
61117		"zone":     c.zone,
61118		"instance": c.instance,
61119	})
61120	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61121}
61122
61123// Do executes the "compute.instances.setTags" call.
61124// Exactly one of *Operation or error will be non-nil. Any non-2xx
61125// status code is an error. Response headers are in either
61126// *Operation.ServerResponse.Header or (if a response was returned at
61127// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61128// to check whether the returned error was because
61129// http.StatusNotModified was returned.
61130func (c *InstancesSetTagsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61131	gensupport.SetOptions(c.urlParams_, opts...)
61132	res, err := c.doRequest("json")
61133	if res != nil && res.StatusCode == http.StatusNotModified {
61134		if res.Body != nil {
61135			res.Body.Close()
61136		}
61137		return nil, &googleapi.Error{
61138			Code:   res.StatusCode,
61139			Header: res.Header,
61140		}
61141	}
61142	if err != nil {
61143		return nil, err
61144	}
61145	defer googleapi.CloseBody(res)
61146	if err := googleapi.CheckResponse(res); err != nil {
61147		return nil, err
61148	}
61149	ret := &Operation{
61150		ServerResponse: googleapi.ServerResponse{
61151			Header:         res.Header,
61152			HTTPStatusCode: res.StatusCode,
61153		},
61154	}
61155	target := &ret
61156	if err := gensupport.DecodeResponse(target, res); err != nil {
61157		return nil, err
61158	}
61159	return ret, nil
61160	// {
61161	//   "description": "Sets network tags for the specified instance to the data included in the request.",
61162	//   "httpMethod": "POST",
61163	//   "id": "compute.instances.setTags",
61164	//   "parameterOrder": [
61165	//     "project",
61166	//     "zone",
61167	//     "instance"
61168	//   ],
61169	//   "parameters": {
61170	//     "instance": {
61171	//       "description": "Name of the instance scoping this request.",
61172	//       "location": "path",
61173	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61174	//       "required": true,
61175	//       "type": "string"
61176	//     },
61177	//     "project": {
61178	//       "description": "Project ID for this request.",
61179	//       "location": "path",
61180	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61181	//       "required": true,
61182	//       "type": "string"
61183	//     },
61184	//     "requestId": {
61185	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61186	//       "location": "query",
61187	//       "type": "string"
61188	//     },
61189	//     "zone": {
61190	//       "description": "The name of the zone for this request.",
61191	//       "location": "path",
61192	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61193	//       "required": true,
61194	//       "type": "string"
61195	//     }
61196	//   },
61197	//   "path": "{project}/zones/{zone}/instances/{instance}/setTags",
61198	//   "request": {
61199	//     "$ref": "Tags"
61200	//   },
61201	//   "response": {
61202	//     "$ref": "Operation"
61203	//   },
61204	//   "scopes": [
61205	//     "https://www.googleapis.com/auth/cloud-platform",
61206	//     "https://www.googleapis.com/auth/compute"
61207	//   ]
61208	// }
61209
61210}
61211
61212// method id "compute.instances.simulateMaintenanceEvent":
61213
61214type InstancesSimulateMaintenanceEventCall struct {
61215	s          *Service
61216	project    string
61217	zone       string
61218	instance   string
61219	urlParams_ gensupport.URLParams
61220	ctx_       context.Context
61221	header_    http.Header
61222}
61223
61224// SimulateMaintenanceEvent: Simulates a maintenance event on the
61225// instance.
61226func (r *InstancesService) SimulateMaintenanceEvent(project string, zone string, instance string) *InstancesSimulateMaintenanceEventCall {
61227	c := &InstancesSimulateMaintenanceEventCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61228	c.project = project
61229	c.zone = zone
61230	c.instance = instance
61231	return c
61232}
61233
61234// Fields allows partial responses to be retrieved. See
61235// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61236// for more information.
61237func (c *InstancesSimulateMaintenanceEventCall) Fields(s ...googleapi.Field) *InstancesSimulateMaintenanceEventCall {
61238	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61239	return c
61240}
61241
61242// Context sets the context to be used in this call's Do method. Any
61243// pending HTTP request will be aborted if the provided context is
61244// canceled.
61245func (c *InstancesSimulateMaintenanceEventCall) Context(ctx context.Context) *InstancesSimulateMaintenanceEventCall {
61246	c.ctx_ = ctx
61247	return c
61248}
61249
61250// Header returns an http.Header that can be modified by the caller to
61251// add HTTP headers to the request.
61252func (c *InstancesSimulateMaintenanceEventCall) Header() http.Header {
61253	if c.header_ == nil {
61254		c.header_ = make(http.Header)
61255	}
61256	return c.header_
61257}
61258
61259func (c *InstancesSimulateMaintenanceEventCall) doRequest(alt string) (*http.Response, error) {
61260	reqHeaders := make(http.Header)
61261	for k, v := range c.header_ {
61262		reqHeaders[k] = v
61263	}
61264	reqHeaders.Set("User-Agent", c.s.userAgent())
61265	var body io.Reader = nil
61266	c.urlParams_.Set("alt", alt)
61267	c.urlParams_.Set("prettyPrint", "false")
61268	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent")
61269	urls += "?" + c.urlParams_.Encode()
61270	req, err := http.NewRequest("POST", urls, body)
61271	if err != nil {
61272		return nil, err
61273	}
61274	req.Header = reqHeaders
61275	googleapi.Expand(req.URL, map[string]string{
61276		"project":  c.project,
61277		"zone":     c.zone,
61278		"instance": c.instance,
61279	})
61280	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61281}
61282
61283// Do executes the "compute.instances.simulateMaintenanceEvent" call.
61284// Exactly one of *Operation or error will be non-nil. Any non-2xx
61285// status code is an error. Response headers are in either
61286// *Operation.ServerResponse.Header or (if a response was returned at
61287// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61288// to check whether the returned error was because
61289// http.StatusNotModified was returned.
61290func (c *InstancesSimulateMaintenanceEventCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61291	gensupport.SetOptions(c.urlParams_, opts...)
61292	res, err := c.doRequest("json")
61293	if res != nil && res.StatusCode == http.StatusNotModified {
61294		if res.Body != nil {
61295			res.Body.Close()
61296		}
61297		return nil, &googleapi.Error{
61298			Code:   res.StatusCode,
61299			Header: res.Header,
61300		}
61301	}
61302	if err != nil {
61303		return nil, err
61304	}
61305	defer googleapi.CloseBody(res)
61306	if err := googleapi.CheckResponse(res); err != nil {
61307		return nil, err
61308	}
61309	ret := &Operation{
61310		ServerResponse: googleapi.ServerResponse{
61311			Header:         res.Header,
61312			HTTPStatusCode: res.StatusCode,
61313		},
61314	}
61315	target := &ret
61316	if err := gensupport.DecodeResponse(target, res); err != nil {
61317		return nil, err
61318	}
61319	return ret, nil
61320	// {
61321	//   "description": "Simulates a maintenance event on the instance.",
61322	//   "httpMethod": "POST",
61323	//   "id": "compute.instances.simulateMaintenanceEvent",
61324	//   "parameterOrder": [
61325	//     "project",
61326	//     "zone",
61327	//     "instance"
61328	//   ],
61329	//   "parameters": {
61330	//     "instance": {
61331	//       "description": "Name of the instance scoping this request.",
61332	//       "location": "path",
61333	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61334	//       "required": true,
61335	//       "type": "string"
61336	//     },
61337	//     "project": {
61338	//       "description": "Project ID for this request.",
61339	//       "location": "path",
61340	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61341	//       "required": true,
61342	//       "type": "string"
61343	//     },
61344	//     "zone": {
61345	//       "description": "The name of the zone for this request.",
61346	//       "location": "path",
61347	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61348	//       "required": true,
61349	//       "type": "string"
61350	//     }
61351	//   },
61352	//   "path": "{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent",
61353	//   "response": {
61354	//     "$ref": "Operation"
61355	//   },
61356	//   "scopes": [
61357	//     "https://www.googleapis.com/auth/cloud-platform",
61358	//     "https://www.googleapis.com/auth/compute"
61359	//   ]
61360	// }
61361
61362}
61363
61364// method id "compute.instances.start":
61365
61366type InstancesStartCall struct {
61367	s          *Service
61368	project    string
61369	zone       string
61370	instance   string
61371	urlParams_ gensupport.URLParams
61372	ctx_       context.Context
61373	header_    http.Header
61374}
61375
61376// Start: Starts an instance that was stopped using the instances().stop
61377// method. For more information, see Restart an instance.
61378// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/start
61379func (r *InstancesService) Start(project string, zone string, instance string) *InstancesStartCall {
61380	c := &InstancesStartCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61381	c.project = project
61382	c.zone = zone
61383	c.instance = instance
61384	return c
61385}
61386
61387// RequestId sets the optional parameter "requestId": An optional
61388// request ID to identify requests. Specify a unique request ID so that
61389// if you must retry your request, the server will know to ignore the
61390// request if it has already been completed.
61391//
61392// For example, consider a situation where you make an initial request
61393// and the request times out. If you make the request again with the
61394// same request ID, the server can check if original operation with the
61395// same request ID was received, and if so, will ignore the second
61396// request. This prevents clients from accidentally creating duplicate
61397// commitments.
61398//
61399// The request ID must be a valid UUID with the exception that zero UUID
61400// is not supported (00000000-0000-0000-0000-000000000000).
61401func (c *InstancesStartCall) RequestId(requestId string) *InstancesStartCall {
61402	c.urlParams_.Set("requestId", requestId)
61403	return c
61404}
61405
61406// Fields allows partial responses to be retrieved. See
61407// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61408// for more information.
61409func (c *InstancesStartCall) Fields(s ...googleapi.Field) *InstancesStartCall {
61410	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61411	return c
61412}
61413
61414// Context sets the context to be used in this call's Do method. Any
61415// pending HTTP request will be aborted if the provided context is
61416// canceled.
61417func (c *InstancesStartCall) Context(ctx context.Context) *InstancesStartCall {
61418	c.ctx_ = ctx
61419	return c
61420}
61421
61422// Header returns an http.Header that can be modified by the caller to
61423// add HTTP headers to the request.
61424func (c *InstancesStartCall) Header() http.Header {
61425	if c.header_ == nil {
61426		c.header_ = make(http.Header)
61427	}
61428	return c.header_
61429}
61430
61431func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) {
61432	reqHeaders := make(http.Header)
61433	for k, v := range c.header_ {
61434		reqHeaders[k] = v
61435	}
61436	reqHeaders.Set("User-Agent", c.s.userAgent())
61437	var body io.Reader = nil
61438	c.urlParams_.Set("alt", alt)
61439	c.urlParams_.Set("prettyPrint", "false")
61440	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/start")
61441	urls += "?" + c.urlParams_.Encode()
61442	req, err := http.NewRequest("POST", urls, body)
61443	if err != nil {
61444		return nil, err
61445	}
61446	req.Header = reqHeaders
61447	googleapi.Expand(req.URL, map[string]string{
61448		"project":  c.project,
61449		"zone":     c.zone,
61450		"instance": c.instance,
61451	})
61452	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61453}
61454
61455// Do executes the "compute.instances.start" call.
61456// Exactly one of *Operation or error will be non-nil. Any non-2xx
61457// status code is an error. Response headers are in either
61458// *Operation.ServerResponse.Header or (if a response was returned at
61459// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61460// to check whether the returned error was because
61461// http.StatusNotModified was returned.
61462func (c *InstancesStartCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61463	gensupport.SetOptions(c.urlParams_, opts...)
61464	res, err := c.doRequest("json")
61465	if res != nil && res.StatusCode == http.StatusNotModified {
61466		if res.Body != nil {
61467			res.Body.Close()
61468		}
61469		return nil, &googleapi.Error{
61470			Code:   res.StatusCode,
61471			Header: res.Header,
61472		}
61473	}
61474	if err != nil {
61475		return nil, err
61476	}
61477	defer googleapi.CloseBody(res)
61478	if err := googleapi.CheckResponse(res); err != nil {
61479		return nil, err
61480	}
61481	ret := &Operation{
61482		ServerResponse: googleapi.ServerResponse{
61483			Header:         res.Header,
61484			HTTPStatusCode: res.StatusCode,
61485		},
61486	}
61487	target := &ret
61488	if err := gensupport.DecodeResponse(target, res); err != nil {
61489		return nil, err
61490	}
61491	return ret, nil
61492	// {
61493	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
61494	//   "httpMethod": "POST",
61495	//   "id": "compute.instances.start",
61496	//   "parameterOrder": [
61497	//     "project",
61498	//     "zone",
61499	//     "instance"
61500	//   ],
61501	//   "parameters": {
61502	//     "instance": {
61503	//       "description": "Name of the instance resource to start.",
61504	//       "location": "path",
61505	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61506	//       "required": true,
61507	//       "type": "string"
61508	//     },
61509	//     "project": {
61510	//       "description": "Project ID for this request.",
61511	//       "location": "path",
61512	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61513	//       "required": true,
61514	//       "type": "string"
61515	//     },
61516	//     "requestId": {
61517	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61518	//       "location": "query",
61519	//       "type": "string"
61520	//     },
61521	//     "zone": {
61522	//       "description": "The name of the zone for this request.",
61523	//       "location": "path",
61524	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61525	//       "required": true,
61526	//       "type": "string"
61527	//     }
61528	//   },
61529	//   "path": "{project}/zones/{zone}/instances/{instance}/start",
61530	//   "response": {
61531	//     "$ref": "Operation"
61532	//   },
61533	//   "scopes": [
61534	//     "https://www.googleapis.com/auth/cloud-platform",
61535	//     "https://www.googleapis.com/auth/compute"
61536	//   ]
61537	// }
61538
61539}
61540
61541// method id "compute.instances.startWithEncryptionKey":
61542
61543type InstancesStartWithEncryptionKeyCall struct {
61544	s                                      *Service
61545	project                                string
61546	zone                                   string
61547	instance                               string
61548	instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest
61549	urlParams_                             gensupport.URLParams
61550	ctx_                                   context.Context
61551	header_                                http.Header
61552}
61553
61554// StartWithEncryptionKey: Starts an instance that was stopped using the
61555// instances().stop method. For more information, see Restart an
61556// instance.
61557func (r *InstancesService) StartWithEncryptionKey(project string, zone string, instance string, instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest) *InstancesStartWithEncryptionKeyCall {
61558	c := &InstancesStartWithEncryptionKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61559	c.project = project
61560	c.zone = zone
61561	c.instance = instance
61562	c.instancesstartwithencryptionkeyrequest = instancesstartwithencryptionkeyrequest
61563	return c
61564}
61565
61566// RequestId sets the optional parameter "requestId": An optional
61567// request ID to identify requests. Specify a unique request ID so that
61568// if you must retry your request, the server will know to ignore the
61569// request if it has already been completed.
61570//
61571// For example, consider a situation where you make an initial request
61572// and the request times out. If you make the request again with the
61573// same request ID, the server can check if original operation with the
61574// same request ID was received, and if so, will ignore the second
61575// request. This prevents clients from accidentally creating duplicate
61576// commitments.
61577//
61578// The request ID must be a valid UUID with the exception that zero UUID
61579// is not supported (00000000-0000-0000-0000-000000000000).
61580func (c *InstancesStartWithEncryptionKeyCall) RequestId(requestId string) *InstancesStartWithEncryptionKeyCall {
61581	c.urlParams_.Set("requestId", requestId)
61582	return c
61583}
61584
61585// Fields allows partial responses to be retrieved. See
61586// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61587// for more information.
61588func (c *InstancesStartWithEncryptionKeyCall) Fields(s ...googleapi.Field) *InstancesStartWithEncryptionKeyCall {
61589	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61590	return c
61591}
61592
61593// Context sets the context to be used in this call's Do method. Any
61594// pending HTTP request will be aborted if the provided context is
61595// canceled.
61596func (c *InstancesStartWithEncryptionKeyCall) Context(ctx context.Context) *InstancesStartWithEncryptionKeyCall {
61597	c.ctx_ = ctx
61598	return c
61599}
61600
61601// Header returns an http.Header that can be modified by the caller to
61602// add HTTP headers to the request.
61603func (c *InstancesStartWithEncryptionKeyCall) Header() http.Header {
61604	if c.header_ == nil {
61605		c.header_ = make(http.Header)
61606	}
61607	return c.header_
61608}
61609
61610func (c *InstancesStartWithEncryptionKeyCall) doRequest(alt string) (*http.Response, error) {
61611	reqHeaders := make(http.Header)
61612	for k, v := range c.header_ {
61613		reqHeaders[k] = v
61614	}
61615	reqHeaders.Set("User-Agent", c.s.userAgent())
61616	var body io.Reader = nil
61617	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesstartwithencryptionkeyrequest)
61618	if err != nil {
61619		return nil, err
61620	}
61621	reqHeaders.Set("Content-Type", "application/json")
61622	c.urlParams_.Set("alt", alt)
61623	c.urlParams_.Set("prettyPrint", "false")
61624	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey")
61625	urls += "?" + c.urlParams_.Encode()
61626	req, err := http.NewRequest("POST", urls, body)
61627	if err != nil {
61628		return nil, err
61629	}
61630	req.Header = reqHeaders
61631	googleapi.Expand(req.URL, map[string]string{
61632		"project":  c.project,
61633		"zone":     c.zone,
61634		"instance": c.instance,
61635	})
61636	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61637}
61638
61639// Do executes the "compute.instances.startWithEncryptionKey" call.
61640// Exactly one of *Operation or error will be non-nil. Any non-2xx
61641// status code is an error. Response headers are in either
61642// *Operation.ServerResponse.Header or (if a response was returned at
61643// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61644// to check whether the returned error was because
61645// http.StatusNotModified was returned.
61646func (c *InstancesStartWithEncryptionKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61647	gensupport.SetOptions(c.urlParams_, opts...)
61648	res, err := c.doRequest("json")
61649	if res != nil && res.StatusCode == http.StatusNotModified {
61650		if res.Body != nil {
61651			res.Body.Close()
61652		}
61653		return nil, &googleapi.Error{
61654			Code:   res.StatusCode,
61655			Header: res.Header,
61656		}
61657	}
61658	if err != nil {
61659		return nil, err
61660	}
61661	defer googleapi.CloseBody(res)
61662	if err := googleapi.CheckResponse(res); err != nil {
61663		return nil, err
61664	}
61665	ret := &Operation{
61666		ServerResponse: googleapi.ServerResponse{
61667			Header:         res.Header,
61668			HTTPStatusCode: res.StatusCode,
61669		},
61670	}
61671	target := &ret
61672	if err := gensupport.DecodeResponse(target, res); err != nil {
61673		return nil, err
61674	}
61675	return ret, nil
61676	// {
61677	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
61678	//   "httpMethod": "POST",
61679	//   "id": "compute.instances.startWithEncryptionKey",
61680	//   "parameterOrder": [
61681	//     "project",
61682	//     "zone",
61683	//     "instance"
61684	//   ],
61685	//   "parameters": {
61686	//     "instance": {
61687	//       "description": "Name of the instance resource to start.",
61688	//       "location": "path",
61689	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61690	//       "required": true,
61691	//       "type": "string"
61692	//     },
61693	//     "project": {
61694	//       "description": "Project ID for this request.",
61695	//       "location": "path",
61696	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61697	//       "required": true,
61698	//       "type": "string"
61699	//     },
61700	//     "requestId": {
61701	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61702	//       "location": "query",
61703	//       "type": "string"
61704	//     },
61705	//     "zone": {
61706	//       "description": "The name of the zone for this request.",
61707	//       "location": "path",
61708	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61709	//       "required": true,
61710	//       "type": "string"
61711	//     }
61712	//   },
61713	//   "path": "{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey",
61714	//   "request": {
61715	//     "$ref": "InstancesStartWithEncryptionKeyRequest"
61716	//   },
61717	//   "response": {
61718	//     "$ref": "Operation"
61719	//   },
61720	//   "scopes": [
61721	//     "https://www.googleapis.com/auth/cloud-platform",
61722	//     "https://www.googleapis.com/auth/compute"
61723	//   ]
61724	// }
61725
61726}
61727
61728// method id "compute.instances.stop":
61729
61730type InstancesStopCall struct {
61731	s          *Service
61732	project    string
61733	zone       string
61734	instance   string
61735	urlParams_ gensupport.URLParams
61736	ctx_       context.Context
61737	header_    http.Header
61738}
61739
61740// Stop: Stops a running instance, shutting it down cleanly, and allows
61741// you to restart the instance at a later time. Stopped instances do not
61742// incur VM usage charges while they are stopped. However, resources
61743// that the VM is using, such as persistent disks and static IP
61744// addresses, will continue to be charged until they are deleted. For
61745// more information, see Stopping an instance.
61746// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/stop
61747func (r *InstancesService) Stop(project string, zone string, instance string) *InstancesStopCall {
61748	c := &InstancesStopCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61749	c.project = project
61750	c.zone = zone
61751	c.instance = instance
61752	return c
61753}
61754
61755// RequestId sets the optional parameter "requestId": An optional
61756// request ID to identify requests. Specify a unique request ID so that
61757// if you must retry your request, the server will know to ignore the
61758// request if it has already been completed.
61759//
61760// For example, consider a situation where you make an initial request
61761// and the request times out. If you make the request again with the
61762// same request ID, the server can check if original operation with the
61763// same request ID was received, and if so, will ignore the second
61764// request. This prevents clients from accidentally creating duplicate
61765// commitments.
61766//
61767// The request ID must be a valid UUID with the exception that zero UUID
61768// is not supported (00000000-0000-0000-0000-000000000000).
61769func (c *InstancesStopCall) RequestId(requestId string) *InstancesStopCall {
61770	c.urlParams_.Set("requestId", requestId)
61771	return c
61772}
61773
61774// Fields allows partial responses to be retrieved. See
61775// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61776// for more information.
61777func (c *InstancesStopCall) Fields(s ...googleapi.Field) *InstancesStopCall {
61778	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61779	return c
61780}
61781
61782// Context sets the context to be used in this call's Do method. Any
61783// pending HTTP request will be aborted if the provided context is
61784// canceled.
61785func (c *InstancesStopCall) Context(ctx context.Context) *InstancesStopCall {
61786	c.ctx_ = ctx
61787	return c
61788}
61789
61790// Header returns an http.Header that can be modified by the caller to
61791// add HTTP headers to the request.
61792func (c *InstancesStopCall) Header() http.Header {
61793	if c.header_ == nil {
61794		c.header_ = make(http.Header)
61795	}
61796	return c.header_
61797}
61798
61799func (c *InstancesStopCall) doRequest(alt string) (*http.Response, error) {
61800	reqHeaders := make(http.Header)
61801	for k, v := range c.header_ {
61802		reqHeaders[k] = v
61803	}
61804	reqHeaders.Set("User-Agent", c.s.userAgent())
61805	var body io.Reader = nil
61806	c.urlParams_.Set("alt", alt)
61807	c.urlParams_.Set("prettyPrint", "false")
61808	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/stop")
61809	urls += "?" + c.urlParams_.Encode()
61810	req, err := http.NewRequest("POST", urls, body)
61811	if err != nil {
61812		return nil, err
61813	}
61814	req.Header = reqHeaders
61815	googleapi.Expand(req.URL, map[string]string{
61816		"project":  c.project,
61817		"zone":     c.zone,
61818		"instance": c.instance,
61819	})
61820	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61821}
61822
61823// Do executes the "compute.instances.stop" call.
61824// Exactly one of *Operation or error will be non-nil. Any non-2xx
61825// status code is an error. Response headers are in either
61826// *Operation.ServerResponse.Header or (if a response was returned at
61827// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61828// to check whether the returned error was because
61829// http.StatusNotModified was returned.
61830func (c *InstancesStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61831	gensupport.SetOptions(c.urlParams_, opts...)
61832	res, err := c.doRequest("json")
61833	if res != nil && res.StatusCode == http.StatusNotModified {
61834		if res.Body != nil {
61835			res.Body.Close()
61836		}
61837		return nil, &googleapi.Error{
61838			Code:   res.StatusCode,
61839			Header: res.Header,
61840		}
61841	}
61842	if err != nil {
61843		return nil, err
61844	}
61845	defer googleapi.CloseBody(res)
61846	if err := googleapi.CheckResponse(res); err != nil {
61847		return nil, err
61848	}
61849	ret := &Operation{
61850		ServerResponse: googleapi.ServerResponse{
61851			Header:         res.Header,
61852			HTTPStatusCode: res.StatusCode,
61853		},
61854	}
61855	target := &ret
61856	if err := gensupport.DecodeResponse(target, res); err != nil {
61857		return nil, err
61858	}
61859	return ret, nil
61860	// {
61861	//   "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.",
61862	//   "httpMethod": "POST",
61863	//   "id": "compute.instances.stop",
61864	//   "parameterOrder": [
61865	//     "project",
61866	//     "zone",
61867	//     "instance"
61868	//   ],
61869	//   "parameters": {
61870	//     "instance": {
61871	//       "description": "Name of the instance resource to stop.",
61872	//       "location": "path",
61873	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61874	//       "required": true,
61875	//       "type": "string"
61876	//     },
61877	//     "project": {
61878	//       "description": "Project ID for this request.",
61879	//       "location": "path",
61880	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61881	//       "required": true,
61882	//       "type": "string"
61883	//     },
61884	//     "requestId": {
61885	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61886	//       "location": "query",
61887	//       "type": "string"
61888	//     },
61889	//     "zone": {
61890	//       "description": "The name of the zone for this request.",
61891	//       "location": "path",
61892	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61893	//       "required": true,
61894	//       "type": "string"
61895	//     }
61896	//   },
61897	//   "path": "{project}/zones/{zone}/instances/{instance}/stop",
61898	//   "response": {
61899	//     "$ref": "Operation"
61900	//   },
61901	//   "scopes": [
61902	//     "https://www.googleapis.com/auth/cloud-platform",
61903	//     "https://www.googleapis.com/auth/compute"
61904	//   ]
61905	// }
61906
61907}
61908
61909// method id "compute.instances.testIamPermissions":
61910
61911type InstancesTestIamPermissionsCall struct {
61912	s                      *Service
61913	project                string
61914	zone                   string
61915	resource               string
61916	testpermissionsrequest *TestPermissionsRequest
61917	urlParams_             gensupport.URLParams
61918	ctx_                   context.Context
61919	header_                http.Header
61920}
61921
61922// TestIamPermissions: Returns permissions that a caller has on the
61923// specified resource.
61924func (r *InstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstancesTestIamPermissionsCall {
61925	c := &InstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61926	c.project = project
61927	c.zone = zone
61928	c.resource = resource
61929	c.testpermissionsrequest = testpermissionsrequest
61930	return c
61931}
61932
61933// Fields allows partial responses to be retrieved. See
61934// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61935// for more information.
61936func (c *InstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstancesTestIamPermissionsCall {
61937	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61938	return c
61939}
61940
61941// Context sets the context to be used in this call's Do method. Any
61942// pending HTTP request will be aborted if the provided context is
61943// canceled.
61944func (c *InstancesTestIamPermissionsCall) Context(ctx context.Context) *InstancesTestIamPermissionsCall {
61945	c.ctx_ = ctx
61946	return c
61947}
61948
61949// Header returns an http.Header that can be modified by the caller to
61950// add HTTP headers to the request.
61951func (c *InstancesTestIamPermissionsCall) Header() http.Header {
61952	if c.header_ == nil {
61953		c.header_ = make(http.Header)
61954	}
61955	return c.header_
61956}
61957
61958func (c *InstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
61959	reqHeaders := make(http.Header)
61960	for k, v := range c.header_ {
61961		reqHeaders[k] = v
61962	}
61963	reqHeaders.Set("User-Agent", c.s.userAgent())
61964	var body io.Reader = nil
61965	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
61966	if err != nil {
61967		return nil, err
61968	}
61969	reqHeaders.Set("Content-Type", "application/json")
61970	c.urlParams_.Set("alt", alt)
61971	c.urlParams_.Set("prettyPrint", "false")
61972	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/testIamPermissions")
61973	urls += "?" + c.urlParams_.Encode()
61974	req, err := http.NewRequest("POST", urls, body)
61975	if err != nil {
61976		return nil, err
61977	}
61978	req.Header = reqHeaders
61979	googleapi.Expand(req.URL, map[string]string{
61980		"project":  c.project,
61981		"zone":     c.zone,
61982		"resource": c.resource,
61983	})
61984	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61985}
61986
61987// Do executes the "compute.instances.testIamPermissions" call.
61988// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
61989// non-2xx status code is an error. Response headers are in either
61990// *TestPermissionsResponse.ServerResponse.Header or (if a response was
61991// returned at all) in error.(*googleapi.Error).Header. Use
61992// googleapi.IsNotModified to check whether the returned error was
61993// because http.StatusNotModified was returned.
61994func (c *InstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
61995	gensupport.SetOptions(c.urlParams_, opts...)
61996	res, err := c.doRequest("json")
61997	if res != nil && res.StatusCode == http.StatusNotModified {
61998		if res.Body != nil {
61999			res.Body.Close()
62000		}
62001		return nil, &googleapi.Error{
62002			Code:   res.StatusCode,
62003			Header: res.Header,
62004		}
62005	}
62006	if err != nil {
62007		return nil, err
62008	}
62009	defer googleapi.CloseBody(res)
62010	if err := googleapi.CheckResponse(res); err != nil {
62011		return nil, err
62012	}
62013	ret := &TestPermissionsResponse{
62014		ServerResponse: googleapi.ServerResponse{
62015			Header:         res.Header,
62016			HTTPStatusCode: res.StatusCode,
62017		},
62018	}
62019	target := &ret
62020	if err := gensupport.DecodeResponse(target, res); err != nil {
62021		return nil, err
62022	}
62023	return ret, nil
62024	// {
62025	//   "description": "Returns permissions that a caller has on the specified resource.",
62026	//   "httpMethod": "POST",
62027	//   "id": "compute.instances.testIamPermissions",
62028	//   "parameterOrder": [
62029	//     "project",
62030	//     "zone",
62031	//     "resource"
62032	//   ],
62033	//   "parameters": {
62034	//     "project": {
62035	//       "description": "Project ID for this request.",
62036	//       "location": "path",
62037	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62038	//       "required": true,
62039	//       "type": "string"
62040	//     },
62041	//     "resource": {
62042	//       "description": "Name or id of the resource for this request.",
62043	//       "location": "path",
62044	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62045	//       "required": true,
62046	//       "type": "string"
62047	//     },
62048	//     "zone": {
62049	//       "description": "The name of the zone for this request.",
62050	//       "location": "path",
62051	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62052	//       "required": true,
62053	//       "type": "string"
62054	//     }
62055	//   },
62056	//   "path": "{project}/zones/{zone}/instances/{resource}/testIamPermissions",
62057	//   "request": {
62058	//     "$ref": "TestPermissionsRequest"
62059	//   },
62060	//   "response": {
62061	//     "$ref": "TestPermissionsResponse"
62062	//   },
62063	//   "scopes": [
62064	//     "https://www.googleapis.com/auth/cloud-platform",
62065	//     "https://www.googleapis.com/auth/compute",
62066	//     "https://www.googleapis.com/auth/compute.readonly"
62067	//   ]
62068	// }
62069
62070}
62071
62072// method id "compute.instances.updateAccessConfig":
62073
62074type InstancesUpdateAccessConfigCall struct {
62075	s            *Service
62076	project      string
62077	zone         string
62078	instance     string
62079	accessconfig *AccessConfig
62080	urlParams_   gensupport.URLParams
62081	ctx_         context.Context
62082	header_      http.Header
62083}
62084
62085// UpdateAccessConfig: Updates the specified access config from an
62086// instance's network interface with the data included in the request.
62087// This method supports PATCH semantics and uses the JSON merge patch
62088// format and processing rules.
62089func (r *InstancesService) UpdateAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesUpdateAccessConfigCall {
62090	c := &InstancesUpdateAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62091	c.project = project
62092	c.zone = zone
62093	c.instance = instance
62094	c.urlParams_.Set("networkInterface", networkInterface)
62095	c.accessconfig = accessconfig
62096	return c
62097}
62098
62099// RequestId sets the optional parameter "requestId": An optional
62100// request ID to identify requests. Specify a unique request ID so that
62101// if you must retry your request, the server will know to ignore the
62102// request if it has already been completed.
62103//
62104// For example, consider a situation where you make an initial request
62105// and the request times out. If you make the request again with the
62106// same request ID, the server can check if original operation with the
62107// same request ID was received, and if so, will ignore the second
62108// request. This prevents clients from accidentally creating duplicate
62109// commitments.
62110//
62111// The request ID must be a valid UUID with the exception that zero UUID
62112// is not supported (00000000-0000-0000-0000-000000000000).
62113func (c *InstancesUpdateAccessConfigCall) RequestId(requestId string) *InstancesUpdateAccessConfigCall {
62114	c.urlParams_.Set("requestId", requestId)
62115	return c
62116}
62117
62118// Fields allows partial responses to be retrieved. See
62119// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62120// for more information.
62121func (c *InstancesUpdateAccessConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateAccessConfigCall {
62122	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62123	return c
62124}
62125
62126// Context sets the context to be used in this call's Do method. Any
62127// pending HTTP request will be aborted if the provided context is
62128// canceled.
62129func (c *InstancesUpdateAccessConfigCall) Context(ctx context.Context) *InstancesUpdateAccessConfigCall {
62130	c.ctx_ = ctx
62131	return c
62132}
62133
62134// Header returns an http.Header that can be modified by the caller to
62135// add HTTP headers to the request.
62136func (c *InstancesUpdateAccessConfigCall) Header() http.Header {
62137	if c.header_ == nil {
62138		c.header_ = make(http.Header)
62139	}
62140	return c.header_
62141}
62142
62143func (c *InstancesUpdateAccessConfigCall) doRequest(alt string) (*http.Response, error) {
62144	reqHeaders := make(http.Header)
62145	for k, v := range c.header_ {
62146		reqHeaders[k] = v
62147	}
62148	reqHeaders.Set("User-Agent", c.s.userAgent())
62149	var body io.Reader = nil
62150	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
62151	if err != nil {
62152		return nil, err
62153	}
62154	reqHeaders.Set("Content-Type", "application/json")
62155	c.urlParams_.Set("alt", alt)
62156	c.urlParams_.Set("prettyPrint", "false")
62157	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateAccessConfig")
62158	urls += "?" + c.urlParams_.Encode()
62159	req, err := http.NewRequest("POST", urls, body)
62160	if err != nil {
62161		return nil, err
62162	}
62163	req.Header = reqHeaders
62164	googleapi.Expand(req.URL, map[string]string{
62165		"project":  c.project,
62166		"zone":     c.zone,
62167		"instance": c.instance,
62168	})
62169	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62170}
62171
62172// Do executes the "compute.instances.updateAccessConfig" call.
62173// Exactly one of *Operation or error will be non-nil. Any non-2xx
62174// status code is an error. Response headers are in either
62175// *Operation.ServerResponse.Header or (if a response was returned at
62176// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62177// to check whether the returned error was because
62178// http.StatusNotModified was returned.
62179func (c *InstancesUpdateAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62180	gensupport.SetOptions(c.urlParams_, opts...)
62181	res, err := c.doRequest("json")
62182	if res != nil && res.StatusCode == http.StatusNotModified {
62183		if res.Body != nil {
62184			res.Body.Close()
62185		}
62186		return nil, &googleapi.Error{
62187			Code:   res.StatusCode,
62188			Header: res.Header,
62189		}
62190	}
62191	if err != nil {
62192		return nil, err
62193	}
62194	defer googleapi.CloseBody(res)
62195	if err := googleapi.CheckResponse(res); err != nil {
62196		return nil, err
62197	}
62198	ret := &Operation{
62199		ServerResponse: googleapi.ServerResponse{
62200			Header:         res.Header,
62201			HTTPStatusCode: res.StatusCode,
62202		},
62203	}
62204	target := &ret
62205	if err := gensupport.DecodeResponse(target, res); err != nil {
62206		return nil, err
62207	}
62208	return ret, nil
62209	// {
62210	//   "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.",
62211	//   "httpMethod": "POST",
62212	//   "id": "compute.instances.updateAccessConfig",
62213	//   "parameterOrder": [
62214	//     "project",
62215	//     "zone",
62216	//     "instance",
62217	//     "networkInterface"
62218	//   ],
62219	//   "parameters": {
62220	//     "instance": {
62221	//       "description": "The instance name for this request.",
62222	//       "location": "path",
62223	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62224	//       "required": true,
62225	//       "type": "string"
62226	//     },
62227	//     "networkInterface": {
62228	//       "description": "The name of the network interface where the access config is attached.",
62229	//       "location": "query",
62230	//       "required": true,
62231	//       "type": "string"
62232	//     },
62233	//     "project": {
62234	//       "description": "Project ID for this request.",
62235	//       "location": "path",
62236	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62237	//       "required": true,
62238	//       "type": "string"
62239	//     },
62240	//     "requestId": {
62241	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62242	//       "location": "query",
62243	//       "type": "string"
62244	//     },
62245	//     "zone": {
62246	//       "description": "The name of the zone for this request.",
62247	//       "location": "path",
62248	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62249	//       "required": true,
62250	//       "type": "string"
62251	//     }
62252	//   },
62253	//   "path": "{project}/zones/{zone}/instances/{instance}/updateAccessConfig",
62254	//   "request": {
62255	//     "$ref": "AccessConfig"
62256	//   },
62257	//   "response": {
62258	//     "$ref": "Operation"
62259	//   },
62260	//   "scopes": [
62261	//     "https://www.googleapis.com/auth/cloud-platform",
62262	//     "https://www.googleapis.com/auth/compute"
62263	//   ]
62264	// }
62265
62266}
62267
62268// method id "compute.instances.updateNetworkInterface":
62269
62270type InstancesUpdateNetworkInterfaceCall struct {
62271	s                *Service
62272	project          string
62273	zone             string
62274	instance         string
62275	networkinterface *NetworkInterface
62276	urlParams_       gensupport.URLParams
62277	ctx_             context.Context
62278	header_          http.Header
62279}
62280
62281// UpdateNetworkInterface: Updates an instance's network interface. This
62282// method follows PATCH semantics.
62283func (r *InstancesService) UpdateNetworkInterface(project string, zone string, instance string, networkInterface string, networkinterface *NetworkInterface) *InstancesUpdateNetworkInterfaceCall {
62284	c := &InstancesUpdateNetworkInterfaceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62285	c.project = project
62286	c.zone = zone
62287	c.instance = instance
62288	c.urlParams_.Set("networkInterface", networkInterface)
62289	c.networkinterface = networkinterface
62290	return c
62291}
62292
62293// RequestId sets the optional parameter "requestId": An optional
62294// request ID to identify requests. Specify a unique request ID so that
62295// if you must retry your request, the server will know to ignore the
62296// request if it has already been completed.
62297//
62298// For example, consider a situation where you make an initial request
62299// and the request times out. If you make the request again with the
62300// same request ID, the server can check if original operation with the
62301// same request ID was received, and if so, will ignore the second
62302// request. This prevents clients from accidentally creating duplicate
62303// commitments.
62304//
62305// The request ID must be a valid UUID with the exception that zero UUID
62306// is not supported (00000000-0000-0000-0000-000000000000).
62307func (c *InstancesUpdateNetworkInterfaceCall) RequestId(requestId string) *InstancesUpdateNetworkInterfaceCall {
62308	c.urlParams_.Set("requestId", requestId)
62309	return c
62310}
62311
62312// Fields allows partial responses to be retrieved. See
62313// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62314// for more information.
62315func (c *InstancesUpdateNetworkInterfaceCall) Fields(s ...googleapi.Field) *InstancesUpdateNetworkInterfaceCall {
62316	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62317	return c
62318}
62319
62320// Context sets the context to be used in this call's Do method. Any
62321// pending HTTP request will be aborted if the provided context is
62322// canceled.
62323func (c *InstancesUpdateNetworkInterfaceCall) Context(ctx context.Context) *InstancesUpdateNetworkInterfaceCall {
62324	c.ctx_ = ctx
62325	return c
62326}
62327
62328// Header returns an http.Header that can be modified by the caller to
62329// add HTTP headers to the request.
62330func (c *InstancesUpdateNetworkInterfaceCall) Header() http.Header {
62331	if c.header_ == nil {
62332		c.header_ = make(http.Header)
62333	}
62334	return c.header_
62335}
62336
62337func (c *InstancesUpdateNetworkInterfaceCall) doRequest(alt string) (*http.Response, error) {
62338	reqHeaders := make(http.Header)
62339	for k, v := range c.header_ {
62340		reqHeaders[k] = v
62341	}
62342	reqHeaders.Set("User-Agent", c.s.userAgent())
62343	var body io.Reader = nil
62344	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkinterface)
62345	if err != nil {
62346		return nil, err
62347	}
62348	reqHeaders.Set("Content-Type", "application/json")
62349	c.urlParams_.Set("alt", alt)
62350	c.urlParams_.Set("prettyPrint", "false")
62351	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateNetworkInterface")
62352	urls += "?" + c.urlParams_.Encode()
62353	req, err := http.NewRequest("PATCH", urls, body)
62354	if err != nil {
62355		return nil, err
62356	}
62357	req.Header = reqHeaders
62358	googleapi.Expand(req.URL, map[string]string{
62359		"project":  c.project,
62360		"zone":     c.zone,
62361		"instance": c.instance,
62362	})
62363	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62364}
62365
62366// Do executes the "compute.instances.updateNetworkInterface" call.
62367// Exactly one of *Operation or error will be non-nil. Any non-2xx
62368// status code is an error. Response headers are in either
62369// *Operation.ServerResponse.Header or (if a response was returned at
62370// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62371// to check whether the returned error was because
62372// http.StatusNotModified was returned.
62373func (c *InstancesUpdateNetworkInterfaceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62374	gensupport.SetOptions(c.urlParams_, opts...)
62375	res, err := c.doRequest("json")
62376	if res != nil && res.StatusCode == http.StatusNotModified {
62377		if res.Body != nil {
62378			res.Body.Close()
62379		}
62380		return nil, &googleapi.Error{
62381			Code:   res.StatusCode,
62382			Header: res.Header,
62383		}
62384	}
62385	if err != nil {
62386		return nil, err
62387	}
62388	defer googleapi.CloseBody(res)
62389	if err := googleapi.CheckResponse(res); err != nil {
62390		return nil, err
62391	}
62392	ret := &Operation{
62393		ServerResponse: googleapi.ServerResponse{
62394			Header:         res.Header,
62395			HTTPStatusCode: res.StatusCode,
62396		},
62397	}
62398	target := &ret
62399	if err := gensupport.DecodeResponse(target, res); err != nil {
62400		return nil, err
62401	}
62402	return ret, nil
62403	// {
62404	//   "description": "Updates an instance's network interface. This method follows PATCH semantics.",
62405	//   "httpMethod": "PATCH",
62406	//   "id": "compute.instances.updateNetworkInterface",
62407	//   "parameterOrder": [
62408	//     "project",
62409	//     "zone",
62410	//     "instance",
62411	//     "networkInterface"
62412	//   ],
62413	//   "parameters": {
62414	//     "instance": {
62415	//       "description": "The instance name for this request.",
62416	//       "location": "path",
62417	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62418	//       "required": true,
62419	//       "type": "string"
62420	//     },
62421	//     "networkInterface": {
62422	//       "description": "The name of the network interface to update.",
62423	//       "location": "query",
62424	//       "required": true,
62425	//       "type": "string"
62426	//     },
62427	//     "project": {
62428	//       "description": "Project ID for this request.",
62429	//       "location": "path",
62430	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62431	//       "required": true,
62432	//       "type": "string"
62433	//     },
62434	//     "requestId": {
62435	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62436	//       "location": "query",
62437	//       "type": "string"
62438	//     },
62439	//     "zone": {
62440	//       "description": "The name of the zone for this request.",
62441	//       "location": "path",
62442	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62443	//       "required": true,
62444	//       "type": "string"
62445	//     }
62446	//   },
62447	//   "path": "{project}/zones/{zone}/instances/{instance}/updateNetworkInterface",
62448	//   "request": {
62449	//     "$ref": "NetworkInterface"
62450	//   },
62451	//   "response": {
62452	//     "$ref": "Operation"
62453	//   },
62454	//   "scopes": [
62455	//     "https://www.googleapis.com/auth/cloud-platform",
62456	//     "https://www.googleapis.com/auth/compute"
62457	//   ]
62458	// }
62459
62460}
62461
62462// method id "compute.instances.updateShieldedInstanceConfig":
62463
62464type InstancesUpdateShieldedInstanceConfigCall struct {
62465	s                      *Service
62466	project                string
62467	zone                   string
62468	instance               string
62469	shieldedinstanceconfig *ShieldedInstanceConfig
62470	urlParams_             gensupport.URLParams
62471	ctx_                   context.Context
62472	header_                http.Header
62473}
62474
62475// UpdateShieldedInstanceConfig: Updates the Shielded Instance config
62476// for an instance. You can only use this method on a stopped instance.
62477// This method supports PATCH semantics and uses the JSON merge patch
62478// format and processing rules.
62479func (r *InstancesService) UpdateShieldedInstanceConfig(project string, zone string, instance string, shieldedinstanceconfig *ShieldedInstanceConfig) *InstancesUpdateShieldedInstanceConfigCall {
62480	c := &InstancesUpdateShieldedInstanceConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62481	c.project = project
62482	c.zone = zone
62483	c.instance = instance
62484	c.shieldedinstanceconfig = shieldedinstanceconfig
62485	return c
62486}
62487
62488// RequestId sets the optional parameter "requestId": An optional
62489// request ID to identify requests. Specify a unique request ID so that
62490// if you must retry your request, the server will know to ignore the
62491// request if it has already been completed.
62492//
62493// For example, consider a situation where you make an initial request
62494// and the request times out. If you make the request again with the
62495// same request ID, the server can check if original operation with the
62496// same request ID was received, and if so, will ignore the second
62497// request. This prevents clients from accidentally creating duplicate
62498// commitments.
62499//
62500// The request ID must be a valid UUID with the exception that zero UUID
62501// is not supported (00000000-0000-0000-0000-000000000000).
62502func (c *InstancesUpdateShieldedInstanceConfigCall) RequestId(requestId string) *InstancesUpdateShieldedInstanceConfigCall {
62503	c.urlParams_.Set("requestId", requestId)
62504	return c
62505}
62506
62507// Fields allows partial responses to be retrieved. See
62508// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62509// for more information.
62510func (c *InstancesUpdateShieldedInstanceConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedInstanceConfigCall {
62511	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62512	return c
62513}
62514
62515// Context sets the context to be used in this call's Do method. Any
62516// pending HTTP request will be aborted if the provided context is
62517// canceled.
62518func (c *InstancesUpdateShieldedInstanceConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedInstanceConfigCall {
62519	c.ctx_ = ctx
62520	return c
62521}
62522
62523// Header returns an http.Header that can be modified by the caller to
62524// add HTTP headers to the request.
62525func (c *InstancesUpdateShieldedInstanceConfigCall) Header() http.Header {
62526	if c.header_ == nil {
62527		c.header_ = make(http.Header)
62528	}
62529	return c.header_
62530}
62531
62532func (c *InstancesUpdateShieldedInstanceConfigCall) doRequest(alt string) (*http.Response, error) {
62533	reqHeaders := make(http.Header)
62534	for k, v := range c.header_ {
62535		reqHeaders[k] = v
62536	}
62537	reqHeaders.Set("User-Agent", c.s.userAgent())
62538	var body io.Reader = nil
62539	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceconfig)
62540	if err != nil {
62541		return nil, err
62542	}
62543	reqHeaders.Set("Content-Type", "application/json")
62544	c.urlParams_.Set("alt", alt)
62545	c.urlParams_.Set("prettyPrint", "false")
62546	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig")
62547	urls += "?" + c.urlParams_.Encode()
62548	req, err := http.NewRequest("PATCH", urls, body)
62549	if err != nil {
62550		return nil, err
62551	}
62552	req.Header = reqHeaders
62553	googleapi.Expand(req.URL, map[string]string{
62554		"project":  c.project,
62555		"zone":     c.zone,
62556		"instance": c.instance,
62557	})
62558	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62559}
62560
62561// Do executes the "compute.instances.updateShieldedInstanceConfig" call.
62562// Exactly one of *Operation or error will be non-nil. Any non-2xx
62563// status code is an error. Response headers are in either
62564// *Operation.ServerResponse.Header or (if a response was returned at
62565// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62566// to check whether the returned error was because
62567// http.StatusNotModified was returned.
62568func (c *InstancesUpdateShieldedInstanceConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62569	gensupport.SetOptions(c.urlParams_, opts...)
62570	res, err := c.doRequest("json")
62571	if res != nil && res.StatusCode == http.StatusNotModified {
62572		if res.Body != nil {
62573			res.Body.Close()
62574		}
62575		return nil, &googleapi.Error{
62576			Code:   res.StatusCode,
62577			Header: res.Header,
62578		}
62579	}
62580	if err != nil {
62581		return nil, err
62582	}
62583	defer googleapi.CloseBody(res)
62584	if err := googleapi.CheckResponse(res); err != nil {
62585		return nil, err
62586	}
62587	ret := &Operation{
62588		ServerResponse: googleapi.ServerResponse{
62589			Header:         res.Header,
62590			HTTPStatusCode: res.StatusCode,
62591		},
62592	}
62593	target := &ret
62594	if err := gensupport.DecodeResponse(target, res); err != nil {
62595		return nil, err
62596	}
62597	return ret, nil
62598	// {
62599	//   "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.",
62600	//   "httpMethod": "PATCH",
62601	//   "id": "compute.instances.updateShieldedInstanceConfig",
62602	//   "parameterOrder": [
62603	//     "project",
62604	//     "zone",
62605	//     "instance"
62606	//   ],
62607	//   "parameters": {
62608	//     "instance": {
62609	//       "description": "Name or id of the instance scoping this request.",
62610	//       "location": "path",
62611	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62612	//       "required": true,
62613	//       "type": "string"
62614	//     },
62615	//     "project": {
62616	//       "description": "Project ID for this request.",
62617	//       "location": "path",
62618	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62619	//       "required": true,
62620	//       "type": "string"
62621	//     },
62622	//     "requestId": {
62623	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62624	//       "location": "query",
62625	//       "type": "string"
62626	//     },
62627	//     "zone": {
62628	//       "description": "The name of the zone for this request.",
62629	//       "location": "path",
62630	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62631	//       "required": true,
62632	//       "type": "string"
62633	//     }
62634	//   },
62635	//   "path": "{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig",
62636	//   "request": {
62637	//     "$ref": "ShieldedInstanceConfig"
62638	//   },
62639	//   "response": {
62640	//     "$ref": "Operation"
62641	//   },
62642	//   "scopes": [
62643	//     "https://www.googleapis.com/auth/cloud-platform",
62644	//     "https://www.googleapis.com/auth/compute"
62645	//   ]
62646	// }
62647
62648}
62649
62650// method id "compute.interconnectAttachments.aggregatedList":
62651
62652type InterconnectAttachmentsAggregatedListCall struct {
62653	s            *Service
62654	project      string
62655	urlParams_   gensupport.URLParams
62656	ifNoneMatch_ string
62657	ctx_         context.Context
62658	header_      http.Header
62659}
62660
62661// AggregatedList: Retrieves an aggregated list of interconnect
62662// attachments.
62663func (r *InterconnectAttachmentsService) AggregatedList(project string) *InterconnectAttachmentsAggregatedListCall {
62664	c := &InterconnectAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62665	c.project = project
62666	return c
62667}
62668
62669// Filter sets the optional parameter "filter": A filter expression that
62670// filters resources listed in the response. The expression must specify
62671// the field name, a comparison operator, and the value that you want to
62672// use for filtering. The value must be a string, a number, or a
62673// boolean. The comparison operator must be either =, !=, >, or <.
62674//
62675// For example, if you are filtering Compute Engine instances, you can
62676// exclude instances named example-instance by specifying name !=
62677// example-instance.
62678//
62679// You can also filter nested fields. For example, you could specify
62680// scheduling.automaticRestart = false to include instances only if they
62681// are not scheduled for automatic restarts. You can use filtering on
62682// nested fields to filter based on resource labels.
62683//
62684// To filter on multiple expressions, provide each separate expression
62685// within parentheses. For example, (scheduling.automaticRestart = true)
62686// (cpuPlatform = "Intel Skylake"). By default, each expression is an
62687// AND expression. However, you can include AND and OR expressions
62688// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
62689// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
62690// true).
62691func (c *InterconnectAttachmentsAggregatedListCall) Filter(filter string) *InterconnectAttachmentsAggregatedListCall {
62692	c.urlParams_.Set("filter", filter)
62693	return c
62694}
62695
62696// MaxResults sets the optional parameter "maxResults": The maximum
62697// number of results per page that should be returned. If the number of
62698// available results is larger than maxResults, Compute Engine returns a
62699// nextPageToken that can be used to get the next page of results in
62700// subsequent list requests. Acceptable values are 0 to 500, inclusive.
62701// (Default: 500)
62702func (c *InterconnectAttachmentsAggregatedListCall) MaxResults(maxResults int64) *InterconnectAttachmentsAggregatedListCall {
62703	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
62704	return c
62705}
62706
62707// OrderBy sets the optional parameter "orderBy": Sorts list results by
62708// a certain order. By default, results are returned in alphanumerical
62709// order based on the resource name.
62710//
62711// You can also sort results in descending order based on the creation
62712// timestamp using orderBy="creationTimestamp desc". This sorts results
62713// based on the creationTimestamp field in reverse chronological order
62714// (newest result first). Use this to sort resources like operations so
62715// that the newest operation is returned first.
62716//
62717// Currently, only sorting by name or creationTimestamp desc is
62718// supported.
62719func (c *InterconnectAttachmentsAggregatedListCall) OrderBy(orderBy string) *InterconnectAttachmentsAggregatedListCall {
62720	c.urlParams_.Set("orderBy", orderBy)
62721	return c
62722}
62723
62724// PageToken sets the optional parameter "pageToken": Specifies a page
62725// token to use. Set pageToken to the nextPageToken returned by a
62726// previous list request to get the next page of results.
62727func (c *InterconnectAttachmentsAggregatedListCall) PageToken(pageToken string) *InterconnectAttachmentsAggregatedListCall {
62728	c.urlParams_.Set("pageToken", pageToken)
62729	return c
62730}
62731
62732// Fields allows partial responses to be retrieved. See
62733// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62734// for more information.
62735func (c *InterconnectAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsAggregatedListCall {
62736	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62737	return c
62738}
62739
62740// IfNoneMatch sets the optional parameter which makes the operation
62741// fail if the object's ETag matches the given value. This is useful for
62742// getting updates only after the object has changed since the last
62743// request. Use googleapi.IsNotModified to check whether the response
62744// error from Do is the result of In-None-Match.
62745func (c *InterconnectAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsAggregatedListCall {
62746	c.ifNoneMatch_ = entityTag
62747	return c
62748}
62749
62750// Context sets the context to be used in this call's Do method. Any
62751// pending HTTP request will be aborted if the provided context is
62752// canceled.
62753func (c *InterconnectAttachmentsAggregatedListCall) Context(ctx context.Context) *InterconnectAttachmentsAggregatedListCall {
62754	c.ctx_ = ctx
62755	return c
62756}
62757
62758// Header returns an http.Header that can be modified by the caller to
62759// add HTTP headers to the request.
62760func (c *InterconnectAttachmentsAggregatedListCall) Header() http.Header {
62761	if c.header_ == nil {
62762		c.header_ = make(http.Header)
62763	}
62764	return c.header_
62765}
62766
62767func (c *InterconnectAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
62768	reqHeaders := make(http.Header)
62769	for k, v := range c.header_ {
62770		reqHeaders[k] = v
62771	}
62772	reqHeaders.Set("User-Agent", c.s.userAgent())
62773	if c.ifNoneMatch_ != "" {
62774		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62775	}
62776	var body io.Reader = nil
62777	c.urlParams_.Set("alt", alt)
62778	c.urlParams_.Set("prettyPrint", "false")
62779	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/interconnectAttachments")
62780	urls += "?" + c.urlParams_.Encode()
62781	req, err := http.NewRequest("GET", urls, body)
62782	if err != nil {
62783		return nil, err
62784	}
62785	req.Header = reqHeaders
62786	googleapi.Expand(req.URL, map[string]string{
62787		"project": c.project,
62788	})
62789	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62790}
62791
62792// Do executes the "compute.interconnectAttachments.aggregatedList" call.
62793// Exactly one of *InterconnectAttachmentAggregatedList or error will be
62794// non-nil. Any non-2xx status code is an error. Response headers are in
62795// either *InterconnectAttachmentAggregatedList.ServerResponse.Header or
62796// (if a response was returned at all) in
62797// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
62798// whether the returned error was because http.StatusNotModified was
62799// returned.
62800func (c *InterconnectAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentAggregatedList, error) {
62801	gensupport.SetOptions(c.urlParams_, opts...)
62802	res, err := c.doRequest("json")
62803	if res != nil && res.StatusCode == http.StatusNotModified {
62804		if res.Body != nil {
62805			res.Body.Close()
62806		}
62807		return nil, &googleapi.Error{
62808			Code:   res.StatusCode,
62809			Header: res.Header,
62810		}
62811	}
62812	if err != nil {
62813		return nil, err
62814	}
62815	defer googleapi.CloseBody(res)
62816	if err := googleapi.CheckResponse(res); err != nil {
62817		return nil, err
62818	}
62819	ret := &InterconnectAttachmentAggregatedList{
62820		ServerResponse: googleapi.ServerResponse{
62821			Header:         res.Header,
62822			HTTPStatusCode: res.StatusCode,
62823		},
62824	}
62825	target := &ret
62826	if err := gensupport.DecodeResponse(target, res); err != nil {
62827		return nil, err
62828	}
62829	return ret, nil
62830	// {
62831	//   "description": "Retrieves an aggregated list of interconnect attachments.",
62832	//   "httpMethod": "GET",
62833	//   "id": "compute.interconnectAttachments.aggregatedList",
62834	//   "parameterOrder": [
62835	//     "project"
62836	//   ],
62837	//   "parameters": {
62838	//     "filter": {
62839	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
62840	//       "location": "query",
62841	//       "type": "string"
62842	//     },
62843	//     "maxResults": {
62844	//       "default": "500",
62845	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
62846	//       "format": "uint32",
62847	//       "location": "query",
62848	//       "minimum": "0",
62849	//       "type": "integer"
62850	//     },
62851	//     "orderBy": {
62852	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
62853	//       "location": "query",
62854	//       "type": "string"
62855	//     },
62856	//     "pageToken": {
62857	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
62858	//       "location": "query",
62859	//       "type": "string"
62860	//     },
62861	//     "project": {
62862	//       "description": "Project ID for this request.",
62863	//       "location": "path",
62864	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62865	//       "required": true,
62866	//       "type": "string"
62867	//     }
62868	//   },
62869	//   "path": "{project}/aggregated/interconnectAttachments",
62870	//   "response": {
62871	//     "$ref": "InterconnectAttachmentAggregatedList"
62872	//   },
62873	//   "scopes": [
62874	//     "https://www.googleapis.com/auth/cloud-platform",
62875	//     "https://www.googleapis.com/auth/compute",
62876	//     "https://www.googleapis.com/auth/compute.readonly"
62877	//   ]
62878	// }
62879
62880}
62881
62882// Pages invokes f for each page of results.
62883// A non-nil error returned from f will halt the iteration.
62884// The provided context supersedes any context provided to the Context method.
62885func (c *InterconnectAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentAggregatedList) error) error {
62886	c.ctx_ = ctx
62887	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
62888	for {
62889		x, err := c.Do()
62890		if err != nil {
62891			return err
62892		}
62893		if err := f(x); err != nil {
62894			return err
62895		}
62896		if x.NextPageToken == "" {
62897			return nil
62898		}
62899		c.PageToken(x.NextPageToken)
62900	}
62901}
62902
62903// method id "compute.interconnectAttachments.delete":
62904
62905type InterconnectAttachmentsDeleteCall struct {
62906	s                      *Service
62907	project                string
62908	region                 string
62909	interconnectAttachment string
62910	urlParams_             gensupport.URLParams
62911	ctx_                   context.Context
62912	header_                http.Header
62913}
62914
62915// Delete: Deletes the specified interconnect attachment.
62916func (r *InterconnectAttachmentsService) Delete(project string, region string, interconnectAttachment string) *InterconnectAttachmentsDeleteCall {
62917	c := &InterconnectAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62918	c.project = project
62919	c.region = region
62920	c.interconnectAttachment = interconnectAttachment
62921	return c
62922}
62923
62924// RequestId sets the optional parameter "requestId": An optional
62925// request ID to identify requests. Specify a unique request ID so that
62926// if you must retry your request, the server will know to ignore the
62927// request if it has already been completed.
62928//
62929// For example, consider a situation where you make an initial request
62930// and the request times out. If you make the request again with the
62931// same request ID, the server can check if original operation with the
62932// same request ID was received, and if so, will ignore the second
62933// request. This prevents clients from accidentally creating duplicate
62934// commitments.
62935//
62936// The request ID must be a valid UUID with the exception that zero UUID
62937// is not supported (00000000-0000-0000-0000-000000000000).
62938func (c *InterconnectAttachmentsDeleteCall) RequestId(requestId string) *InterconnectAttachmentsDeleteCall {
62939	c.urlParams_.Set("requestId", requestId)
62940	return c
62941}
62942
62943// Fields allows partial responses to be retrieved. See
62944// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62945// for more information.
62946func (c *InterconnectAttachmentsDeleteCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsDeleteCall {
62947	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62948	return c
62949}
62950
62951// Context sets the context to be used in this call's Do method. Any
62952// pending HTTP request will be aborted if the provided context is
62953// canceled.
62954func (c *InterconnectAttachmentsDeleteCall) Context(ctx context.Context) *InterconnectAttachmentsDeleteCall {
62955	c.ctx_ = ctx
62956	return c
62957}
62958
62959// Header returns an http.Header that can be modified by the caller to
62960// add HTTP headers to the request.
62961func (c *InterconnectAttachmentsDeleteCall) Header() http.Header {
62962	if c.header_ == nil {
62963		c.header_ = make(http.Header)
62964	}
62965	return c.header_
62966}
62967
62968func (c *InterconnectAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) {
62969	reqHeaders := make(http.Header)
62970	for k, v := range c.header_ {
62971		reqHeaders[k] = v
62972	}
62973	reqHeaders.Set("User-Agent", c.s.userAgent())
62974	var body io.Reader = nil
62975	c.urlParams_.Set("alt", alt)
62976	c.urlParams_.Set("prettyPrint", "false")
62977	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
62978	urls += "?" + c.urlParams_.Encode()
62979	req, err := http.NewRequest("DELETE", urls, body)
62980	if err != nil {
62981		return nil, err
62982	}
62983	req.Header = reqHeaders
62984	googleapi.Expand(req.URL, map[string]string{
62985		"project":                c.project,
62986		"region":                 c.region,
62987		"interconnectAttachment": c.interconnectAttachment,
62988	})
62989	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62990}
62991
62992// Do executes the "compute.interconnectAttachments.delete" call.
62993// Exactly one of *Operation or error will be non-nil. Any non-2xx
62994// status code is an error. Response headers are in either
62995// *Operation.ServerResponse.Header or (if a response was returned at
62996// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62997// to check whether the returned error was because
62998// http.StatusNotModified was returned.
62999func (c *InterconnectAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63000	gensupport.SetOptions(c.urlParams_, opts...)
63001	res, err := c.doRequest("json")
63002	if res != nil && res.StatusCode == http.StatusNotModified {
63003		if res.Body != nil {
63004			res.Body.Close()
63005		}
63006		return nil, &googleapi.Error{
63007			Code:   res.StatusCode,
63008			Header: res.Header,
63009		}
63010	}
63011	if err != nil {
63012		return nil, err
63013	}
63014	defer googleapi.CloseBody(res)
63015	if err := googleapi.CheckResponse(res); err != nil {
63016		return nil, err
63017	}
63018	ret := &Operation{
63019		ServerResponse: googleapi.ServerResponse{
63020			Header:         res.Header,
63021			HTTPStatusCode: res.StatusCode,
63022		},
63023	}
63024	target := &ret
63025	if err := gensupport.DecodeResponse(target, res); err != nil {
63026		return nil, err
63027	}
63028	return ret, nil
63029	// {
63030	//   "description": "Deletes the specified interconnect attachment.",
63031	//   "httpMethod": "DELETE",
63032	//   "id": "compute.interconnectAttachments.delete",
63033	//   "parameterOrder": [
63034	//     "project",
63035	//     "region",
63036	//     "interconnectAttachment"
63037	//   ],
63038	//   "parameters": {
63039	//     "interconnectAttachment": {
63040	//       "description": "Name of the interconnect attachment to delete.",
63041	//       "location": "path",
63042	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63043	//       "required": true,
63044	//       "type": "string"
63045	//     },
63046	//     "project": {
63047	//       "description": "Project ID for this request.",
63048	//       "location": "path",
63049	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63050	//       "required": true,
63051	//       "type": "string"
63052	//     },
63053	//     "region": {
63054	//       "description": "Name of the region for this request.",
63055	//       "location": "path",
63056	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
63057	//       "required": true,
63058	//       "type": "string"
63059	//     },
63060	//     "requestId": {
63061	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63062	//       "location": "query",
63063	//       "type": "string"
63064	//     }
63065	//   },
63066	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
63067	//   "response": {
63068	//     "$ref": "Operation"
63069	//   },
63070	//   "scopes": [
63071	//     "https://www.googleapis.com/auth/cloud-platform",
63072	//     "https://www.googleapis.com/auth/compute"
63073	//   ]
63074	// }
63075
63076}
63077
63078// method id "compute.interconnectAttachments.get":
63079
63080type InterconnectAttachmentsGetCall struct {
63081	s                      *Service
63082	project                string
63083	region                 string
63084	interconnectAttachment string
63085	urlParams_             gensupport.URLParams
63086	ifNoneMatch_           string
63087	ctx_                   context.Context
63088	header_                http.Header
63089}
63090
63091// Get: Returns the specified interconnect attachment.
63092func (r *InterconnectAttachmentsService) Get(project string, region string, interconnectAttachment string) *InterconnectAttachmentsGetCall {
63093	c := &InterconnectAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63094	c.project = project
63095	c.region = region
63096	c.interconnectAttachment = interconnectAttachment
63097	return c
63098}
63099
63100// Fields allows partial responses to be retrieved. See
63101// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63102// for more information.
63103func (c *InterconnectAttachmentsGetCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsGetCall {
63104	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63105	return c
63106}
63107
63108// IfNoneMatch sets the optional parameter which makes the operation
63109// fail if the object's ETag matches the given value. This is useful for
63110// getting updates only after the object has changed since the last
63111// request. Use googleapi.IsNotModified to check whether the response
63112// error from Do is the result of In-None-Match.
63113func (c *InterconnectAttachmentsGetCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsGetCall {
63114	c.ifNoneMatch_ = entityTag
63115	return c
63116}
63117
63118// Context sets the context to be used in this call's Do method. Any
63119// pending HTTP request will be aborted if the provided context is
63120// canceled.
63121func (c *InterconnectAttachmentsGetCall) Context(ctx context.Context) *InterconnectAttachmentsGetCall {
63122	c.ctx_ = ctx
63123	return c
63124}
63125
63126// Header returns an http.Header that can be modified by the caller to
63127// add HTTP headers to the request.
63128func (c *InterconnectAttachmentsGetCall) Header() http.Header {
63129	if c.header_ == nil {
63130		c.header_ = make(http.Header)
63131	}
63132	return c.header_
63133}
63134
63135func (c *InterconnectAttachmentsGetCall) doRequest(alt string) (*http.Response, error) {
63136	reqHeaders := make(http.Header)
63137	for k, v := range c.header_ {
63138		reqHeaders[k] = v
63139	}
63140	reqHeaders.Set("User-Agent", c.s.userAgent())
63141	if c.ifNoneMatch_ != "" {
63142		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63143	}
63144	var body io.Reader = nil
63145	c.urlParams_.Set("alt", alt)
63146	c.urlParams_.Set("prettyPrint", "false")
63147	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
63148	urls += "?" + c.urlParams_.Encode()
63149	req, err := http.NewRequest("GET", urls, body)
63150	if err != nil {
63151		return nil, err
63152	}
63153	req.Header = reqHeaders
63154	googleapi.Expand(req.URL, map[string]string{
63155		"project":                c.project,
63156		"region":                 c.region,
63157		"interconnectAttachment": c.interconnectAttachment,
63158	})
63159	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63160}
63161
63162// Do executes the "compute.interconnectAttachments.get" call.
63163// Exactly one of *InterconnectAttachment or error will be non-nil. Any
63164// non-2xx status code is an error. Response headers are in either
63165// *InterconnectAttachment.ServerResponse.Header or (if a response was
63166// returned at all) in error.(*googleapi.Error).Header. Use
63167// googleapi.IsNotModified to check whether the returned error was
63168// because http.StatusNotModified was returned.
63169func (c *InterconnectAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachment, error) {
63170	gensupport.SetOptions(c.urlParams_, opts...)
63171	res, err := c.doRequest("json")
63172	if res != nil && res.StatusCode == http.StatusNotModified {
63173		if res.Body != nil {
63174			res.Body.Close()
63175		}
63176		return nil, &googleapi.Error{
63177			Code:   res.StatusCode,
63178			Header: res.Header,
63179		}
63180	}
63181	if err != nil {
63182		return nil, err
63183	}
63184	defer googleapi.CloseBody(res)
63185	if err := googleapi.CheckResponse(res); err != nil {
63186		return nil, err
63187	}
63188	ret := &InterconnectAttachment{
63189		ServerResponse: googleapi.ServerResponse{
63190			Header:         res.Header,
63191			HTTPStatusCode: res.StatusCode,
63192		},
63193	}
63194	target := &ret
63195	if err := gensupport.DecodeResponse(target, res); err != nil {
63196		return nil, err
63197	}
63198	return ret, nil
63199	// {
63200	//   "description": "Returns the specified interconnect attachment.",
63201	//   "httpMethod": "GET",
63202	//   "id": "compute.interconnectAttachments.get",
63203	//   "parameterOrder": [
63204	//     "project",
63205	//     "region",
63206	//     "interconnectAttachment"
63207	//   ],
63208	//   "parameters": {
63209	//     "interconnectAttachment": {
63210	//       "description": "Name of the interconnect attachment to return.",
63211	//       "location": "path",
63212	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63213	//       "required": true,
63214	//       "type": "string"
63215	//     },
63216	//     "project": {
63217	//       "description": "Project ID for this request.",
63218	//       "location": "path",
63219	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63220	//       "required": true,
63221	//       "type": "string"
63222	//     },
63223	//     "region": {
63224	//       "description": "Name of the region for this request.",
63225	//       "location": "path",
63226	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
63227	//       "required": true,
63228	//       "type": "string"
63229	//     }
63230	//   },
63231	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
63232	//   "response": {
63233	//     "$ref": "InterconnectAttachment"
63234	//   },
63235	//   "scopes": [
63236	//     "https://www.googleapis.com/auth/cloud-platform",
63237	//     "https://www.googleapis.com/auth/compute",
63238	//     "https://www.googleapis.com/auth/compute.readonly"
63239	//   ]
63240	// }
63241
63242}
63243
63244// method id "compute.interconnectAttachments.insert":
63245
63246type InterconnectAttachmentsInsertCall struct {
63247	s                      *Service
63248	project                string
63249	region                 string
63250	interconnectattachment *InterconnectAttachment
63251	urlParams_             gensupport.URLParams
63252	ctx_                   context.Context
63253	header_                http.Header
63254}
63255
63256// Insert: Creates an InterconnectAttachment in the specified project
63257// using the data included in the request.
63258func (r *InterconnectAttachmentsService) Insert(project string, region string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsInsertCall {
63259	c := &InterconnectAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63260	c.project = project
63261	c.region = region
63262	c.interconnectattachment = interconnectattachment
63263	return c
63264}
63265
63266// RequestId sets the optional parameter "requestId": An optional
63267// request ID to identify requests. Specify a unique request ID so that
63268// if you must retry your request, the server will know to ignore the
63269// request if it has already been completed.
63270//
63271// For example, consider a situation where you make an initial request
63272// and the request times out. If you make the request again with the
63273// same request ID, the server can check if original operation with the
63274// same request ID was received, and if so, will ignore the second
63275// request. This prevents clients from accidentally creating duplicate
63276// commitments.
63277//
63278// The request ID must be a valid UUID with the exception that zero UUID
63279// is not supported (00000000-0000-0000-0000-000000000000).
63280func (c *InterconnectAttachmentsInsertCall) RequestId(requestId string) *InterconnectAttachmentsInsertCall {
63281	c.urlParams_.Set("requestId", requestId)
63282	return c
63283}
63284
63285// Fields allows partial responses to be retrieved. See
63286// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63287// for more information.
63288func (c *InterconnectAttachmentsInsertCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsInsertCall {
63289	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63290	return c
63291}
63292
63293// Context sets the context to be used in this call's Do method. Any
63294// pending HTTP request will be aborted if the provided context is
63295// canceled.
63296func (c *InterconnectAttachmentsInsertCall) Context(ctx context.Context) *InterconnectAttachmentsInsertCall {
63297	c.ctx_ = ctx
63298	return c
63299}
63300
63301// Header returns an http.Header that can be modified by the caller to
63302// add HTTP headers to the request.
63303func (c *InterconnectAttachmentsInsertCall) Header() http.Header {
63304	if c.header_ == nil {
63305		c.header_ = make(http.Header)
63306	}
63307	return c.header_
63308}
63309
63310func (c *InterconnectAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) {
63311	reqHeaders := make(http.Header)
63312	for k, v := range c.header_ {
63313		reqHeaders[k] = v
63314	}
63315	reqHeaders.Set("User-Agent", c.s.userAgent())
63316	var body io.Reader = nil
63317	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
63318	if err != nil {
63319		return nil, err
63320	}
63321	reqHeaders.Set("Content-Type", "application/json")
63322	c.urlParams_.Set("alt", alt)
63323	c.urlParams_.Set("prettyPrint", "false")
63324	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments")
63325	urls += "?" + c.urlParams_.Encode()
63326	req, err := http.NewRequest("POST", urls, body)
63327	if err != nil {
63328		return nil, err
63329	}
63330	req.Header = reqHeaders
63331	googleapi.Expand(req.URL, map[string]string{
63332		"project": c.project,
63333		"region":  c.region,
63334	})
63335	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63336}
63337
63338// Do executes the "compute.interconnectAttachments.insert" call.
63339// Exactly one of *Operation or error will be non-nil. Any non-2xx
63340// status code is an error. Response headers are in either
63341// *Operation.ServerResponse.Header or (if a response was returned at
63342// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63343// to check whether the returned error was because
63344// http.StatusNotModified was returned.
63345func (c *InterconnectAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63346	gensupport.SetOptions(c.urlParams_, opts...)
63347	res, err := c.doRequest("json")
63348	if res != nil && res.StatusCode == http.StatusNotModified {
63349		if res.Body != nil {
63350			res.Body.Close()
63351		}
63352		return nil, &googleapi.Error{
63353			Code:   res.StatusCode,
63354			Header: res.Header,
63355		}
63356	}
63357	if err != nil {
63358		return nil, err
63359	}
63360	defer googleapi.CloseBody(res)
63361	if err := googleapi.CheckResponse(res); err != nil {
63362		return nil, err
63363	}
63364	ret := &Operation{
63365		ServerResponse: googleapi.ServerResponse{
63366			Header:         res.Header,
63367			HTTPStatusCode: res.StatusCode,
63368		},
63369	}
63370	target := &ret
63371	if err := gensupport.DecodeResponse(target, res); err != nil {
63372		return nil, err
63373	}
63374	return ret, nil
63375	// {
63376	//   "description": "Creates an InterconnectAttachment in the specified project using the data included in the request.",
63377	//   "httpMethod": "POST",
63378	//   "id": "compute.interconnectAttachments.insert",
63379	//   "parameterOrder": [
63380	//     "project",
63381	//     "region"
63382	//   ],
63383	//   "parameters": {
63384	//     "project": {
63385	//       "description": "Project ID for this request.",
63386	//       "location": "path",
63387	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63388	//       "required": true,
63389	//       "type": "string"
63390	//     },
63391	//     "region": {
63392	//       "description": "Name of the region for this request.",
63393	//       "location": "path",
63394	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
63395	//       "required": true,
63396	//       "type": "string"
63397	//     },
63398	//     "requestId": {
63399	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63400	//       "location": "query",
63401	//       "type": "string"
63402	//     }
63403	//   },
63404	//   "path": "{project}/regions/{region}/interconnectAttachments",
63405	//   "request": {
63406	//     "$ref": "InterconnectAttachment"
63407	//   },
63408	//   "response": {
63409	//     "$ref": "Operation"
63410	//   },
63411	//   "scopes": [
63412	//     "https://www.googleapis.com/auth/cloud-platform",
63413	//     "https://www.googleapis.com/auth/compute"
63414	//   ]
63415	// }
63416
63417}
63418
63419// method id "compute.interconnectAttachments.list":
63420
63421type InterconnectAttachmentsListCall struct {
63422	s            *Service
63423	project      string
63424	region       string
63425	urlParams_   gensupport.URLParams
63426	ifNoneMatch_ string
63427	ctx_         context.Context
63428	header_      http.Header
63429}
63430
63431// List: Retrieves the list of interconnect attachments contained within
63432// the specified region.
63433func (r *InterconnectAttachmentsService) List(project string, region string) *InterconnectAttachmentsListCall {
63434	c := &InterconnectAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63435	c.project = project
63436	c.region = region
63437	return c
63438}
63439
63440// Filter sets the optional parameter "filter": A filter expression that
63441// filters resources listed in the response. The expression must specify
63442// the field name, a comparison operator, and the value that you want to
63443// use for filtering. The value must be a string, a number, or a
63444// boolean. The comparison operator must be either =, !=, >, or <.
63445//
63446// For example, if you are filtering Compute Engine instances, you can
63447// exclude instances named example-instance by specifying name !=
63448// example-instance.
63449//
63450// You can also filter nested fields. For example, you could specify
63451// scheduling.automaticRestart = false to include instances only if they
63452// are not scheduled for automatic restarts. You can use filtering on
63453// nested fields to filter based on resource labels.
63454//
63455// To filter on multiple expressions, provide each separate expression
63456// within parentheses. For example, (scheduling.automaticRestart = true)
63457// (cpuPlatform = "Intel Skylake"). By default, each expression is an
63458// AND expression. However, you can include AND and OR expressions
63459// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
63460// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
63461// true).
63462func (c *InterconnectAttachmentsListCall) Filter(filter string) *InterconnectAttachmentsListCall {
63463	c.urlParams_.Set("filter", filter)
63464	return c
63465}
63466
63467// MaxResults sets the optional parameter "maxResults": The maximum
63468// number of results per page that should be returned. If the number of
63469// available results is larger than maxResults, Compute Engine returns a
63470// nextPageToken that can be used to get the next page of results in
63471// subsequent list requests. Acceptable values are 0 to 500, inclusive.
63472// (Default: 500)
63473func (c *InterconnectAttachmentsListCall) MaxResults(maxResults int64) *InterconnectAttachmentsListCall {
63474	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
63475	return c
63476}
63477
63478// OrderBy sets the optional parameter "orderBy": Sorts list results by
63479// a certain order. By default, results are returned in alphanumerical
63480// order based on the resource name.
63481//
63482// You can also sort results in descending order based on the creation
63483// timestamp using orderBy="creationTimestamp desc". This sorts results
63484// based on the creationTimestamp field in reverse chronological order
63485// (newest result first). Use this to sort resources like operations so
63486// that the newest operation is returned first.
63487//
63488// Currently, only sorting by name or creationTimestamp desc is
63489// supported.
63490func (c *InterconnectAttachmentsListCall) OrderBy(orderBy string) *InterconnectAttachmentsListCall {
63491	c.urlParams_.Set("orderBy", orderBy)
63492	return c
63493}
63494
63495// PageToken sets the optional parameter "pageToken": Specifies a page
63496// token to use. Set pageToken to the nextPageToken returned by a
63497// previous list request to get the next page of results.
63498func (c *InterconnectAttachmentsListCall) PageToken(pageToken string) *InterconnectAttachmentsListCall {
63499	c.urlParams_.Set("pageToken", pageToken)
63500	return c
63501}
63502
63503// Fields allows partial responses to be retrieved. See
63504// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63505// for more information.
63506func (c *InterconnectAttachmentsListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsListCall {
63507	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63508	return c
63509}
63510
63511// IfNoneMatch sets the optional parameter which makes the operation
63512// fail if the object's ETag matches the given value. This is useful for
63513// getting updates only after the object has changed since the last
63514// request. Use googleapi.IsNotModified to check whether the response
63515// error from Do is the result of In-None-Match.
63516func (c *InterconnectAttachmentsListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsListCall {
63517	c.ifNoneMatch_ = entityTag
63518	return c
63519}
63520
63521// Context sets the context to be used in this call's Do method. Any
63522// pending HTTP request will be aborted if the provided context is
63523// canceled.
63524func (c *InterconnectAttachmentsListCall) Context(ctx context.Context) *InterconnectAttachmentsListCall {
63525	c.ctx_ = ctx
63526	return c
63527}
63528
63529// Header returns an http.Header that can be modified by the caller to
63530// add HTTP headers to the request.
63531func (c *InterconnectAttachmentsListCall) Header() http.Header {
63532	if c.header_ == nil {
63533		c.header_ = make(http.Header)
63534	}
63535	return c.header_
63536}
63537
63538func (c *InterconnectAttachmentsListCall) doRequest(alt string) (*http.Response, error) {
63539	reqHeaders := make(http.Header)
63540	for k, v := range c.header_ {
63541		reqHeaders[k] = v
63542	}
63543	reqHeaders.Set("User-Agent", c.s.userAgent())
63544	if c.ifNoneMatch_ != "" {
63545		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63546	}
63547	var body io.Reader = nil
63548	c.urlParams_.Set("alt", alt)
63549	c.urlParams_.Set("prettyPrint", "false")
63550	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments")
63551	urls += "?" + c.urlParams_.Encode()
63552	req, err := http.NewRequest("GET", urls, body)
63553	if err != nil {
63554		return nil, err
63555	}
63556	req.Header = reqHeaders
63557	googleapi.Expand(req.URL, map[string]string{
63558		"project": c.project,
63559		"region":  c.region,
63560	})
63561	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63562}
63563
63564// Do executes the "compute.interconnectAttachments.list" call.
63565// Exactly one of *InterconnectAttachmentList or error will be non-nil.
63566// Any non-2xx status code is an error. Response headers are in either
63567// *InterconnectAttachmentList.ServerResponse.Header or (if a response
63568// was returned at all) in error.(*googleapi.Error).Header. Use
63569// googleapi.IsNotModified to check whether the returned error was
63570// because http.StatusNotModified was returned.
63571func (c *InterconnectAttachmentsListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentList, error) {
63572	gensupport.SetOptions(c.urlParams_, opts...)
63573	res, err := c.doRequest("json")
63574	if res != nil && res.StatusCode == http.StatusNotModified {
63575		if res.Body != nil {
63576			res.Body.Close()
63577		}
63578		return nil, &googleapi.Error{
63579			Code:   res.StatusCode,
63580			Header: res.Header,
63581		}
63582	}
63583	if err != nil {
63584		return nil, err
63585	}
63586	defer googleapi.CloseBody(res)
63587	if err := googleapi.CheckResponse(res); err != nil {
63588		return nil, err
63589	}
63590	ret := &InterconnectAttachmentList{
63591		ServerResponse: googleapi.ServerResponse{
63592			Header:         res.Header,
63593			HTTPStatusCode: res.StatusCode,
63594		},
63595	}
63596	target := &ret
63597	if err := gensupport.DecodeResponse(target, res); err != nil {
63598		return nil, err
63599	}
63600	return ret, nil
63601	// {
63602	//   "description": "Retrieves the list of interconnect attachments contained within the specified region.",
63603	//   "httpMethod": "GET",
63604	//   "id": "compute.interconnectAttachments.list",
63605	//   "parameterOrder": [
63606	//     "project",
63607	//     "region"
63608	//   ],
63609	//   "parameters": {
63610	//     "filter": {
63611	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
63612	//       "location": "query",
63613	//       "type": "string"
63614	//     },
63615	//     "maxResults": {
63616	//       "default": "500",
63617	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
63618	//       "format": "uint32",
63619	//       "location": "query",
63620	//       "minimum": "0",
63621	//       "type": "integer"
63622	//     },
63623	//     "orderBy": {
63624	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
63625	//       "location": "query",
63626	//       "type": "string"
63627	//     },
63628	//     "pageToken": {
63629	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
63630	//       "location": "query",
63631	//       "type": "string"
63632	//     },
63633	//     "project": {
63634	//       "description": "Project ID for this request.",
63635	//       "location": "path",
63636	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63637	//       "required": true,
63638	//       "type": "string"
63639	//     },
63640	//     "region": {
63641	//       "description": "Name of the region for this request.",
63642	//       "location": "path",
63643	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
63644	//       "required": true,
63645	//       "type": "string"
63646	//     }
63647	//   },
63648	//   "path": "{project}/regions/{region}/interconnectAttachments",
63649	//   "response": {
63650	//     "$ref": "InterconnectAttachmentList"
63651	//   },
63652	//   "scopes": [
63653	//     "https://www.googleapis.com/auth/cloud-platform",
63654	//     "https://www.googleapis.com/auth/compute",
63655	//     "https://www.googleapis.com/auth/compute.readonly"
63656	//   ]
63657	// }
63658
63659}
63660
63661// Pages invokes f for each page of results.
63662// A non-nil error returned from f will halt the iteration.
63663// The provided context supersedes any context provided to the Context method.
63664func (c *InterconnectAttachmentsListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentList) error) error {
63665	c.ctx_ = ctx
63666	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
63667	for {
63668		x, err := c.Do()
63669		if err != nil {
63670			return err
63671		}
63672		if err := f(x); err != nil {
63673			return err
63674		}
63675		if x.NextPageToken == "" {
63676			return nil
63677		}
63678		c.PageToken(x.NextPageToken)
63679	}
63680}
63681
63682// method id "compute.interconnectAttachments.patch":
63683
63684type InterconnectAttachmentsPatchCall struct {
63685	s                      *Service
63686	project                string
63687	region                 string
63688	interconnectAttachment string
63689	interconnectattachment *InterconnectAttachment
63690	urlParams_             gensupport.URLParams
63691	ctx_                   context.Context
63692	header_                http.Header
63693}
63694
63695// Patch: Updates the specified interconnect attachment with the data
63696// included in the request. This method supports PATCH semantics and
63697// uses the JSON merge patch format and processing rules.
63698func (r *InterconnectAttachmentsService) Patch(project string, region string, interconnectAttachment string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsPatchCall {
63699	c := &InterconnectAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63700	c.project = project
63701	c.region = region
63702	c.interconnectAttachment = interconnectAttachment
63703	c.interconnectattachment = interconnectattachment
63704	return c
63705}
63706
63707// RequestId sets the optional parameter "requestId": An optional
63708// request ID to identify requests. Specify a unique request ID so that
63709// if you must retry your request, the server will know to ignore the
63710// request if it has already been completed.
63711//
63712// For example, consider a situation where you make an initial request
63713// and the request times out. If you make the request again with the
63714// same request ID, the server can check if original operation with the
63715// same request ID was received, and if so, will ignore the second
63716// request. This prevents clients from accidentally creating duplicate
63717// commitments.
63718//
63719// The request ID must be a valid UUID with the exception that zero UUID
63720// is not supported (00000000-0000-0000-0000-000000000000).
63721func (c *InterconnectAttachmentsPatchCall) RequestId(requestId string) *InterconnectAttachmentsPatchCall {
63722	c.urlParams_.Set("requestId", requestId)
63723	return c
63724}
63725
63726// Fields allows partial responses to be retrieved. See
63727// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63728// for more information.
63729func (c *InterconnectAttachmentsPatchCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsPatchCall {
63730	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63731	return c
63732}
63733
63734// Context sets the context to be used in this call's Do method. Any
63735// pending HTTP request will be aborted if the provided context is
63736// canceled.
63737func (c *InterconnectAttachmentsPatchCall) Context(ctx context.Context) *InterconnectAttachmentsPatchCall {
63738	c.ctx_ = ctx
63739	return c
63740}
63741
63742// Header returns an http.Header that can be modified by the caller to
63743// add HTTP headers to the request.
63744func (c *InterconnectAttachmentsPatchCall) Header() http.Header {
63745	if c.header_ == nil {
63746		c.header_ = make(http.Header)
63747	}
63748	return c.header_
63749}
63750
63751func (c *InterconnectAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) {
63752	reqHeaders := make(http.Header)
63753	for k, v := range c.header_ {
63754		reqHeaders[k] = v
63755	}
63756	reqHeaders.Set("User-Agent", c.s.userAgent())
63757	var body io.Reader = nil
63758	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
63759	if err != nil {
63760		return nil, err
63761	}
63762	reqHeaders.Set("Content-Type", "application/json")
63763	c.urlParams_.Set("alt", alt)
63764	c.urlParams_.Set("prettyPrint", "false")
63765	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
63766	urls += "?" + c.urlParams_.Encode()
63767	req, err := http.NewRequest("PATCH", urls, body)
63768	if err != nil {
63769		return nil, err
63770	}
63771	req.Header = reqHeaders
63772	googleapi.Expand(req.URL, map[string]string{
63773		"project":                c.project,
63774		"region":                 c.region,
63775		"interconnectAttachment": c.interconnectAttachment,
63776	})
63777	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63778}
63779
63780// Do executes the "compute.interconnectAttachments.patch" call.
63781// Exactly one of *Operation or error will be non-nil. Any non-2xx
63782// status code is an error. Response headers are in either
63783// *Operation.ServerResponse.Header or (if a response was returned at
63784// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63785// to check whether the returned error was because
63786// http.StatusNotModified was returned.
63787func (c *InterconnectAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63788	gensupport.SetOptions(c.urlParams_, opts...)
63789	res, err := c.doRequest("json")
63790	if res != nil && res.StatusCode == http.StatusNotModified {
63791		if res.Body != nil {
63792			res.Body.Close()
63793		}
63794		return nil, &googleapi.Error{
63795			Code:   res.StatusCode,
63796			Header: res.Header,
63797		}
63798	}
63799	if err != nil {
63800		return nil, err
63801	}
63802	defer googleapi.CloseBody(res)
63803	if err := googleapi.CheckResponse(res); err != nil {
63804		return nil, err
63805	}
63806	ret := &Operation{
63807		ServerResponse: googleapi.ServerResponse{
63808			Header:         res.Header,
63809			HTTPStatusCode: res.StatusCode,
63810		},
63811	}
63812	target := &ret
63813	if err := gensupport.DecodeResponse(target, res); err != nil {
63814		return nil, err
63815	}
63816	return ret, nil
63817	// {
63818	//   "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.",
63819	//   "httpMethod": "PATCH",
63820	//   "id": "compute.interconnectAttachments.patch",
63821	//   "parameterOrder": [
63822	//     "project",
63823	//     "region",
63824	//     "interconnectAttachment"
63825	//   ],
63826	//   "parameters": {
63827	//     "interconnectAttachment": {
63828	//       "description": "Name of the interconnect attachment to patch.",
63829	//       "location": "path",
63830	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63831	//       "required": true,
63832	//       "type": "string"
63833	//     },
63834	//     "project": {
63835	//       "description": "Project ID for this request.",
63836	//       "location": "path",
63837	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63838	//       "required": true,
63839	//       "type": "string"
63840	//     },
63841	//     "region": {
63842	//       "description": "Name of the region scoping this request.",
63843	//       "location": "path",
63844	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
63845	//       "required": true,
63846	//       "type": "string"
63847	//     },
63848	//     "requestId": {
63849	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63850	//       "location": "query",
63851	//       "type": "string"
63852	//     }
63853	//   },
63854	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
63855	//   "request": {
63856	//     "$ref": "InterconnectAttachment"
63857	//   },
63858	//   "response": {
63859	//     "$ref": "Operation"
63860	//   },
63861	//   "scopes": [
63862	//     "https://www.googleapis.com/auth/cloud-platform",
63863	//     "https://www.googleapis.com/auth/compute"
63864	//   ]
63865	// }
63866
63867}
63868
63869// method id "compute.interconnectLocations.get":
63870
63871type InterconnectLocationsGetCall struct {
63872	s                    *Service
63873	project              string
63874	interconnectLocation string
63875	urlParams_           gensupport.URLParams
63876	ifNoneMatch_         string
63877	ctx_                 context.Context
63878	header_              http.Header
63879}
63880
63881// Get: Returns the details for the specified interconnect location.
63882// Gets a list of available interconnect locations by making a list()
63883// request.
63884func (r *InterconnectLocationsService) Get(project string, interconnectLocation string) *InterconnectLocationsGetCall {
63885	c := &InterconnectLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63886	c.project = project
63887	c.interconnectLocation = interconnectLocation
63888	return c
63889}
63890
63891// Fields allows partial responses to be retrieved. See
63892// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63893// for more information.
63894func (c *InterconnectLocationsGetCall) Fields(s ...googleapi.Field) *InterconnectLocationsGetCall {
63895	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63896	return c
63897}
63898
63899// IfNoneMatch sets the optional parameter which makes the operation
63900// fail if the object's ETag matches the given value. This is useful for
63901// getting updates only after the object has changed since the last
63902// request. Use googleapi.IsNotModified to check whether the response
63903// error from Do is the result of In-None-Match.
63904func (c *InterconnectLocationsGetCall) IfNoneMatch(entityTag string) *InterconnectLocationsGetCall {
63905	c.ifNoneMatch_ = entityTag
63906	return c
63907}
63908
63909// Context sets the context to be used in this call's Do method. Any
63910// pending HTTP request will be aborted if the provided context is
63911// canceled.
63912func (c *InterconnectLocationsGetCall) Context(ctx context.Context) *InterconnectLocationsGetCall {
63913	c.ctx_ = ctx
63914	return c
63915}
63916
63917// Header returns an http.Header that can be modified by the caller to
63918// add HTTP headers to the request.
63919func (c *InterconnectLocationsGetCall) Header() http.Header {
63920	if c.header_ == nil {
63921		c.header_ = make(http.Header)
63922	}
63923	return c.header_
63924}
63925
63926func (c *InterconnectLocationsGetCall) doRequest(alt string) (*http.Response, error) {
63927	reqHeaders := make(http.Header)
63928	for k, v := range c.header_ {
63929		reqHeaders[k] = v
63930	}
63931	reqHeaders.Set("User-Agent", c.s.userAgent())
63932	if c.ifNoneMatch_ != "" {
63933		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63934	}
63935	var body io.Reader = nil
63936	c.urlParams_.Set("alt", alt)
63937	c.urlParams_.Set("prettyPrint", "false")
63938	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations/{interconnectLocation}")
63939	urls += "?" + c.urlParams_.Encode()
63940	req, err := http.NewRequest("GET", urls, body)
63941	if err != nil {
63942		return nil, err
63943	}
63944	req.Header = reqHeaders
63945	googleapi.Expand(req.URL, map[string]string{
63946		"project":              c.project,
63947		"interconnectLocation": c.interconnectLocation,
63948	})
63949	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63950}
63951
63952// Do executes the "compute.interconnectLocations.get" call.
63953// Exactly one of *InterconnectLocation or error will be non-nil. Any
63954// non-2xx status code is an error. Response headers are in either
63955// *InterconnectLocation.ServerResponse.Header or (if a response was
63956// returned at all) in error.(*googleapi.Error).Header. Use
63957// googleapi.IsNotModified to check whether the returned error was
63958// because http.StatusNotModified was returned.
63959func (c *InterconnectLocationsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectLocation, error) {
63960	gensupport.SetOptions(c.urlParams_, opts...)
63961	res, err := c.doRequest("json")
63962	if res != nil && res.StatusCode == http.StatusNotModified {
63963		if res.Body != nil {
63964			res.Body.Close()
63965		}
63966		return nil, &googleapi.Error{
63967			Code:   res.StatusCode,
63968			Header: res.Header,
63969		}
63970	}
63971	if err != nil {
63972		return nil, err
63973	}
63974	defer googleapi.CloseBody(res)
63975	if err := googleapi.CheckResponse(res); err != nil {
63976		return nil, err
63977	}
63978	ret := &InterconnectLocation{
63979		ServerResponse: googleapi.ServerResponse{
63980			Header:         res.Header,
63981			HTTPStatusCode: res.StatusCode,
63982		},
63983	}
63984	target := &ret
63985	if err := gensupport.DecodeResponse(target, res); err != nil {
63986		return nil, err
63987	}
63988	return ret, nil
63989	// {
63990	//   "description": "Returns the details for the specified interconnect location. Gets a list of available interconnect locations by making a list() request.",
63991	//   "httpMethod": "GET",
63992	//   "id": "compute.interconnectLocations.get",
63993	//   "parameterOrder": [
63994	//     "project",
63995	//     "interconnectLocation"
63996	//   ],
63997	//   "parameters": {
63998	//     "interconnectLocation": {
63999	//       "description": "Name of the interconnect location to return.",
64000	//       "location": "path",
64001	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64002	//       "required": true,
64003	//       "type": "string"
64004	//     },
64005	//     "project": {
64006	//       "description": "Project ID for this request.",
64007	//       "location": "path",
64008	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64009	//       "required": true,
64010	//       "type": "string"
64011	//     }
64012	//   },
64013	//   "path": "{project}/global/interconnectLocations/{interconnectLocation}",
64014	//   "response": {
64015	//     "$ref": "InterconnectLocation"
64016	//   },
64017	//   "scopes": [
64018	//     "https://www.googleapis.com/auth/cloud-platform",
64019	//     "https://www.googleapis.com/auth/compute",
64020	//     "https://www.googleapis.com/auth/compute.readonly"
64021	//   ]
64022	// }
64023
64024}
64025
64026// method id "compute.interconnectLocations.list":
64027
64028type InterconnectLocationsListCall struct {
64029	s            *Service
64030	project      string
64031	urlParams_   gensupport.URLParams
64032	ifNoneMatch_ string
64033	ctx_         context.Context
64034	header_      http.Header
64035}
64036
64037// List: Retrieves the list of interconnect locations available to the
64038// specified project.
64039func (r *InterconnectLocationsService) List(project string) *InterconnectLocationsListCall {
64040	c := &InterconnectLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64041	c.project = project
64042	return c
64043}
64044
64045// Filter sets the optional parameter "filter": A filter expression that
64046// filters resources listed in the response. The expression must specify
64047// the field name, a comparison operator, and the value that you want to
64048// use for filtering. The value must be a string, a number, or a
64049// boolean. The comparison operator must be either =, !=, >, or <.
64050//
64051// For example, if you are filtering Compute Engine instances, you can
64052// exclude instances named example-instance by specifying name !=
64053// example-instance.
64054//
64055// You can also filter nested fields. For example, you could specify
64056// scheduling.automaticRestart = false to include instances only if they
64057// are not scheduled for automatic restarts. You can use filtering on
64058// nested fields to filter based on resource labels.
64059//
64060// To filter on multiple expressions, provide each separate expression
64061// within parentheses. For example, (scheduling.automaticRestart = true)
64062// (cpuPlatform = "Intel Skylake"). By default, each expression is an
64063// AND expression. However, you can include AND and OR expressions
64064// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
64065// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
64066// true).
64067func (c *InterconnectLocationsListCall) Filter(filter string) *InterconnectLocationsListCall {
64068	c.urlParams_.Set("filter", filter)
64069	return c
64070}
64071
64072// MaxResults sets the optional parameter "maxResults": The maximum
64073// number of results per page that should be returned. If the number of
64074// available results is larger than maxResults, Compute Engine returns a
64075// nextPageToken that can be used to get the next page of results in
64076// subsequent list requests. Acceptable values are 0 to 500, inclusive.
64077// (Default: 500)
64078func (c *InterconnectLocationsListCall) MaxResults(maxResults int64) *InterconnectLocationsListCall {
64079	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
64080	return c
64081}
64082
64083// OrderBy sets the optional parameter "orderBy": Sorts list results by
64084// a certain order. By default, results are returned in alphanumerical
64085// order based on the resource name.
64086//
64087// You can also sort results in descending order based on the creation
64088// timestamp using orderBy="creationTimestamp desc". This sorts results
64089// based on the creationTimestamp field in reverse chronological order
64090// (newest result first). Use this to sort resources like operations so
64091// that the newest operation is returned first.
64092//
64093// Currently, only sorting by name or creationTimestamp desc is
64094// supported.
64095func (c *InterconnectLocationsListCall) OrderBy(orderBy string) *InterconnectLocationsListCall {
64096	c.urlParams_.Set("orderBy", orderBy)
64097	return c
64098}
64099
64100// PageToken sets the optional parameter "pageToken": Specifies a page
64101// token to use. Set pageToken to the nextPageToken returned by a
64102// previous list request to get the next page of results.
64103func (c *InterconnectLocationsListCall) PageToken(pageToken string) *InterconnectLocationsListCall {
64104	c.urlParams_.Set("pageToken", pageToken)
64105	return c
64106}
64107
64108// Fields allows partial responses to be retrieved. See
64109// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64110// for more information.
64111func (c *InterconnectLocationsListCall) Fields(s ...googleapi.Field) *InterconnectLocationsListCall {
64112	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64113	return c
64114}
64115
64116// IfNoneMatch sets the optional parameter which makes the operation
64117// fail if the object's ETag matches the given value. This is useful for
64118// getting updates only after the object has changed since the last
64119// request. Use googleapi.IsNotModified to check whether the response
64120// error from Do is the result of In-None-Match.
64121func (c *InterconnectLocationsListCall) IfNoneMatch(entityTag string) *InterconnectLocationsListCall {
64122	c.ifNoneMatch_ = entityTag
64123	return c
64124}
64125
64126// Context sets the context to be used in this call's Do method. Any
64127// pending HTTP request will be aborted if the provided context is
64128// canceled.
64129func (c *InterconnectLocationsListCall) Context(ctx context.Context) *InterconnectLocationsListCall {
64130	c.ctx_ = ctx
64131	return c
64132}
64133
64134// Header returns an http.Header that can be modified by the caller to
64135// add HTTP headers to the request.
64136func (c *InterconnectLocationsListCall) Header() http.Header {
64137	if c.header_ == nil {
64138		c.header_ = make(http.Header)
64139	}
64140	return c.header_
64141}
64142
64143func (c *InterconnectLocationsListCall) doRequest(alt string) (*http.Response, error) {
64144	reqHeaders := make(http.Header)
64145	for k, v := range c.header_ {
64146		reqHeaders[k] = v
64147	}
64148	reqHeaders.Set("User-Agent", c.s.userAgent())
64149	if c.ifNoneMatch_ != "" {
64150		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64151	}
64152	var body io.Reader = nil
64153	c.urlParams_.Set("alt", alt)
64154	c.urlParams_.Set("prettyPrint", "false")
64155	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations")
64156	urls += "?" + c.urlParams_.Encode()
64157	req, err := http.NewRequest("GET", urls, body)
64158	if err != nil {
64159		return nil, err
64160	}
64161	req.Header = reqHeaders
64162	googleapi.Expand(req.URL, map[string]string{
64163		"project": c.project,
64164	})
64165	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64166}
64167
64168// Do executes the "compute.interconnectLocations.list" call.
64169// Exactly one of *InterconnectLocationList or error will be non-nil.
64170// Any non-2xx status code is an error. Response headers are in either
64171// *InterconnectLocationList.ServerResponse.Header or (if a response was
64172// returned at all) in error.(*googleapi.Error).Header. Use
64173// googleapi.IsNotModified to check whether the returned error was
64174// because http.StatusNotModified was returned.
64175func (c *InterconnectLocationsListCall) Do(opts ...googleapi.CallOption) (*InterconnectLocationList, error) {
64176	gensupport.SetOptions(c.urlParams_, opts...)
64177	res, err := c.doRequest("json")
64178	if res != nil && res.StatusCode == http.StatusNotModified {
64179		if res.Body != nil {
64180			res.Body.Close()
64181		}
64182		return nil, &googleapi.Error{
64183			Code:   res.StatusCode,
64184			Header: res.Header,
64185		}
64186	}
64187	if err != nil {
64188		return nil, err
64189	}
64190	defer googleapi.CloseBody(res)
64191	if err := googleapi.CheckResponse(res); err != nil {
64192		return nil, err
64193	}
64194	ret := &InterconnectLocationList{
64195		ServerResponse: googleapi.ServerResponse{
64196			Header:         res.Header,
64197			HTTPStatusCode: res.StatusCode,
64198		},
64199	}
64200	target := &ret
64201	if err := gensupport.DecodeResponse(target, res); err != nil {
64202		return nil, err
64203	}
64204	return ret, nil
64205	// {
64206	//   "description": "Retrieves the list of interconnect locations available to the specified project.",
64207	//   "httpMethod": "GET",
64208	//   "id": "compute.interconnectLocations.list",
64209	//   "parameterOrder": [
64210	//     "project"
64211	//   ],
64212	//   "parameters": {
64213	//     "filter": {
64214	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
64215	//       "location": "query",
64216	//       "type": "string"
64217	//     },
64218	//     "maxResults": {
64219	//       "default": "500",
64220	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
64221	//       "format": "uint32",
64222	//       "location": "query",
64223	//       "minimum": "0",
64224	//       "type": "integer"
64225	//     },
64226	//     "orderBy": {
64227	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
64228	//       "location": "query",
64229	//       "type": "string"
64230	//     },
64231	//     "pageToken": {
64232	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
64233	//       "location": "query",
64234	//       "type": "string"
64235	//     },
64236	//     "project": {
64237	//       "description": "Project ID for this request.",
64238	//       "location": "path",
64239	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64240	//       "required": true,
64241	//       "type": "string"
64242	//     }
64243	//   },
64244	//   "path": "{project}/global/interconnectLocations",
64245	//   "response": {
64246	//     "$ref": "InterconnectLocationList"
64247	//   },
64248	//   "scopes": [
64249	//     "https://www.googleapis.com/auth/cloud-platform",
64250	//     "https://www.googleapis.com/auth/compute",
64251	//     "https://www.googleapis.com/auth/compute.readonly"
64252	//   ]
64253	// }
64254
64255}
64256
64257// Pages invokes f for each page of results.
64258// A non-nil error returned from f will halt the iteration.
64259// The provided context supersedes any context provided to the Context method.
64260func (c *InterconnectLocationsListCall) Pages(ctx context.Context, f func(*InterconnectLocationList) error) error {
64261	c.ctx_ = ctx
64262	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
64263	for {
64264		x, err := c.Do()
64265		if err != nil {
64266			return err
64267		}
64268		if err := f(x); err != nil {
64269			return err
64270		}
64271		if x.NextPageToken == "" {
64272			return nil
64273		}
64274		c.PageToken(x.NextPageToken)
64275	}
64276}
64277
64278// method id "compute.interconnects.delete":
64279
64280type InterconnectsDeleteCall struct {
64281	s            *Service
64282	project      string
64283	interconnect string
64284	urlParams_   gensupport.URLParams
64285	ctx_         context.Context
64286	header_      http.Header
64287}
64288
64289// Delete: Deletes the specified interconnect.
64290func (r *InterconnectsService) Delete(project string, interconnect string) *InterconnectsDeleteCall {
64291	c := &InterconnectsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64292	c.project = project
64293	c.interconnect = interconnect
64294	return c
64295}
64296
64297// RequestId sets the optional parameter "requestId": An optional
64298// request ID to identify requests. Specify a unique request ID so that
64299// if you must retry your request, the server will know to ignore the
64300// request if it has already been completed.
64301//
64302// For example, consider a situation where you make an initial request
64303// and the request times out. If you make the request again with the
64304// same request ID, the server can check if original operation with the
64305// same request ID was received, and if so, will ignore the second
64306// request. This prevents clients from accidentally creating duplicate
64307// commitments.
64308//
64309// The request ID must be a valid UUID with the exception that zero UUID
64310// is not supported (00000000-0000-0000-0000-000000000000).
64311func (c *InterconnectsDeleteCall) RequestId(requestId string) *InterconnectsDeleteCall {
64312	c.urlParams_.Set("requestId", requestId)
64313	return c
64314}
64315
64316// Fields allows partial responses to be retrieved. See
64317// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64318// for more information.
64319func (c *InterconnectsDeleteCall) Fields(s ...googleapi.Field) *InterconnectsDeleteCall {
64320	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64321	return c
64322}
64323
64324// Context sets the context to be used in this call's Do method. Any
64325// pending HTTP request will be aborted if the provided context is
64326// canceled.
64327func (c *InterconnectsDeleteCall) Context(ctx context.Context) *InterconnectsDeleteCall {
64328	c.ctx_ = ctx
64329	return c
64330}
64331
64332// Header returns an http.Header that can be modified by the caller to
64333// add HTTP headers to the request.
64334func (c *InterconnectsDeleteCall) Header() http.Header {
64335	if c.header_ == nil {
64336		c.header_ = make(http.Header)
64337	}
64338	return c.header_
64339}
64340
64341func (c *InterconnectsDeleteCall) doRequest(alt string) (*http.Response, error) {
64342	reqHeaders := make(http.Header)
64343	for k, v := range c.header_ {
64344		reqHeaders[k] = v
64345	}
64346	reqHeaders.Set("User-Agent", c.s.userAgent())
64347	var body io.Reader = nil
64348	c.urlParams_.Set("alt", alt)
64349	c.urlParams_.Set("prettyPrint", "false")
64350	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
64351	urls += "?" + c.urlParams_.Encode()
64352	req, err := http.NewRequest("DELETE", urls, body)
64353	if err != nil {
64354		return nil, err
64355	}
64356	req.Header = reqHeaders
64357	googleapi.Expand(req.URL, map[string]string{
64358		"project":      c.project,
64359		"interconnect": c.interconnect,
64360	})
64361	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64362}
64363
64364// Do executes the "compute.interconnects.delete" call.
64365// Exactly one of *Operation or error will be non-nil. Any non-2xx
64366// status code is an error. Response headers are in either
64367// *Operation.ServerResponse.Header or (if a response was returned at
64368// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64369// to check whether the returned error was because
64370// http.StatusNotModified was returned.
64371func (c *InterconnectsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64372	gensupport.SetOptions(c.urlParams_, opts...)
64373	res, err := c.doRequest("json")
64374	if res != nil && res.StatusCode == http.StatusNotModified {
64375		if res.Body != nil {
64376			res.Body.Close()
64377		}
64378		return nil, &googleapi.Error{
64379			Code:   res.StatusCode,
64380			Header: res.Header,
64381		}
64382	}
64383	if err != nil {
64384		return nil, err
64385	}
64386	defer googleapi.CloseBody(res)
64387	if err := googleapi.CheckResponse(res); err != nil {
64388		return nil, err
64389	}
64390	ret := &Operation{
64391		ServerResponse: googleapi.ServerResponse{
64392			Header:         res.Header,
64393			HTTPStatusCode: res.StatusCode,
64394		},
64395	}
64396	target := &ret
64397	if err := gensupport.DecodeResponse(target, res); err != nil {
64398		return nil, err
64399	}
64400	return ret, nil
64401	// {
64402	//   "description": "Deletes the specified interconnect.",
64403	//   "httpMethod": "DELETE",
64404	//   "id": "compute.interconnects.delete",
64405	//   "parameterOrder": [
64406	//     "project",
64407	//     "interconnect"
64408	//   ],
64409	//   "parameters": {
64410	//     "interconnect": {
64411	//       "description": "Name of the interconnect to delete.",
64412	//       "location": "path",
64413	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64414	//       "required": true,
64415	//       "type": "string"
64416	//     },
64417	//     "project": {
64418	//       "description": "Project ID for this request.",
64419	//       "location": "path",
64420	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64421	//       "required": true,
64422	//       "type": "string"
64423	//     },
64424	//     "requestId": {
64425	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64426	//       "location": "query",
64427	//       "type": "string"
64428	//     }
64429	//   },
64430	//   "path": "{project}/global/interconnects/{interconnect}",
64431	//   "response": {
64432	//     "$ref": "Operation"
64433	//   },
64434	//   "scopes": [
64435	//     "https://www.googleapis.com/auth/cloud-platform",
64436	//     "https://www.googleapis.com/auth/compute"
64437	//   ]
64438	// }
64439
64440}
64441
64442// method id "compute.interconnects.get":
64443
64444type InterconnectsGetCall struct {
64445	s            *Service
64446	project      string
64447	interconnect string
64448	urlParams_   gensupport.URLParams
64449	ifNoneMatch_ string
64450	ctx_         context.Context
64451	header_      http.Header
64452}
64453
64454// Get: Returns the specified interconnect. Get a list of available
64455// interconnects by making a list() request.
64456func (r *InterconnectsService) Get(project string, interconnect string) *InterconnectsGetCall {
64457	c := &InterconnectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64458	c.project = project
64459	c.interconnect = interconnect
64460	return c
64461}
64462
64463// Fields allows partial responses to be retrieved. See
64464// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64465// for more information.
64466func (c *InterconnectsGetCall) Fields(s ...googleapi.Field) *InterconnectsGetCall {
64467	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64468	return c
64469}
64470
64471// IfNoneMatch sets the optional parameter which makes the operation
64472// fail if the object's ETag matches the given value. This is useful for
64473// getting updates only after the object has changed since the last
64474// request. Use googleapi.IsNotModified to check whether the response
64475// error from Do is the result of In-None-Match.
64476func (c *InterconnectsGetCall) IfNoneMatch(entityTag string) *InterconnectsGetCall {
64477	c.ifNoneMatch_ = entityTag
64478	return c
64479}
64480
64481// Context sets the context to be used in this call's Do method. Any
64482// pending HTTP request will be aborted if the provided context is
64483// canceled.
64484func (c *InterconnectsGetCall) Context(ctx context.Context) *InterconnectsGetCall {
64485	c.ctx_ = ctx
64486	return c
64487}
64488
64489// Header returns an http.Header that can be modified by the caller to
64490// add HTTP headers to the request.
64491func (c *InterconnectsGetCall) Header() http.Header {
64492	if c.header_ == nil {
64493		c.header_ = make(http.Header)
64494	}
64495	return c.header_
64496}
64497
64498func (c *InterconnectsGetCall) doRequest(alt string) (*http.Response, error) {
64499	reqHeaders := make(http.Header)
64500	for k, v := range c.header_ {
64501		reqHeaders[k] = v
64502	}
64503	reqHeaders.Set("User-Agent", c.s.userAgent())
64504	if c.ifNoneMatch_ != "" {
64505		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64506	}
64507	var body io.Reader = nil
64508	c.urlParams_.Set("alt", alt)
64509	c.urlParams_.Set("prettyPrint", "false")
64510	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
64511	urls += "?" + c.urlParams_.Encode()
64512	req, err := http.NewRequest("GET", urls, body)
64513	if err != nil {
64514		return nil, err
64515	}
64516	req.Header = reqHeaders
64517	googleapi.Expand(req.URL, map[string]string{
64518		"project":      c.project,
64519		"interconnect": c.interconnect,
64520	})
64521	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64522}
64523
64524// Do executes the "compute.interconnects.get" call.
64525// Exactly one of *Interconnect or error will be non-nil. Any non-2xx
64526// status code is an error. Response headers are in either
64527// *Interconnect.ServerResponse.Header or (if a response was returned at
64528// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64529// to check whether the returned error was because
64530// http.StatusNotModified was returned.
64531func (c *InterconnectsGetCall) Do(opts ...googleapi.CallOption) (*Interconnect, error) {
64532	gensupport.SetOptions(c.urlParams_, opts...)
64533	res, err := c.doRequest("json")
64534	if res != nil && res.StatusCode == http.StatusNotModified {
64535		if res.Body != nil {
64536			res.Body.Close()
64537		}
64538		return nil, &googleapi.Error{
64539			Code:   res.StatusCode,
64540			Header: res.Header,
64541		}
64542	}
64543	if err != nil {
64544		return nil, err
64545	}
64546	defer googleapi.CloseBody(res)
64547	if err := googleapi.CheckResponse(res); err != nil {
64548		return nil, err
64549	}
64550	ret := &Interconnect{
64551		ServerResponse: googleapi.ServerResponse{
64552			Header:         res.Header,
64553			HTTPStatusCode: res.StatusCode,
64554		},
64555	}
64556	target := &ret
64557	if err := gensupport.DecodeResponse(target, res); err != nil {
64558		return nil, err
64559	}
64560	return ret, nil
64561	// {
64562	//   "description": "Returns the specified interconnect. Get a list of available interconnects by making a list() request.",
64563	//   "httpMethod": "GET",
64564	//   "id": "compute.interconnects.get",
64565	//   "parameterOrder": [
64566	//     "project",
64567	//     "interconnect"
64568	//   ],
64569	//   "parameters": {
64570	//     "interconnect": {
64571	//       "description": "Name of the interconnect to return.",
64572	//       "location": "path",
64573	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64574	//       "required": true,
64575	//       "type": "string"
64576	//     },
64577	//     "project": {
64578	//       "description": "Project ID for this request.",
64579	//       "location": "path",
64580	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64581	//       "required": true,
64582	//       "type": "string"
64583	//     }
64584	//   },
64585	//   "path": "{project}/global/interconnects/{interconnect}",
64586	//   "response": {
64587	//     "$ref": "Interconnect"
64588	//   },
64589	//   "scopes": [
64590	//     "https://www.googleapis.com/auth/cloud-platform",
64591	//     "https://www.googleapis.com/auth/compute",
64592	//     "https://www.googleapis.com/auth/compute.readonly"
64593	//   ]
64594	// }
64595
64596}
64597
64598// method id "compute.interconnects.getDiagnostics":
64599
64600type InterconnectsGetDiagnosticsCall struct {
64601	s            *Service
64602	project      string
64603	interconnect string
64604	urlParams_   gensupport.URLParams
64605	ifNoneMatch_ string
64606	ctx_         context.Context
64607	header_      http.Header
64608}
64609
64610// GetDiagnostics: Returns the interconnectDiagnostics for the specified
64611// interconnect.
64612func (r *InterconnectsService) GetDiagnostics(project string, interconnect string) *InterconnectsGetDiagnosticsCall {
64613	c := &InterconnectsGetDiagnosticsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64614	c.project = project
64615	c.interconnect = interconnect
64616	return c
64617}
64618
64619// Fields allows partial responses to be retrieved. See
64620// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64621// for more information.
64622func (c *InterconnectsGetDiagnosticsCall) Fields(s ...googleapi.Field) *InterconnectsGetDiagnosticsCall {
64623	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64624	return c
64625}
64626
64627// IfNoneMatch sets the optional parameter which makes the operation
64628// fail if the object's ETag matches the given value. This is useful for
64629// getting updates only after the object has changed since the last
64630// request. Use googleapi.IsNotModified to check whether the response
64631// error from Do is the result of In-None-Match.
64632func (c *InterconnectsGetDiagnosticsCall) IfNoneMatch(entityTag string) *InterconnectsGetDiagnosticsCall {
64633	c.ifNoneMatch_ = entityTag
64634	return c
64635}
64636
64637// Context sets the context to be used in this call's Do method. Any
64638// pending HTTP request will be aborted if the provided context is
64639// canceled.
64640func (c *InterconnectsGetDiagnosticsCall) Context(ctx context.Context) *InterconnectsGetDiagnosticsCall {
64641	c.ctx_ = ctx
64642	return c
64643}
64644
64645// Header returns an http.Header that can be modified by the caller to
64646// add HTTP headers to the request.
64647func (c *InterconnectsGetDiagnosticsCall) Header() http.Header {
64648	if c.header_ == nil {
64649		c.header_ = make(http.Header)
64650	}
64651	return c.header_
64652}
64653
64654func (c *InterconnectsGetDiagnosticsCall) doRequest(alt string) (*http.Response, error) {
64655	reqHeaders := make(http.Header)
64656	for k, v := range c.header_ {
64657		reqHeaders[k] = v
64658	}
64659	reqHeaders.Set("User-Agent", c.s.userAgent())
64660	if c.ifNoneMatch_ != "" {
64661		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64662	}
64663	var body io.Reader = nil
64664	c.urlParams_.Set("alt", alt)
64665	c.urlParams_.Set("prettyPrint", "false")
64666	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}/getDiagnostics")
64667	urls += "?" + c.urlParams_.Encode()
64668	req, err := http.NewRequest("GET", urls, body)
64669	if err != nil {
64670		return nil, err
64671	}
64672	req.Header = reqHeaders
64673	googleapi.Expand(req.URL, map[string]string{
64674		"project":      c.project,
64675		"interconnect": c.interconnect,
64676	})
64677	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64678}
64679
64680// Do executes the "compute.interconnects.getDiagnostics" call.
64681// Exactly one of *InterconnectsGetDiagnosticsResponse or error will be
64682// non-nil. Any non-2xx status code is an error. Response headers are in
64683// either *InterconnectsGetDiagnosticsResponse.ServerResponse.Header or
64684// (if a response was returned at all) in
64685// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
64686// whether the returned error was because http.StatusNotModified was
64687// returned.
64688func (c *InterconnectsGetDiagnosticsCall) Do(opts ...googleapi.CallOption) (*InterconnectsGetDiagnosticsResponse, error) {
64689	gensupport.SetOptions(c.urlParams_, opts...)
64690	res, err := c.doRequest("json")
64691	if res != nil && res.StatusCode == http.StatusNotModified {
64692		if res.Body != nil {
64693			res.Body.Close()
64694		}
64695		return nil, &googleapi.Error{
64696			Code:   res.StatusCode,
64697			Header: res.Header,
64698		}
64699	}
64700	if err != nil {
64701		return nil, err
64702	}
64703	defer googleapi.CloseBody(res)
64704	if err := googleapi.CheckResponse(res); err != nil {
64705		return nil, err
64706	}
64707	ret := &InterconnectsGetDiagnosticsResponse{
64708		ServerResponse: googleapi.ServerResponse{
64709			Header:         res.Header,
64710			HTTPStatusCode: res.StatusCode,
64711		},
64712	}
64713	target := &ret
64714	if err := gensupport.DecodeResponse(target, res); err != nil {
64715		return nil, err
64716	}
64717	return ret, nil
64718	// {
64719	//   "description": "Returns the interconnectDiagnostics for the specified interconnect.",
64720	//   "httpMethod": "GET",
64721	//   "id": "compute.interconnects.getDiagnostics",
64722	//   "parameterOrder": [
64723	//     "project",
64724	//     "interconnect"
64725	//   ],
64726	//   "parameters": {
64727	//     "interconnect": {
64728	//       "description": "Name of the interconnect resource to query.",
64729	//       "location": "path",
64730	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64731	//       "required": true,
64732	//       "type": "string"
64733	//     },
64734	//     "project": {
64735	//       "description": "Project ID for this request.",
64736	//       "location": "path",
64737	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64738	//       "required": true,
64739	//       "type": "string"
64740	//     }
64741	//   },
64742	//   "path": "{project}/global/interconnects/{interconnect}/getDiagnostics",
64743	//   "response": {
64744	//     "$ref": "InterconnectsGetDiagnosticsResponse"
64745	//   },
64746	//   "scopes": [
64747	//     "https://www.googleapis.com/auth/cloud-platform",
64748	//     "https://www.googleapis.com/auth/compute",
64749	//     "https://www.googleapis.com/auth/compute.readonly"
64750	//   ]
64751	// }
64752
64753}
64754
64755// method id "compute.interconnects.insert":
64756
64757type InterconnectsInsertCall struct {
64758	s            *Service
64759	project      string
64760	interconnect *Interconnect
64761	urlParams_   gensupport.URLParams
64762	ctx_         context.Context
64763	header_      http.Header
64764}
64765
64766// Insert: Creates a Interconnect in the specified project using the
64767// data included in the request.
64768func (r *InterconnectsService) Insert(project string, interconnect *Interconnect) *InterconnectsInsertCall {
64769	c := &InterconnectsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64770	c.project = project
64771	c.interconnect = interconnect
64772	return c
64773}
64774
64775// RequestId sets the optional parameter "requestId": An optional
64776// request ID to identify requests. Specify a unique request ID so that
64777// if you must retry your request, the server will know to ignore the
64778// request if it has already been completed.
64779//
64780// For example, consider a situation where you make an initial request
64781// and the request times out. If you make the request again with the
64782// same request ID, the server can check if original operation with the
64783// same request ID was received, and if so, will ignore the second
64784// request. This prevents clients from accidentally creating duplicate
64785// commitments.
64786//
64787// The request ID must be a valid UUID with the exception that zero UUID
64788// is not supported (00000000-0000-0000-0000-000000000000).
64789func (c *InterconnectsInsertCall) RequestId(requestId string) *InterconnectsInsertCall {
64790	c.urlParams_.Set("requestId", requestId)
64791	return c
64792}
64793
64794// Fields allows partial responses to be retrieved. See
64795// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64796// for more information.
64797func (c *InterconnectsInsertCall) Fields(s ...googleapi.Field) *InterconnectsInsertCall {
64798	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64799	return c
64800}
64801
64802// Context sets the context to be used in this call's Do method. Any
64803// pending HTTP request will be aborted if the provided context is
64804// canceled.
64805func (c *InterconnectsInsertCall) Context(ctx context.Context) *InterconnectsInsertCall {
64806	c.ctx_ = ctx
64807	return c
64808}
64809
64810// Header returns an http.Header that can be modified by the caller to
64811// add HTTP headers to the request.
64812func (c *InterconnectsInsertCall) Header() http.Header {
64813	if c.header_ == nil {
64814		c.header_ = make(http.Header)
64815	}
64816	return c.header_
64817}
64818
64819func (c *InterconnectsInsertCall) doRequest(alt string) (*http.Response, error) {
64820	reqHeaders := make(http.Header)
64821	for k, v := range c.header_ {
64822		reqHeaders[k] = v
64823	}
64824	reqHeaders.Set("User-Agent", c.s.userAgent())
64825	var body io.Reader = nil
64826	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect)
64827	if err != nil {
64828		return nil, err
64829	}
64830	reqHeaders.Set("Content-Type", "application/json")
64831	c.urlParams_.Set("alt", alt)
64832	c.urlParams_.Set("prettyPrint", "false")
64833	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects")
64834	urls += "?" + c.urlParams_.Encode()
64835	req, err := http.NewRequest("POST", urls, body)
64836	if err != nil {
64837		return nil, err
64838	}
64839	req.Header = reqHeaders
64840	googleapi.Expand(req.URL, map[string]string{
64841		"project": c.project,
64842	})
64843	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64844}
64845
64846// Do executes the "compute.interconnects.insert" call.
64847// Exactly one of *Operation or error will be non-nil. Any non-2xx
64848// status code is an error. Response headers are in either
64849// *Operation.ServerResponse.Header or (if a response was returned at
64850// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64851// to check whether the returned error was because
64852// http.StatusNotModified was returned.
64853func (c *InterconnectsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64854	gensupport.SetOptions(c.urlParams_, opts...)
64855	res, err := c.doRequest("json")
64856	if res != nil && res.StatusCode == http.StatusNotModified {
64857		if res.Body != nil {
64858			res.Body.Close()
64859		}
64860		return nil, &googleapi.Error{
64861			Code:   res.StatusCode,
64862			Header: res.Header,
64863		}
64864	}
64865	if err != nil {
64866		return nil, err
64867	}
64868	defer googleapi.CloseBody(res)
64869	if err := googleapi.CheckResponse(res); err != nil {
64870		return nil, err
64871	}
64872	ret := &Operation{
64873		ServerResponse: googleapi.ServerResponse{
64874			Header:         res.Header,
64875			HTTPStatusCode: res.StatusCode,
64876		},
64877	}
64878	target := &ret
64879	if err := gensupport.DecodeResponse(target, res); err != nil {
64880		return nil, err
64881	}
64882	return ret, nil
64883	// {
64884	//   "description": "Creates a Interconnect in the specified project using the data included in the request.",
64885	//   "httpMethod": "POST",
64886	//   "id": "compute.interconnects.insert",
64887	//   "parameterOrder": [
64888	//     "project"
64889	//   ],
64890	//   "parameters": {
64891	//     "project": {
64892	//       "description": "Project ID for this request.",
64893	//       "location": "path",
64894	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64895	//       "required": true,
64896	//       "type": "string"
64897	//     },
64898	//     "requestId": {
64899	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64900	//       "location": "query",
64901	//       "type": "string"
64902	//     }
64903	//   },
64904	//   "path": "{project}/global/interconnects",
64905	//   "request": {
64906	//     "$ref": "Interconnect"
64907	//   },
64908	//   "response": {
64909	//     "$ref": "Operation"
64910	//   },
64911	//   "scopes": [
64912	//     "https://www.googleapis.com/auth/cloud-platform",
64913	//     "https://www.googleapis.com/auth/compute"
64914	//   ]
64915	// }
64916
64917}
64918
64919// method id "compute.interconnects.list":
64920
64921type InterconnectsListCall struct {
64922	s            *Service
64923	project      string
64924	urlParams_   gensupport.URLParams
64925	ifNoneMatch_ string
64926	ctx_         context.Context
64927	header_      http.Header
64928}
64929
64930// List: Retrieves the list of interconnect available to the specified
64931// project.
64932func (r *InterconnectsService) List(project string) *InterconnectsListCall {
64933	c := &InterconnectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64934	c.project = project
64935	return c
64936}
64937
64938// Filter sets the optional parameter "filter": A filter expression that
64939// filters resources listed in the response. The expression must specify
64940// the field name, a comparison operator, and the value that you want to
64941// use for filtering. The value must be a string, a number, or a
64942// boolean. The comparison operator must be either =, !=, >, or <.
64943//
64944// For example, if you are filtering Compute Engine instances, you can
64945// exclude instances named example-instance by specifying name !=
64946// example-instance.
64947//
64948// You can also filter nested fields. For example, you could specify
64949// scheduling.automaticRestart = false to include instances only if they
64950// are not scheduled for automatic restarts. You can use filtering on
64951// nested fields to filter based on resource labels.
64952//
64953// To filter on multiple expressions, provide each separate expression
64954// within parentheses. For example, (scheduling.automaticRestart = true)
64955// (cpuPlatform = "Intel Skylake"). By default, each expression is an
64956// AND expression. However, you can include AND and OR expressions
64957// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
64958// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
64959// true).
64960func (c *InterconnectsListCall) Filter(filter string) *InterconnectsListCall {
64961	c.urlParams_.Set("filter", filter)
64962	return c
64963}
64964
64965// MaxResults sets the optional parameter "maxResults": The maximum
64966// number of results per page that should be returned. If the number of
64967// available results is larger than maxResults, Compute Engine returns a
64968// nextPageToken that can be used to get the next page of results in
64969// subsequent list requests. Acceptable values are 0 to 500, inclusive.
64970// (Default: 500)
64971func (c *InterconnectsListCall) MaxResults(maxResults int64) *InterconnectsListCall {
64972	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
64973	return c
64974}
64975
64976// OrderBy sets the optional parameter "orderBy": Sorts list results by
64977// a certain order. By default, results are returned in alphanumerical
64978// order based on the resource name.
64979//
64980// You can also sort results in descending order based on the creation
64981// timestamp using orderBy="creationTimestamp desc". This sorts results
64982// based on the creationTimestamp field in reverse chronological order
64983// (newest result first). Use this to sort resources like operations so
64984// that the newest operation is returned first.
64985//
64986// Currently, only sorting by name or creationTimestamp desc is
64987// supported.
64988func (c *InterconnectsListCall) OrderBy(orderBy string) *InterconnectsListCall {
64989	c.urlParams_.Set("orderBy", orderBy)
64990	return c
64991}
64992
64993// PageToken sets the optional parameter "pageToken": Specifies a page
64994// token to use. Set pageToken to the nextPageToken returned by a
64995// previous list request to get the next page of results.
64996func (c *InterconnectsListCall) PageToken(pageToken string) *InterconnectsListCall {
64997	c.urlParams_.Set("pageToken", pageToken)
64998	return c
64999}
65000
65001// Fields allows partial responses to be retrieved. See
65002// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65003// for more information.
65004func (c *InterconnectsListCall) Fields(s ...googleapi.Field) *InterconnectsListCall {
65005	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65006	return c
65007}
65008
65009// IfNoneMatch sets the optional parameter which makes the operation
65010// fail if the object's ETag matches the given value. This is useful for
65011// getting updates only after the object has changed since the last
65012// request. Use googleapi.IsNotModified to check whether the response
65013// error from Do is the result of In-None-Match.
65014func (c *InterconnectsListCall) IfNoneMatch(entityTag string) *InterconnectsListCall {
65015	c.ifNoneMatch_ = entityTag
65016	return c
65017}
65018
65019// Context sets the context to be used in this call's Do method. Any
65020// pending HTTP request will be aborted if the provided context is
65021// canceled.
65022func (c *InterconnectsListCall) Context(ctx context.Context) *InterconnectsListCall {
65023	c.ctx_ = ctx
65024	return c
65025}
65026
65027// Header returns an http.Header that can be modified by the caller to
65028// add HTTP headers to the request.
65029func (c *InterconnectsListCall) Header() http.Header {
65030	if c.header_ == nil {
65031		c.header_ = make(http.Header)
65032	}
65033	return c.header_
65034}
65035
65036func (c *InterconnectsListCall) doRequest(alt string) (*http.Response, error) {
65037	reqHeaders := make(http.Header)
65038	for k, v := range c.header_ {
65039		reqHeaders[k] = v
65040	}
65041	reqHeaders.Set("User-Agent", c.s.userAgent())
65042	if c.ifNoneMatch_ != "" {
65043		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65044	}
65045	var body io.Reader = nil
65046	c.urlParams_.Set("alt", alt)
65047	c.urlParams_.Set("prettyPrint", "false")
65048	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects")
65049	urls += "?" + c.urlParams_.Encode()
65050	req, err := http.NewRequest("GET", urls, body)
65051	if err != nil {
65052		return nil, err
65053	}
65054	req.Header = reqHeaders
65055	googleapi.Expand(req.URL, map[string]string{
65056		"project": c.project,
65057	})
65058	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65059}
65060
65061// Do executes the "compute.interconnects.list" call.
65062// Exactly one of *InterconnectList or error will be non-nil. Any
65063// non-2xx status code is an error. Response headers are in either
65064// *InterconnectList.ServerResponse.Header or (if a response was
65065// returned at all) in error.(*googleapi.Error).Header. Use
65066// googleapi.IsNotModified to check whether the returned error was
65067// because http.StatusNotModified was returned.
65068func (c *InterconnectsListCall) Do(opts ...googleapi.CallOption) (*InterconnectList, error) {
65069	gensupport.SetOptions(c.urlParams_, opts...)
65070	res, err := c.doRequest("json")
65071	if res != nil && res.StatusCode == http.StatusNotModified {
65072		if res.Body != nil {
65073			res.Body.Close()
65074		}
65075		return nil, &googleapi.Error{
65076			Code:   res.StatusCode,
65077			Header: res.Header,
65078		}
65079	}
65080	if err != nil {
65081		return nil, err
65082	}
65083	defer googleapi.CloseBody(res)
65084	if err := googleapi.CheckResponse(res); err != nil {
65085		return nil, err
65086	}
65087	ret := &InterconnectList{
65088		ServerResponse: googleapi.ServerResponse{
65089			Header:         res.Header,
65090			HTTPStatusCode: res.StatusCode,
65091		},
65092	}
65093	target := &ret
65094	if err := gensupport.DecodeResponse(target, res); err != nil {
65095		return nil, err
65096	}
65097	return ret, nil
65098	// {
65099	//   "description": "Retrieves the list of interconnect available to the specified project.",
65100	//   "httpMethod": "GET",
65101	//   "id": "compute.interconnects.list",
65102	//   "parameterOrder": [
65103	//     "project"
65104	//   ],
65105	//   "parameters": {
65106	//     "filter": {
65107	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
65108	//       "location": "query",
65109	//       "type": "string"
65110	//     },
65111	//     "maxResults": {
65112	//       "default": "500",
65113	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
65114	//       "format": "uint32",
65115	//       "location": "query",
65116	//       "minimum": "0",
65117	//       "type": "integer"
65118	//     },
65119	//     "orderBy": {
65120	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
65121	//       "location": "query",
65122	//       "type": "string"
65123	//     },
65124	//     "pageToken": {
65125	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
65126	//       "location": "query",
65127	//       "type": "string"
65128	//     },
65129	//     "project": {
65130	//       "description": "Project ID for this request.",
65131	//       "location": "path",
65132	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65133	//       "required": true,
65134	//       "type": "string"
65135	//     }
65136	//   },
65137	//   "path": "{project}/global/interconnects",
65138	//   "response": {
65139	//     "$ref": "InterconnectList"
65140	//   },
65141	//   "scopes": [
65142	//     "https://www.googleapis.com/auth/cloud-platform",
65143	//     "https://www.googleapis.com/auth/compute",
65144	//     "https://www.googleapis.com/auth/compute.readonly"
65145	//   ]
65146	// }
65147
65148}
65149
65150// Pages invokes f for each page of results.
65151// A non-nil error returned from f will halt the iteration.
65152// The provided context supersedes any context provided to the Context method.
65153func (c *InterconnectsListCall) Pages(ctx context.Context, f func(*InterconnectList) error) error {
65154	c.ctx_ = ctx
65155	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
65156	for {
65157		x, err := c.Do()
65158		if err != nil {
65159			return err
65160		}
65161		if err := f(x); err != nil {
65162			return err
65163		}
65164		if x.NextPageToken == "" {
65165			return nil
65166		}
65167		c.PageToken(x.NextPageToken)
65168	}
65169}
65170
65171// method id "compute.interconnects.patch":
65172
65173type InterconnectsPatchCall struct {
65174	s             *Service
65175	project       string
65176	interconnect  string
65177	interconnect2 *Interconnect
65178	urlParams_    gensupport.URLParams
65179	ctx_          context.Context
65180	header_       http.Header
65181}
65182
65183// Patch: Updates the specified interconnect with the data included in
65184// the request. This method supports PATCH semantics and uses the JSON
65185// merge patch format and processing rules.
65186func (r *InterconnectsService) Patch(project string, interconnect string, interconnect2 *Interconnect) *InterconnectsPatchCall {
65187	c := &InterconnectsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65188	c.project = project
65189	c.interconnect = interconnect
65190	c.interconnect2 = interconnect2
65191	return c
65192}
65193
65194// RequestId sets the optional parameter "requestId": An optional
65195// request ID to identify requests. Specify a unique request ID so that
65196// if you must retry your request, the server will know to ignore the
65197// request if it has already been completed.
65198//
65199// For example, consider a situation where you make an initial request
65200// and the request times out. If you make the request again with the
65201// same request ID, the server can check if original operation with the
65202// same request ID was received, and if so, will ignore the second
65203// request. This prevents clients from accidentally creating duplicate
65204// commitments.
65205//
65206// The request ID must be a valid UUID with the exception that zero UUID
65207// is not supported (00000000-0000-0000-0000-000000000000).
65208func (c *InterconnectsPatchCall) RequestId(requestId string) *InterconnectsPatchCall {
65209	c.urlParams_.Set("requestId", requestId)
65210	return c
65211}
65212
65213// Fields allows partial responses to be retrieved. See
65214// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65215// for more information.
65216func (c *InterconnectsPatchCall) Fields(s ...googleapi.Field) *InterconnectsPatchCall {
65217	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65218	return c
65219}
65220
65221// Context sets the context to be used in this call's Do method. Any
65222// pending HTTP request will be aborted if the provided context is
65223// canceled.
65224func (c *InterconnectsPatchCall) Context(ctx context.Context) *InterconnectsPatchCall {
65225	c.ctx_ = ctx
65226	return c
65227}
65228
65229// Header returns an http.Header that can be modified by the caller to
65230// add HTTP headers to the request.
65231func (c *InterconnectsPatchCall) Header() http.Header {
65232	if c.header_ == nil {
65233		c.header_ = make(http.Header)
65234	}
65235	return c.header_
65236}
65237
65238func (c *InterconnectsPatchCall) doRequest(alt string) (*http.Response, error) {
65239	reqHeaders := make(http.Header)
65240	for k, v := range c.header_ {
65241		reqHeaders[k] = v
65242	}
65243	reqHeaders.Set("User-Agent", c.s.userAgent())
65244	var body io.Reader = nil
65245	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect2)
65246	if err != nil {
65247		return nil, err
65248	}
65249	reqHeaders.Set("Content-Type", "application/json")
65250	c.urlParams_.Set("alt", alt)
65251	c.urlParams_.Set("prettyPrint", "false")
65252	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
65253	urls += "?" + c.urlParams_.Encode()
65254	req, err := http.NewRequest("PATCH", urls, body)
65255	if err != nil {
65256		return nil, err
65257	}
65258	req.Header = reqHeaders
65259	googleapi.Expand(req.URL, map[string]string{
65260		"project":      c.project,
65261		"interconnect": c.interconnect,
65262	})
65263	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65264}
65265
65266// Do executes the "compute.interconnects.patch" call.
65267// Exactly one of *Operation or error will be non-nil. Any non-2xx
65268// status code is an error. Response headers are in either
65269// *Operation.ServerResponse.Header or (if a response was returned at
65270// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65271// to check whether the returned error was because
65272// http.StatusNotModified was returned.
65273func (c *InterconnectsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65274	gensupport.SetOptions(c.urlParams_, opts...)
65275	res, err := c.doRequest("json")
65276	if res != nil && res.StatusCode == http.StatusNotModified {
65277		if res.Body != nil {
65278			res.Body.Close()
65279		}
65280		return nil, &googleapi.Error{
65281			Code:   res.StatusCode,
65282			Header: res.Header,
65283		}
65284	}
65285	if err != nil {
65286		return nil, err
65287	}
65288	defer googleapi.CloseBody(res)
65289	if err := googleapi.CheckResponse(res); err != nil {
65290		return nil, err
65291	}
65292	ret := &Operation{
65293		ServerResponse: googleapi.ServerResponse{
65294			Header:         res.Header,
65295			HTTPStatusCode: res.StatusCode,
65296		},
65297	}
65298	target := &ret
65299	if err := gensupport.DecodeResponse(target, res); err != nil {
65300		return nil, err
65301	}
65302	return ret, nil
65303	// {
65304	//   "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.",
65305	//   "httpMethod": "PATCH",
65306	//   "id": "compute.interconnects.patch",
65307	//   "parameterOrder": [
65308	//     "project",
65309	//     "interconnect"
65310	//   ],
65311	//   "parameters": {
65312	//     "interconnect": {
65313	//       "description": "Name of the interconnect to update.",
65314	//       "location": "path",
65315	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65316	//       "required": true,
65317	//       "type": "string"
65318	//     },
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	//     "requestId": {
65327	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65328	//       "location": "query",
65329	//       "type": "string"
65330	//     }
65331	//   },
65332	//   "path": "{project}/global/interconnects/{interconnect}",
65333	//   "request": {
65334	//     "$ref": "Interconnect"
65335	//   },
65336	//   "response": {
65337	//     "$ref": "Operation"
65338	//   },
65339	//   "scopes": [
65340	//     "https://www.googleapis.com/auth/cloud-platform",
65341	//     "https://www.googleapis.com/auth/compute"
65342	//   ]
65343	// }
65344
65345}
65346
65347// method id "compute.licenseCodes.get":
65348
65349type LicenseCodesGetCall struct {
65350	s            *Service
65351	project      string
65352	licenseCode  string
65353	urlParams_   gensupport.URLParams
65354	ifNoneMatch_ string
65355	ctx_         context.Context
65356	header_      http.Header
65357}
65358
65359// Get: Return a specified license code. License codes are mirrored
65360// across all projects that have permissions to read the License Code.
65361func (r *LicenseCodesService) Get(project string, licenseCode string) *LicenseCodesGetCall {
65362	c := &LicenseCodesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65363	c.project = project
65364	c.licenseCode = licenseCode
65365	return c
65366}
65367
65368// Fields allows partial responses to be retrieved. See
65369// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65370// for more information.
65371func (c *LicenseCodesGetCall) Fields(s ...googleapi.Field) *LicenseCodesGetCall {
65372	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65373	return c
65374}
65375
65376// IfNoneMatch sets the optional parameter which makes the operation
65377// fail if the object's ETag matches the given value. This is useful for
65378// getting updates only after the object has changed since the last
65379// request. Use googleapi.IsNotModified to check whether the response
65380// error from Do is the result of In-None-Match.
65381func (c *LicenseCodesGetCall) IfNoneMatch(entityTag string) *LicenseCodesGetCall {
65382	c.ifNoneMatch_ = entityTag
65383	return c
65384}
65385
65386// Context sets the context to be used in this call's Do method. Any
65387// pending HTTP request will be aborted if the provided context is
65388// canceled.
65389func (c *LicenseCodesGetCall) Context(ctx context.Context) *LicenseCodesGetCall {
65390	c.ctx_ = ctx
65391	return c
65392}
65393
65394// Header returns an http.Header that can be modified by the caller to
65395// add HTTP headers to the request.
65396func (c *LicenseCodesGetCall) Header() http.Header {
65397	if c.header_ == nil {
65398		c.header_ = make(http.Header)
65399	}
65400	return c.header_
65401}
65402
65403func (c *LicenseCodesGetCall) doRequest(alt string) (*http.Response, error) {
65404	reqHeaders := make(http.Header)
65405	for k, v := range c.header_ {
65406		reqHeaders[k] = v
65407	}
65408	reqHeaders.Set("User-Agent", c.s.userAgent())
65409	if c.ifNoneMatch_ != "" {
65410		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65411	}
65412	var body io.Reader = nil
65413	c.urlParams_.Set("alt", alt)
65414	c.urlParams_.Set("prettyPrint", "false")
65415	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenseCodes/{licenseCode}")
65416	urls += "?" + c.urlParams_.Encode()
65417	req, err := http.NewRequest("GET", urls, body)
65418	if err != nil {
65419		return nil, err
65420	}
65421	req.Header = reqHeaders
65422	googleapi.Expand(req.URL, map[string]string{
65423		"project":     c.project,
65424		"licenseCode": c.licenseCode,
65425	})
65426	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65427}
65428
65429// Do executes the "compute.licenseCodes.get" call.
65430// Exactly one of *LicenseCode or error will be non-nil. Any non-2xx
65431// status code is an error. Response headers are in either
65432// *LicenseCode.ServerResponse.Header or (if a response was returned at
65433// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65434// to check whether the returned error was because
65435// http.StatusNotModified was returned.
65436func (c *LicenseCodesGetCall) Do(opts ...googleapi.CallOption) (*LicenseCode, error) {
65437	gensupport.SetOptions(c.urlParams_, opts...)
65438	res, err := c.doRequest("json")
65439	if res != nil && res.StatusCode == http.StatusNotModified {
65440		if res.Body != nil {
65441			res.Body.Close()
65442		}
65443		return nil, &googleapi.Error{
65444			Code:   res.StatusCode,
65445			Header: res.Header,
65446		}
65447	}
65448	if err != nil {
65449		return nil, err
65450	}
65451	defer googleapi.CloseBody(res)
65452	if err := googleapi.CheckResponse(res); err != nil {
65453		return nil, err
65454	}
65455	ret := &LicenseCode{
65456		ServerResponse: googleapi.ServerResponse{
65457			Header:         res.Header,
65458			HTTPStatusCode: res.StatusCode,
65459		},
65460	}
65461	target := &ret
65462	if err := gensupport.DecodeResponse(target, res); err != nil {
65463		return nil, err
65464	}
65465	return ret, nil
65466	// {
65467	//   "description": "Return a specified license code. License codes are mirrored across all projects that have permissions to read the License Code.",
65468	//   "httpMethod": "GET",
65469	//   "id": "compute.licenseCodes.get",
65470	//   "parameterOrder": [
65471	//     "project",
65472	//     "licenseCode"
65473	//   ],
65474	//   "parameters": {
65475	//     "licenseCode": {
65476	//       "description": "Number corresponding to the License code resource to return.",
65477	//       "location": "path",
65478	//       "pattern": "[0-9]{0,61}?",
65479	//       "required": true,
65480	//       "type": "string"
65481	//     },
65482	//     "project": {
65483	//       "description": "Project ID for this request.",
65484	//       "location": "path",
65485	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65486	//       "required": true,
65487	//       "type": "string"
65488	//     }
65489	//   },
65490	//   "path": "{project}/global/licenseCodes/{licenseCode}",
65491	//   "response": {
65492	//     "$ref": "LicenseCode"
65493	//   },
65494	//   "scopes": [
65495	//     "https://www.googleapis.com/auth/cloud-platform",
65496	//     "https://www.googleapis.com/auth/compute",
65497	//     "https://www.googleapis.com/auth/compute.readonly"
65498	//   ]
65499	// }
65500
65501}
65502
65503// method id "compute.licenseCodes.testIamPermissions":
65504
65505type LicenseCodesTestIamPermissionsCall struct {
65506	s                      *Service
65507	project                string
65508	resource               string
65509	testpermissionsrequest *TestPermissionsRequest
65510	urlParams_             gensupport.URLParams
65511	ctx_                   context.Context
65512	header_                http.Header
65513}
65514
65515// TestIamPermissions: Returns permissions that a caller has on the
65516// specified resource.
65517func (r *LicenseCodesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicenseCodesTestIamPermissionsCall {
65518	c := &LicenseCodesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65519	c.project = project
65520	c.resource = resource
65521	c.testpermissionsrequest = testpermissionsrequest
65522	return c
65523}
65524
65525// Fields allows partial responses to be retrieved. See
65526// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65527// for more information.
65528func (c *LicenseCodesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicenseCodesTestIamPermissionsCall {
65529	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65530	return c
65531}
65532
65533// Context sets the context to be used in this call's Do method. Any
65534// pending HTTP request will be aborted if the provided context is
65535// canceled.
65536func (c *LicenseCodesTestIamPermissionsCall) Context(ctx context.Context) *LicenseCodesTestIamPermissionsCall {
65537	c.ctx_ = ctx
65538	return c
65539}
65540
65541// Header returns an http.Header that can be modified by the caller to
65542// add HTTP headers to the request.
65543func (c *LicenseCodesTestIamPermissionsCall) Header() http.Header {
65544	if c.header_ == nil {
65545		c.header_ = make(http.Header)
65546	}
65547	return c.header_
65548}
65549
65550func (c *LicenseCodesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
65551	reqHeaders := make(http.Header)
65552	for k, v := range c.header_ {
65553		reqHeaders[k] = v
65554	}
65555	reqHeaders.Set("User-Agent", c.s.userAgent())
65556	var body io.Reader = nil
65557	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
65558	if err != nil {
65559		return nil, err
65560	}
65561	reqHeaders.Set("Content-Type", "application/json")
65562	c.urlParams_.Set("alt", alt)
65563	c.urlParams_.Set("prettyPrint", "false")
65564	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenseCodes/{resource}/testIamPermissions")
65565	urls += "?" + c.urlParams_.Encode()
65566	req, err := http.NewRequest("POST", urls, body)
65567	if err != nil {
65568		return nil, err
65569	}
65570	req.Header = reqHeaders
65571	googleapi.Expand(req.URL, map[string]string{
65572		"project":  c.project,
65573		"resource": c.resource,
65574	})
65575	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65576}
65577
65578// Do executes the "compute.licenseCodes.testIamPermissions" call.
65579// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
65580// non-2xx status code is an error. Response headers are in either
65581// *TestPermissionsResponse.ServerResponse.Header or (if a response was
65582// returned at all) in error.(*googleapi.Error).Header. Use
65583// googleapi.IsNotModified to check whether the returned error was
65584// because http.StatusNotModified was returned.
65585func (c *LicenseCodesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
65586	gensupport.SetOptions(c.urlParams_, opts...)
65587	res, err := c.doRequest("json")
65588	if res != nil && res.StatusCode == http.StatusNotModified {
65589		if res.Body != nil {
65590			res.Body.Close()
65591		}
65592		return nil, &googleapi.Error{
65593			Code:   res.StatusCode,
65594			Header: res.Header,
65595		}
65596	}
65597	if err != nil {
65598		return nil, err
65599	}
65600	defer googleapi.CloseBody(res)
65601	if err := googleapi.CheckResponse(res); err != nil {
65602		return nil, err
65603	}
65604	ret := &TestPermissionsResponse{
65605		ServerResponse: googleapi.ServerResponse{
65606			Header:         res.Header,
65607			HTTPStatusCode: res.StatusCode,
65608		},
65609	}
65610	target := &ret
65611	if err := gensupport.DecodeResponse(target, res); err != nil {
65612		return nil, err
65613	}
65614	return ret, nil
65615	// {
65616	//   "description": "Returns permissions that a caller has on the specified resource.",
65617	//   "httpMethod": "POST",
65618	//   "id": "compute.licenseCodes.testIamPermissions",
65619	//   "parameterOrder": [
65620	//     "project",
65621	//     "resource"
65622	//   ],
65623	//   "parameters": {
65624	//     "project": {
65625	//       "description": "Project ID for this request.",
65626	//       "location": "path",
65627	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65628	//       "required": true,
65629	//       "type": "string"
65630	//     },
65631	//     "resource": {
65632	//       "description": "Name or id of the resource for this request.",
65633	//       "location": "path",
65634	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65635	//       "required": true,
65636	//       "type": "string"
65637	//     }
65638	//   },
65639	//   "path": "{project}/global/licenseCodes/{resource}/testIamPermissions",
65640	//   "request": {
65641	//     "$ref": "TestPermissionsRequest"
65642	//   },
65643	//   "response": {
65644	//     "$ref": "TestPermissionsResponse"
65645	//   },
65646	//   "scopes": [
65647	//     "https://www.googleapis.com/auth/cloud-platform",
65648	//     "https://www.googleapis.com/auth/compute",
65649	//     "https://www.googleapis.com/auth/compute.readonly"
65650	//   ]
65651	// }
65652
65653}
65654
65655// method id "compute.licenses.delete":
65656
65657type LicensesDeleteCall struct {
65658	s          *Service
65659	project    string
65660	license    string
65661	urlParams_ gensupport.URLParams
65662	ctx_       context.Context
65663	header_    http.Header
65664}
65665
65666// Delete: Deletes the specified license.
65667func (r *LicensesService) Delete(project string, license string) *LicensesDeleteCall {
65668	c := &LicensesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65669	c.project = project
65670	c.license = license
65671	return c
65672}
65673
65674// RequestId sets the optional parameter "requestId": An optional
65675// request ID to identify requests. Specify a unique request ID so that
65676// if you must retry your request, the server will know to ignore the
65677// request if it has already been completed.
65678//
65679// For example, consider a situation where you make an initial request
65680// and the request times out. If you make the request again with the
65681// same request ID, the server can check if original operation with the
65682// same request ID was received, and if so, will ignore the second
65683// request. This prevents clients from accidentally creating duplicate
65684// commitments.
65685//
65686// The request ID must be a valid UUID with the exception that zero UUID
65687// is not supported (00000000-0000-0000-0000-000000000000).
65688func (c *LicensesDeleteCall) RequestId(requestId string) *LicensesDeleteCall {
65689	c.urlParams_.Set("requestId", requestId)
65690	return c
65691}
65692
65693// Fields allows partial responses to be retrieved. See
65694// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65695// for more information.
65696func (c *LicensesDeleteCall) Fields(s ...googleapi.Field) *LicensesDeleteCall {
65697	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65698	return c
65699}
65700
65701// Context sets the context to be used in this call's Do method. Any
65702// pending HTTP request will be aborted if the provided context is
65703// canceled.
65704func (c *LicensesDeleteCall) Context(ctx context.Context) *LicensesDeleteCall {
65705	c.ctx_ = ctx
65706	return c
65707}
65708
65709// Header returns an http.Header that can be modified by the caller to
65710// add HTTP headers to the request.
65711func (c *LicensesDeleteCall) Header() http.Header {
65712	if c.header_ == nil {
65713		c.header_ = make(http.Header)
65714	}
65715	return c.header_
65716}
65717
65718func (c *LicensesDeleteCall) doRequest(alt string) (*http.Response, error) {
65719	reqHeaders := make(http.Header)
65720	for k, v := range c.header_ {
65721		reqHeaders[k] = v
65722	}
65723	reqHeaders.Set("User-Agent", c.s.userAgent())
65724	var body io.Reader = nil
65725	c.urlParams_.Set("alt", alt)
65726	c.urlParams_.Set("prettyPrint", "false")
65727	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{license}")
65728	urls += "?" + c.urlParams_.Encode()
65729	req, err := http.NewRequest("DELETE", urls, body)
65730	if err != nil {
65731		return nil, err
65732	}
65733	req.Header = reqHeaders
65734	googleapi.Expand(req.URL, map[string]string{
65735		"project": c.project,
65736		"license": c.license,
65737	})
65738	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65739}
65740
65741// Do executes the "compute.licenses.delete" call.
65742// Exactly one of *Operation or error will be non-nil. Any non-2xx
65743// status code is an error. Response headers are in either
65744// *Operation.ServerResponse.Header or (if a response was returned at
65745// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65746// to check whether the returned error was because
65747// http.StatusNotModified was returned.
65748func (c *LicensesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65749	gensupport.SetOptions(c.urlParams_, opts...)
65750	res, err := c.doRequest("json")
65751	if res != nil && res.StatusCode == http.StatusNotModified {
65752		if res.Body != nil {
65753			res.Body.Close()
65754		}
65755		return nil, &googleapi.Error{
65756			Code:   res.StatusCode,
65757			Header: res.Header,
65758		}
65759	}
65760	if err != nil {
65761		return nil, err
65762	}
65763	defer googleapi.CloseBody(res)
65764	if err := googleapi.CheckResponse(res); err != nil {
65765		return nil, err
65766	}
65767	ret := &Operation{
65768		ServerResponse: googleapi.ServerResponse{
65769			Header:         res.Header,
65770			HTTPStatusCode: res.StatusCode,
65771		},
65772	}
65773	target := &ret
65774	if err := gensupport.DecodeResponse(target, res); err != nil {
65775		return nil, err
65776	}
65777	return ret, nil
65778	// {
65779	//   "description": "Deletes the specified license.",
65780	//   "httpMethod": "DELETE",
65781	//   "id": "compute.licenses.delete",
65782	//   "parameterOrder": [
65783	//     "project",
65784	//     "license"
65785	//   ],
65786	//   "parameters": {
65787	//     "license": {
65788	//       "description": "Name of the license resource to delete.",
65789	//       "location": "path",
65790	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65791	//       "required": true,
65792	//       "type": "string"
65793	//     },
65794	//     "project": {
65795	//       "description": "Project ID for this request.",
65796	//       "location": "path",
65797	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65798	//       "required": true,
65799	//       "type": "string"
65800	//     },
65801	//     "requestId": {
65802	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65803	//       "location": "query",
65804	//       "type": "string"
65805	//     }
65806	//   },
65807	//   "path": "{project}/global/licenses/{license}",
65808	//   "response": {
65809	//     "$ref": "Operation"
65810	//   },
65811	//   "scopes": [
65812	//     "https://www.googleapis.com/auth/cloud-platform",
65813	//     "https://www.googleapis.com/auth/compute"
65814	//   ]
65815	// }
65816
65817}
65818
65819// method id "compute.licenses.get":
65820
65821type LicensesGetCall struct {
65822	s            *Service
65823	project      string
65824	license      string
65825	urlParams_   gensupport.URLParams
65826	ifNoneMatch_ string
65827	ctx_         context.Context
65828	header_      http.Header
65829}
65830
65831// Get: Returns the specified License resource.
65832// For details, see https://cloud.google.com/compute/docs/reference/latest/licenses/get
65833func (r *LicensesService) Get(project string, license string) *LicensesGetCall {
65834	c := &LicensesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65835	c.project = project
65836	c.license = license
65837	return c
65838}
65839
65840// Fields allows partial responses to be retrieved. See
65841// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65842// for more information.
65843func (c *LicensesGetCall) Fields(s ...googleapi.Field) *LicensesGetCall {
65844	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65845	return c
65846}
65847
65848// IfNoneMatch sets the optional parameter which makes the operation
65849// fail if the object's ETag matches the given value. This is useful for
65850// getting updates only after the object has changed since the last
65851// request. Use googleapi.IsNotModified to check whether the response
65852// error from Do is the result of In-None-Match.
65853func (c *LicensesGetCall) IfNoneMatch(entityTag string) *LicensesGetCall {
65854	c.ifNoneMatch_ = entityTag
65855	return c
65856}
65857
65858// Context sets the context to be used in this call's Do method. Any
65859// pending HTTP request will be aborted if the provided context is
65860// canceled.
65861func (c *LicensesGetCall) Context(ctx context.Context) *LicensesGetCall {
65862	c.ctx_ = ctx
65863	return c
65864}
65865
65866// Header returns an http.Header that can be modified by the caller to
65867// add HTTP headers to the request.
65868func (c *LicensesGetCall) Header() http.Header {
65869	if c.header_ == nil {
65870		c.header_ = make(http.Header)
65871	}
65872	return c.header_
65873}
65874
65875func (c *LicensesGetCall) doRequest(alt string) (*http.Response, error) {
65876	reqHeaders := make(http.Header)
65877	for k, v := range c.header_ {
65878		reqHeaders[k] = v
65879	}
65880	reqHeaders.Set("User-Agent", c.s.userAgent())
65881	if c.ifNoneMatch_ != "" {
65882		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65883	}
65884	var body io.Reader = nil
65885	c.urlParams_.Set("alt", alt)
65886	c.urlParams_.Set("prettyPrint", "false")
65887	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{license}")
65888	urls += "?" + c.urlParams_.Encode()
65889	req, err := http.NewRequest("GET", urls, body)
65890	if err != nil {
65891		return nil, err
65892	}
65893	req.Header = reqHeaders
65894	googleapi.Expand(req.URL, map[string]string{
65895		"project": c.project,
65896		"license": c.license,
65897	})
65898	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65899}
65900
65901// Do executes the "compute.licenses.get" call.
65902// Exactly one of *License or error will be non-nil. Any non-2xx status
65903// code is an error. Response headers are in either
65904// *License.ServerResponse.Header or (if a response was returned at all)
65905// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
65906// check whether the returned error was because http.StatusNotModified
65907// was returned.
65908func (c *LicensesGetCall) Do(opts ...googleapi.CallOption) (*License, error) {
65909	gensupport.SetOptions(c.urlParams_, opts...)
65910	res, err := c.doRequest("json")
65911	if res != nil && res.StatusCode == http.StatusNotModified {
65912		if res.Body != nil {
65913			res.Body.Close()
65914		}
65915		return nil, &googleapi.Error{
65916			Code:   res.StatusCode,
65917			Header: res.Header,
65918		}
65919	}
65920	if err != nil {
65921		return nil, err
65922	}
65923	defer googleapi.CloseBody(res)
65924	if err := googleapi.CheckResponse(res); err != nil {
65925		return nil, err
65926	}
65927	ret := &License{
65928		ServerResponse: googleapi.ServerResponse{
65929			Header:         res.Header,
65930			HTTPStatusCode: res.StatusCode,
65931		},
65932	}
65933	target := &ret
65934	if err := gensupport.DecodeResponse(target, res); err != nil {
65935		return nil, err
65936	}
65937	return ret, nil
65938	// {
65939	//   "description": "Returns the specified License resource.",
65940	//   "httpMethod": "GET",
65941	//   "id": "compute.licenses.get",
65942	//   "parameterOrder": [
65943	//     "project",
65944	//     "license"
65945	//   ],
65946	//   "parameters": {
65947	//     "license": {
65948	//       "description": "Name of the License resource to return.",
65949	//       "location": "path",
65950	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65951	//       "required": true,
65952	//       "type": "string"
65953	//     },
65954	//     "project": {
65955	//       "description": "Project ID for this request.",
65956	//       "location": "path",
65957	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65958	//       "required": true,
65959	//       "type": "string"
65960	//     }
65961	//   },
65962	//   "path": "{project}/global/licenses/{license}",
65963	//   "response": {
65964	//     "$ref": "License"
65965	//   },
65966	//   "scopes": [
65967	//     "https://www.googleapis.com/auth/cloud-platform",
65968	//     "https://www.googleapis.com/auth/compute",
65969	//     "https://www.googleapis.com/auth/compute.readonly"
65970	//   ]
65971	// }
65972
65973}
65974
65975// method id "compute.licenses.getIamPolicy":
65976
65977type LicensesGetIamPolicyCall struct {
65978	s            *Service
65979	project      string
65980	resource     string
65981	urlParams_   gensupport.URLParams
65982	ifNoneMatch_ string
65983	ctx_         context.Context
65984	header_      http.Header
65985}
65986
65987// GetIamPolicy: Gets the access control policy for a resource. May be
65988// empty if no such policy or resource exists.
65989func (r *LicensesService) GetIamPolicy(project string, resource string) *LicensesGetIamPolicyCall {
65990	c := &LicensesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65991	c.project = project
65992	c.resource = resource
65993	return c
65994}
65995
65996// Fields allows partial responses to be retrieved. See
65997// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65998// for more information.
65999func (c *LicensesGetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesGetIamPolicyCall {
66000	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66001	return c
66002}
66003
66004// IfNoneMatch sets the optional parameter which makes the operation
66005// fail if the object's ETag matches the given value. This is useful for
66006// getting updates only after the object has changed since the last
66007// request. Use googleapi.IsNotModified to check whether the response
66008// error from Do is the result of In-None-Match.
66009func (c *LicensesGetIamPolicyCall) IfNoneMatch(entityTag string) *LicensesGetIamPolicyCall {
66010	c.ifNoneMatch_ = entityTag
66011	return c
66012}
66013
66014// Context sets the context to be used in this call's Do method. Any
66015// pending HTTP request will be aborted if the provided context is
66016// canceled.
66017func (c *LicensesGetIamPolicyCall) Context(ctx context.Context) *LicensesGetIamPolicyCall {
66018	c.ctx_ = ctx
66019	return c
66020}
66021
66022// Header returns an http.Header that can be modified by the caller to
66023// add HTTP headers to the request.
66024func (c *LicensesGetIamPolicyCall) Header() http.Header {
66025	if c.header_ == nil {
66026		c.header_ = make(http.Header)
66027	}
66028	return c.header_
66029}
66030
66031func (c *LicensesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
66032	reqHeaders := make(http.Header)
66033	for k, v := range c.header_ {
66034		reqHeaders[k] = v
66035	}
66036	reqHeaders.Set("User-Agent", c.s.userAgent())
66037	if c.ifNoneMatch_ != "" {
66038		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66039	}
66040	var body io.Reader = nil
66041	c.urlParams_.Set("alt", alt)
66042	c.urlParams_.Set("prettyPrint", "false")
66043	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{resource}/getIamPolicy")
66044	urls += "?" + c.urlParams_.Encode()
66045	req, err := http.NewRequest("GET", urls, body)
66046	if err != nil {
66047		return nil, err
66048	}
66049	req.Header = reqHeaders
66050	googleapi.Expand(req.URL, map[string]string{
66051		"project":  c.project,
66052		"resource": c.resource,
66053	})
66054	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66055}
66056
66057// Do executes the "compute.licenses.getIamPolicy" call.
66058// Exactly one of *Policy or error will be non-nil. Any non-2xx status
66059// code is an error. Response headers are in either
66060// *Policy.ServerResponse.Header or (if a response was returned at all)
66061// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
66062// check whether the returned error was because http.StatusNotModified
66063// was returned.
66064func (c *LicensesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
66065	gensupport.SetOptions(c.urlParams_, opts...)
66066	res, err := c.doRequest("json")
66067	if res != nil && res.StatusCode == http.StatusNotModified {
66068		if res.Body != nil {
66069			res.Body.Close()
66070		}
66071		return nil, &googleapi.Error{
66072			Code:   res.StatusCode,
66073			Header: res.Header,
66074		}
66075	}
66076	if err != nil {
66077		return nil, err
66078	}
66079	defer googleapi.CloseBody(res)
66080	if err := googleapi.CheckResponse(res); err != nil {
66081		return nil, err
66082	}
66083	ret := &Policy{
66084		ServerResponse: googleapi.ServerResponse{
66085			Header:         res.Header,
66086			HTTPStatusCode: res.StatusCode,
66087		},
66088	}
66089	target := &ret
66090	if err := gensupport.DecodeResponse(target, res); err != nil {
66091		return nil, err
66092	}
66093	return ret, nil
66094	// {
66095	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
66096	//   "httpMethod": "GET",
66097	//   "id": "compute.licenses.getIamPolicy",
66098	//   "parameterOrder": [
66099	//     "project",
66100	//     "resource"
66101	//   ],
66102	//   "parameters": {
66103	//     "project": {
66104	//       "description": "Project ID for this request.",
66105	//       "location": "path",
66106	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66107	//       "required": true,
66108	//       "type": "string"
66109	//     },
66110	//     "resource": {
66111	//       "description": "Name or id of the resource for this request.",
66112	//       "location": "path",
66113	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66114	//       "required": true,
66115	//       "type": "string"
66116	//     }
66117	//   },
66118	//   "path": "{project}/global/licenses/{resource}/getIamPolicy",
66119	//   "response": {
66120	//     "$ref": "Policy"
66121	//   },
66122	//   "scopes": [
66123	//     "https://www.googleapis.com/auth/cloud-platform",
66124	//     "https://www.googleapis.com/auth/compute",
66125	//     "https://www.googleapis.com/auth/compute.readonly"
66126	//   ]
66127	// }
66128
66129}
66130
66131// method id "compute.licenses.insert":
66132
66133type LicensesInsertCall struct {
66134	s          *Service
66135	project    string
66136	license    *License
66137	urlParams_ gensupport.URLParams
66138	ctx_       context.Context
66139	header_    http.Header
66140}
66141
66142// Insert: Create a License resource in the specified project.
66143func (r *LicensesService) Insert(project string, license *License) *LicensesInsertCall {
66144	c := &LicensesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66145	c.project = project
66146	c.license = license
66147	return c
66148}
66149
66150// RequestId sets the optional parameter "requestId": An optional
66151// request ID to identify requests. Specify a unique request ID so that
66152// if you must retry your request, the server will know to ignore the
66153// request if it has already been completed.
66154//
66155// For example, consider a situation where you make an initial request
66156// and the request times out. If you make the request again with the
66157// same request ID, the server can check if original operation with the
66158// same request ID was received, and if so, will ignore the second
66159// request. This prevents clients from accidentally creating duplicate
66160// commitments.
66161//
66162// The request ID must be a valid UUID with the exception that zero UUID
66163// is not supported (00000000-0000-0000-0000-000000000000).
66164func (c *LicensesInsertCall) RequestId(requestId string) *LicensesInsertCall {
66165	c.urlParams_.Set("requestId", requestId)
66166	return c
66167}
66168
66169// Fields allows partial responses to be retrieved. See
66170// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66171// for more information.
66172func (c *LicensesInsertCall) Fields(s ...googleapi.Field) *LicensesInsertCall {
66173	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66174	return c
66175}
66176
66177// Context sets the context to be used in this call's Do method. Any
66178// pending HTTP request will be aborted if the provided context is
66179// canceled.
66180func (c *LicensesInsertCall) Context(ctx context.Context) *LicensesInsertCall {
66181	c.ctx_ = ctx
66182	return c
66183}
66184
66185// Header returns an http.Header that can be modified by the caller to
66186// add HTTP headers to the request.
66187func (c *LicensesInsertCall) Header() http.Header {
66188	if c.header_ == nil {
66189		c.header_ = make(http.Header)
66190	}
66191	return c.header_
66192}
66193
66194func (c *LicensesInsertCall) doRequest(alt string) (*http.Response, error) {
66195	reqHeaders := make(http.Header)
66196	for k, v := range c.header_ {
66197		reqHeaders[k] = v
66198	}
66199	reqHeaders.Set("User-Agent", c.s.userAgent())
66200	var body io.Reader = nil
66201	body, err := googleapi.WithoutDataWrapper.JSONReader(c.license)
66202	if err != nil {
66203		return nil, err
66204	}
66205	reqHeaders.Set("Content-Type", "application/json")
66206	c.urlParams_.Set("alt", alt)
66207	c.urlParams_.Set("prettyPrint", "false")
66208	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses")
66209	urls += "?" + c.urlParams_.Encode()
66210	req, err := http.NewRequest("POST", urls, body)
66211	if err != nil {
66212		return nil, err
66213	}
66214	req.Header = reqHeaders
66215	googleapi.Expand(req.URL, map[string]string{
66216		"project": c.project,
66217	})
66218	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66219}
66220
66221// Do executes the "compute.licenses.insert" call.
66222// Exactly one of *Operation or error will be non-nil. Any non-2xx
66223// status code is an error. Response headers are in either
66224// *Operation.ServerResponse.Header or (if a response was returned at
66225// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66226// to check whether the returned error was because
66227// http.StatusNotModified was returned.
66228func (c *LicensesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66229	gensupport.SetOptions(c.urlParams_, opts...)
66230	res, err := c.doRequest("json")
66231	if res != nil && res.StatusCode == http.StatusNotModified {
66232		if res.Body != nil {
66233			res.Body.Close()
66234		}
66235		return nil, &googleapi.Error{
66236			Code:   res.StatusCode,
66237			Header: res.Header,
66238		}
66239	}
66240	if err != nil {
66241		return nil, err
66242	}
66243	defer googleapi.CloseBody(res)
66244	if err := googleapi.CheckResponse(res); err != nil {
66245		return nil, err
66246	}
66247	ret := &Operation{
66248		ServerResponse: googleapi.ServerResponse{
66249			Header:         res.Header,
66250			HTTPStatusCode: res.StatusCode,
66251		},
66252	}
66253	target := &ret
66254	if err := gensupport.DecodeResponse(target, res); err != nil {
66255		return nil, err
66256	}
66257	return ret, nil
66258	// {
66259	//   "description": "Create a License resource in the specified project.",
66260	//   "httpMethod": "POST",
66261	//   "id": "compute.licenses.insert",
66262	//   "parameterOrder": [
66263	//     "project"
66264	//   ],
66265	//   "parameters": {
66266	//     "project": {
66267	//       "description": "Project ID for this request.",
66268	//       "location": "path",
66269	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66270	//       "required": true,
66271	//       "type": "string"
66272	//     },
66273	//     "requestId": {
66274	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66275	//       "location": "query",
66276	//       "type": "string"
66277	//     }
66278	//   },
66279	//   "path": "{project}/global/licenses",
66280	//   "request": {
66281	//     "$ref": "License"
66282	//   },
66283	//   "response": {
66284	//     "$ref": "Operation"
66285	//   },
66286	//   "scopes": [
66287	//     "https://www.googleapis.com/auth/cloud-platform",
66288	//     "https://www.googleapis.com/auth/compute",
66289	//     "https://www.googleapis.com/auth/devstorage.full_control",
66290	//     "https://www.googleapis.com/auth/devstorage.read_only",
66291	//     "https://www.googleapis.com/auth/devstorage.read_write"
66292	//   ]
66293	// }
66294
66295}
66296
66297// method id "compute.licenses.list":
66298
66299type LicensesListCall struct {
66300	s            *Service
66301	project      string
66302	urlParams_   gensupport.URLParams
66303	ifNoneMatch_ string
66304	ctx_         context.Context
66305	header_      http.Header
66306}
66307
66308// List: Retrieves the list of licenses available in the specified
66309// project. This method does not get any licenses that belong to other
66310// projects, including licenses attached to publicly-available images,
66311// like Debian 9. If you want to get a list of publicly-available
66312// licenses, use this method to make a request to the respective image
66313// project, such as debian-cloud or windows-cloud.
66314func (r *LicensesService) List(project string) *LicensesListCall {
66315	c := &LicensesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66316	c.project = project
66317	return c
66318}
66319
66320// Filter sets the optional parameter "filter": A filter expression that
66321// filters resources listed in the response. The expression must specify
66322// the field name, a comparison operator, and the value that you want to
66323// use for filtering. The value must be a string, a number, or a
66324// boolean. The comparison operator must be either =, !=, >, or <.
66325//
66326// For example, if you are filtering Compute Engine instances, you can
66327// exclude instances named example-instance by specifying name !=
66328// example-instance.
66329//
66330// You can also filter nested fields. For example, you could specify
66331// scheduling.automaticRestart = false to include instances only if they
66332// are not scheduled for automatic restarts. You can use filtering on
66333// nested fields to filter based on resource labels.
66334//
66335// To filter on multiple expressions, provide each separate expression
66336// within parentheses. For example, (scheduling.automaticRestart = true)
66337// (cpuPlatform = "Intel Skylake"). By default, each expression is an
66338// AND expression. However, you can include AND and OR expressions
66339// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
66340// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
66341// true).
66342func (c *LicensesListCall) Filter(filter string) *LicensesListCall {
66343	c.urlParams_.Set("filter", filter)
66344	return c
66345}
66346
66347// MaxResults sets the optional parameter "maxResults": The maximum
66348// number of results per page that should be returned. If the number of
66349// available results is larger than maxResults, Compute Engine returns a
66350// nextPageToken that can be used to get the next page of results in
66351// subsequent list requests. Acceptable values are 0 to 500, inclusive.
66352// (Default: 500)
66353func (c *LicensesListCall) MaxResults(maxResults int64) *LicensesListCall {
66354	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
66355	return c
66356}
66357
66358// OrderBy sets the optional parameter "orderBy": Sorts list results by
66359// a certain order. By default, results are returned in alphanumerical
66360// order based on the resource name.
66361//
66362// You can also sort results in descending order based on the creation
66363// timestamp using orderBy="creationTimestamp desc". This sorts results
66364// based on the creationTimestamp field in reverse chronological order
66365// (newest result first). Use this to sort resources like operations so
66366// that the newest operation is returned first.
66367//
66368// Currently, only sorting by name or creationTimestamp desc is
66369// supported.
66370func (c *LicensesListCall) OrderBy(orderBy string) *LicensesListCall {
66371	c.urlParams_.Set("orderBy", orderBy)
66372	return c
66373}
66374
66375// PageToken sets the optional parameter "pageToken": Specifies a page
66376// token to use. Set pageToken to the nextPageToken returned by a
66377// previous list request to get the next page of results.
66378func (c *LicensesListCall) PageToken(pageToken string) *LicensesListCall {
66379	c.urlParams_.Set("pageToken", pageToken)
66380	return c
66381}
66382
66383// Fields allows partial responses to be retrieved. See
66384// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66385// for more information.
66386func (c *LicensesListCall) Fields(s ...googleapi.Field) *LicensesListCall {
66387	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66388	return c
66389}
66390
66391// IfNoneMatch sets the optional parameter which makes the operation
66392// fail if the object's ETag matches the given value. This is useful for
66393// getting updates only after the object has changed since the last
66394// request. Use googleapi.IsNotModified to check whether the response
66395// error from Do is the result of In-None-Match.
66396func (c *LicensesListCall) IfNoneMatch(entityTag string) *LicensesListCall {
66397	c.ifNoneMatch_ = entityTag
66398	return c
66399}
66400
66401// Context sets the context to be used in this call's Do method. Any
66402// pending HTTP request will be aborted if the provided context is
66403// canceled.
66404func (c *LicensesListCall) Context(ctx context.Context) *LicensesListCall {
66405	c.ctx_ = ctx
66406	return c
66407}
66408
66409// Header returns an http.Header that can be modified by the caller to
66410// add HTTP headers to the request.
66411func (c *LicensesListCall) Header() http.Header {
66412	if c.header_ == nil {
66413		c.header_ = make(http.Header)
66414	}
66415	return c.header_
66416}
66417
66418func (c *LicensesListCall) doRequest(alt string) (*http.Response, error) {
66419	reqHeaders := make(http.Header)
66420	for k, v := range c.header_ {
66421		reqHeaders[k] = v
66422	}
66423	reqHeaders.Set("User-Agent", c.s.userAgent())
66424	if c.ifNoneMatch_ != "" {
66425		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66426	}
66427	var body io.Reader = nil
66428	c.urlParams_.Set("alt", alt)
66429	c.urlParams_.Set("prettyPrint", "false")
66430	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses")
66431	urls += "?" + c.urlParams_.Encode()
66432	req, err := http.NewRequest("GET", urls, body)
66433	if err != nil {
66434		return nil, err
66435	}
66436	req.Header = reqHeaders
66437	googleapi.Expand(req.URL, map[string]string{
66438		"project": c.project,
66439	})
66440	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66441}
66442
66443// Do executes the "compute.licenses.list" call.
66444// Exactly one of *LicensesListResponse or error will be non-nil. Any
66445// non-2xx status code is an error. Response headers are in either
66446// *LicensesListResponse.ServerResponse.Header or (if a response was
66447// returned at all) in error.(*googleapi.Error).Header. Use
66448// googleapi.IsNotModified to check whether the returned error was
66449// because http.StatusNotModified was returned.
66450func (c *LicensesListCall) Do(opts ...googleapi.CallOption) (*LicensesListResponse, error) {
66451	gensupport.SetOptions(c.urlParams_, opts...)
66452	res, err := c.doRequest("json")
66453	if res != nil && res.StatusCode == http.StatusNotModified {
66454		if res.Body != nil {
66455			res.Body.Close()
66456		}
66457		return nil, &googleapi.Error{
66458			Code:   res.StatusCode,
66459			Header: res.Header,
66460		}
66461	}
66462	if err != nil {
66463		return nil, err
66464	}
66465	defer googleapi.CloseBody(res)
66466	if err := googleapi.CheckResponse(res); err != nil {
66467		return nil, err
66468	}
66469	ret := &LicensesListResponse{
66470		ServerResponse: googleapi.ServerResponse{
66471			Header:         res.Header,
66472			HTTPStatusCode: res.StatusCode,
66473		},
66474	}
66475	target := &ret
66476	if err := gensupport.DecodeResponse(target, res); err != nil {
66477		return nil, err
66478	}
66479	return ret, nil
66480	// {
66481	//   "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.",
66482	//   "httpMethod": "GET",
66483	//   "id": "compute.licenses.list",
66484	//   "parameterOrder": [
66485	//     "project"
66486	//   ],
66487	//   "parameters": {
66488	//     "filter": {
66489	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
66490	//       "location": "query",
66491	//       "type": "string"
66492	//     },
66493	//     "maxResults": {
66494	//       "default": "500",
66495	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
66496	//       "format": "uint32",
66497	//       "location": "query",
66498	//       "minimum": "0",
66499	//       "type": "integer"
66500	//     },
66501	//     "orderBy": {
66502	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
66503	//       "location": "query",
66504	//       "type": "string"
66505	//     },
66506	//     "pageToken": {
66507	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
66508	//       "location": "query",
66509	//       "type": "string"
66510	//     },
66511	//     "project": {
66512	//       "description": "Project ID for this request.",
66513	//       "location": "path",
66514	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66515	//       "required": true,
66516	//       "type": "string"
66517	//     }
66518	//   },
66519	//   "path": "{project}/global/licenses",
66520	//   "response": {
66521	//     "$ref": "LicensesListResponse"
66522	//   },
66523	//   "scopes": [
66524	//     "https://www.googleapis.com/auth/cloud-platform",
66525	//     "https://www.googleapis.com/auth/compute",
66526	//     "https://www.googleapis.com/auth/compute.readonly"
66527	//   ]
66528	// }
66529
66530}
66531
66532// Pages invokes f for each page of results.
66533// A non-nil error returned from f will halt the iteration.
66534// The provided context supersedes any context provided to the Context method.
66535func (c *LicensesListCall) Pages(ctx context.Context, f func(*LicensesListResponse) error) error {
66536	c.ctx_ = ctx
66537	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
66538	for {
66539		x, err := c.Do()
66540		if err != nil {
66541			return err
66542		}
66543		if err := f(x); err != nil {
66544			return err
66545		}
66546		if x.NextPageToken == "" {
66547			return nil
66548		}
66549		c.PageToken(x.NextPageToken)
66550	}
66551}
66552
66553// method id "compute.licenses.setIamPolicy":
66554
66555type LicensesSetIamPolicyCall struct {
66556	s                      *Service
66557	project                string
66558	resource               string
66559	globalsetpolicyrequest *GlobalSetPolicyRequest
66560	urlParams_             gensupport.URLParams
66561	ctx_                   context.Context
66562	header_                http.Header
66563}
66564
66565// SetIamPolicy: Sets the access control policy on the specified
66566// resource. Replaces any existing policy.
66567func (r *LicensesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *LicensesSetIamPolicyCall {
66568	c := &LicensesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66569	c.project = project
66570	c.resource = resource
66571	c.globalsetpolicyrequest = globalsetpolicyrequest
66572	return c
66573}
66574
66575// Fields allows partial responses to be retrieved. See
66576// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66577// for more information.
66578func (c *LicensesSetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesSetIamPolicyCall {
66579	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66580	return c
66581}
66582
66583// Context sets the context to be used in this call's Do method. Any
66584// pending HTTP request will be aborted if the provided context is
66585// canceled.
66586func (c *LicensesSetIamPolicyCall) Context(ctx context.Context) *LicensesSetIamPolicyCall {
66587	c.ctx_ = ctx
66588	return c
66589}
66590
66591// Header returns an http.Header that can be modified by the caller to
66592// add HTTP headers to the request.
66593func (c *LicensesSetIamPolicyCall) Header() http.Header {
66594	if c.header_ == nil {
66595		c.header_ = make(http.Header)
66596	}
66597	return c.header_
66598}
66599
66600func (c *LicensesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
66601	reqHeaders := make(http.Header)
66602	for k, v := range c.header_ {
66603		reqHeaders[k] = v
66604	}
66605	reqHeaders.Set("User-Agent", c.s.userAgent())
66606	var body io.Reader = nil
66607	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
66608	if err != nil {
66609		return nil, err
66610	}
66611	reqHeaders.Set("Content-Type", "application/json")
66612	c.urlParams_.Set("alt", alt)
66613	c.urlParams_.Set("prettyPrint", "false")
66614	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{resource}/setIamPolicy")
66615	urls += "?" + c.urlParams_.Encode()
66616	req, err := http.NewRequest("POST", urls, body)
66617	if err != nil {
66618		return nil, err
66619	}
66620	req.Header = reqHeaders
66621	googleapi.Expand(req.URL, map[string]string{
66622		"project":  c.project,
66623		"resource": c.resource,
66624	})
66625	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66626}
66627
66628// Do executes the "compute.licenses.setIamPolicy" call.
66629// Exactly one of *Policy or error will be non-nil. Any non-2xx status
66630// code is an error. Response headers are in either
66631// *Policy.ServerResponse.Header or (if a response was returned at all)
66632// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
66633// check whether the returned error was because http.StatusNotModified
66634// was returned.
66635func (c *LicensesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
66636	gensupport.SetOptions(c.urlParams_, opts...)
66637	res, err := c.doRequest("json")
66638	if res != nil && res.StatusCode == http.StatusNotModified {
66639		if res.Body != nil {
66640			res.Body.Close()
66641		}
66642		return nil, &googleapi.Error{
66643			Code:   res.StatusCode,
66644			Header: res.Header,
66645		}
66646	}
66647	if err != nil {
66648		return nil, err
66649	}
66650	defer googleapi.CloseBody(res)
66651	if err := googleapi.CheckResponse(res); err != nil {
66652		return nil, err
66653	}
66654	ret := &Policy{
66655		ServerResponse: googleapi.ServerResponse{
66656			Header:         res.Header,
66657			HTTPStatusCode: res.StatusCode,
66658		},
66659	}
66660	target := &ret
66661	if err := gensupport.DecodeResponse(target, res); err != nil {
66662		return nil, err
66663	}
66664	return ret, nil
66665	// {
66666	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
66667	//   "httpMethod": "POST",
66668	//   "id": "compute.licenses.setIamPolicy",
66669	//   "parameterOrder": [
66670	//     "project",
66671	//     "resource"
66672	//   ],
66673	//   "parameters": {
66674	//     "project": {
66675	//       "description": "Project ID for this request.",
66676	//       "location": "path",
66677	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66678	//       "required": true,
66679	//       "type": "string"
66680	//     },
66681	//     "resource": {
66682	//       "description": "Name or id of the resource for this request.",
66683	//       "location": "path",
66684	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66685	//       "required": true,
66686	//       "type": "string"
66687	//     }
66688	//   },
66689	//   "path": "{project}/global/licenses/{resource}/setIamPolicy",
66690	//   "request": {
66691	//     "$ref": "GlobalSetPolicyRequest"
66692	//   },
66693	//   "response": {
66694	//     "$ref": "Policy"
66695	//   },
66696	//   "scopes": [
66697	//     "https://www.googleapis.com/auth/cloud-platform",
66698	//     "https://www.googleapis.com/auth/compute"
66699	//   ]
66700	// }
66701
66702}
66703
66704// method id "compute.licenses.testIamPermissions":
66705
66706type LicensesTestIamPermissionsCall struct {
66707	s                      *Service
66708	project                string
66709	resource               string
66710	testpermissionsrequest *TestPermissionsRequest
66711	urlParams_             gensupport.URLParams
66712	ctx_                   context.Context
66713	header_                http.Header
66714}
66715
66716// TestIamPermissions: Returns permissions that a caller has on the
66717// specified resource.
66718func (r *LicensesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicensesTestIamPermissionsCall {
66719	c := &LicensesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66720	c.project = project
66721	c.resource = resource
66722	c.testpermissionsrequest = testpermissionsrequest
66723	return c
66724}
66725
66726// Fields allows partial responses to be retrieved. See
66727// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66728// for more information.
66729func (c *LicensesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicensesTestIamPermissionsCall {
66730	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66731	return c
66732}
66733
66734// Context sets the context to be used in this call's Do method. Any
66735// pending HTTP request will be aborted if the provided context is
66736// canceled.
66737func (c *LicensesTestIamPermissionsCall) Context(ctx context.Context) *LicensesTestIamPermissionsCall {
66738	c.ctx_ = ctx
66739	return c
66740}
66741
66742// Header returns an http.Header that can be modified by the caller to
66743// add HTTP headers to the request.
66744func (c *LicensesTestIamPermissionsCall) Header() http.Header {
66745	if c.header_ == nil {
66746		c.header_ = make(http.Header)
66747	}
66748	return c.header_
66749}
66750
66751func (c *LicensesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
66752	reqHeaders := make(http.Header)
66753	for k, v := range c.header_ {
66754		reqHeaders[k] = v
66755	}
66756	reqHeaders.Set("User-Agent", c.s.userAgent())
66757	var body io.Reader = nil
66758	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
66759	if err != nil {
66760		return nil, err
66761	}
66762	reqHeaders.Set("Content-Type", "application/json")
66763	c.urlParams_.Set("alt", alt)
66764	c.urlParams_.Set("prettyPrint", "false")
66765	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{resource}/testIamPermissions")
66766	urls += "?" + c.urlParams_.Encode()
66767	req, err := http.NewRequest("POST", urls, body)
66768	if err != nil {
66769		return nil, err
66770	}
66771	req.Header = reqHeaders
66772	googleapi.Expand(req.URL, map[string]string{
66773		"project":  c.project,
66774		"resource": c.resource,
66775	})
66776	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66777}
66778
66779// Do executes the "compute.licenses.testIamPermissions" call.
66780// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
66781// non-2xx status code is an error. Response headers are in either
66782// *TestPermissionsResponse.ServerResponse.Header or (if a response was
66783// returned at all) in error.(*googleapi.Error).Header. Use
66784// googleapi.IsNotModified to check whether the returned error was
66785// because http.StatusNotModified was returned.
66786func (c *LicensesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
66787	gensupport.SetOptions(c.urlParams_, opts...)
66788	res, err := c.doRequest("json")
66789	if res != nil && res.StatusCode == http.StatusNotModified {
66790		if res.Body != nil {
66791			res.Body.Close()
66792		}
66793		return nil, &googleapi.Error{
66794			Code:   res.StatusCode,
66795			Header: res.Header,
66796		}
66797	}
66798	if err != nil {
66799		return nil, err
66800	}
66801	defer googleapi.CloseBody(res)
66802	if err := googleapi.CheckResponse(res); err != nil {
66803		return nil, err
66804	}
66805	ret := &TestPermissionsResponse{
66806		ServerResponse: googleapi.ServerResponse{
66807			Header:         res.Header,
66808			HTTPStatusCode: res.StatusCode,
66809		},
66810	}
66811	target := &ret
66812	if err := gensupport.DecodeResponse(target, res); err != nil {
66813		return nil, err
66814	}
66815	return ret, nil
66816	// {
66817	//   "description": "Returns permissions that a caller has on the specified resource.",
66818	//   "httpMethod": "POST",
66819	//   "id": "compute.licenses.testIamPermissions",
66820	//   "parameterOrder": [
66821	//     "project",
66822	//     "resource"
66823	//   ],
66824	//   "parameters": {
66825	//     "project": {
66826	//       "description": "Project ID for this request.",
66827	//       "location": "path",
66828	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66829	//       "required": true,
66830	//       "type": "string"
66831	//     },
66832	//     "resource": {
66833	//       "description": "Name or id of the resource for this request.",
66834	//       "location": "path",
66835	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66836	//       "required": true,
66837	//       "type": "string"
66838	//     }
66839	//   },
66840	//   "path": "{project}/global/licenses/{resource}/testIamPermissions",
66841	//   "request": {
66842	//     "$ref": "TestPermissionsRequest"
66843	//   },
66844	//   "response": {
66845	//     "$ref": "TestPermissionsResponse"
66846	//   },
66847	//   "scopes": [
66848	//     "https://www.googleapis.com/auth/cloud-platform",
66849	//     "https://www.googleapis.com/auth/compute",
66850	//     "https://www.googleapis.com/auth/compute.readonly"
66851	//   ]
66852	// }
66853
66854}
66855
66856// method id "compute.machineTypes.aggregatedList":
66857
66858type MachineTypesAggregatedListCall struct {
66859	s            *Service
66860	project      string
66861	urlParams_   gensupport.URLParams
66862	ifNoneMatch_ string
66863	ctx_         context.Context
66864	header_      http.Header
66865}
66866
66867// AggregatedList: Retrieves an aggregated list of machine types.
66868// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/aggregatedList
66869func (r *MachineTypesService) AggregatedList(project string) *MachineTypesAggregatedListCall {
66870	c := &MachineTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66871	c.project = project
66872	return c
66873}
66874
66875// Filter sets the optional parameter "filter": A filter expression that
66876// filters resources listed in the response. The expression must specify
66877// the field name, a comparison operator, and the value that you want to
66878// use for filtering. The value must be a string, a number, or a
66879// boolean. The comparison operator must be either =, !=, >, or <.
66880//
66881// For example, if you are filtering Compute Engine instances, you can
66882// exclude instances named example-instance by specifying name !=
66883// example-instance.
66884//
66885// You can also filter nested fields. For example, you could specify
66886// scheduling.automaticRestart = false to include instances only if they
66887// are not scheduled for automatic restarts. You can use filtering on
66888// nested fields to filter based on resource labels.
66889//
66890// To filter on multiple expressions, provide each separate expression
66891// within parentheses. For example, (scheduling.automaticRestart = true)
66892// (cpuPlatform = "Intel Skylake"). By default, each expression is an
66893// AND expression. However, you can include AND and OR expressions
66894// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
66895// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
66896// true).
66897func (c *MachineTypesAggregatedListCall) Filter(filter string) *MachineTypesAggregatedListCall {
66898	c.urlParams_.Set("filter", filter)
66899	return c
66900}
66901
66902// MaxResults sets the optional parameter "maxResults": The maximum
66903// number of results per page that should be returned. If the number of
66904// available results is larger than maxResults, Compute Engine returns a
66905// nextPageToken that can be used to get the next page of results in
66906// subsequent list requests. Acceptable values are 0 to 500, inclusive.
66907// (Default: 500)
66908func (c *MachineTypesAggregatedListCall) MaxResults(maxResults int64) *MachineTypesAggregatedListCall {
66909	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
66910	return c
66911}
66912
66913// OrderBy sets the optional parameter "orderBy": Sorts list results by
66914// a certain order. By default, results are returned in alphanumerical
66915// order based on the resource name.
66916//
66917// You can also sort results in descending order based on the creation
66918// timestamp using orderBy="creationTimestamp desc". This sorts results
66919// based on the creationTimestamp field in reverse chronological order
66920// (newest result first). Use this to sort resources like operations so
66921// that the newest operation is returned first.
66922//
66923// Currently, only sorting by name or creationTimestamp desc is
66924// supported.
66925func (c *MachineTypesAggregatedListCall) OrderBy(orderBy string) *MachineTypesAggregatedListCall {
66926	c.urlParams_.Set("orderBy", orderBy)
66927	return c
66928}
66929
66930// PageToken sets the optional parameter "pageToken": Specifies a page
66931// token to use. Set pageToken to the nextPageToken returned by a
66932// previous list request to get the next page of results.
66933func (c *MachineTypesAggregatedListCall) PageToken(pageToken string) *MachineTypesAggregatedListCall {
66934	c.urlParams_.Set("pageToken", pageToken)
66935	return c
66936}
66937
66938// Fields allows partial responses to be retrieved. See
66939// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66940// for more information.
66941func (c *MachineTypesAggregatedListCall) Fields(s ...googleapi.Field) *MachineTypesAggregatedListCall {
66942	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66943	return c
66944}
66945
66946// IfNoneMatch sets the optional parameter which makes the operation
66947// fail if the object's ETag matches the given value. This is useful for
66948// getting updates only after the object has changed since the last
66949// request. Use googleapi.IsNotModified to check whether the response
66950// error from Do is the result of In-None-Match.
66951func (c *MachineTypesAggregatedListCall) IfNoneMatch(entityTag string) *MachineTypesAggregatedListCall {
66952	c.ifNoneMatch_ = entityTag
66953	return c
66954}
66955
66956// Context sets the context to be used in this call's Do method. Any
66957// pending HTTP request will be aborted if the provided context is
66958// canceled.
66959func (c *MachineTypesAggregatedListCall) Context(ctx context.Context) *MachineTypesAggregatedListCall {
66960	c.ctx_ = ctx
66961	return c
66962}
66963
66964// Header returns an http.Header that can be modified by the caller to
66965// add HTTP headers to the request.
66966func (c *MachineTypesAggregatedListCall) Header() http.Header {
66967	if c.header_ == nil {
66968		c.header_ = make(http.Header)
66969	}
66970	return c.header_
66971}
66972
66973func (c *MachineTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
66974	reqHeaders := make(http.Header)
66975	for k, v := range c.header_ {
66976		reqHeaders[k] = v
66977	}
66978	reqHeaders.Set("User-Agent", c.s.userAgent())
66979	if c.ifNoneMatch_ != "" {
66980		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66981	}
66982	var body io.Reader = nil
66983	c.urlParams_.Set("alt", alt)
66984	c.urlParams_.Set("prettyPrint", "false")
66985	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/machineTypes")
66986	urls += "?" + c.urlParams_.Encode()
66987	req, err := http.NewRequest("GET", urls, body)
66988	if err != nil {
66989		return nil, err
66990	}
66991	req.Header = reqHeaders
66992	googleapi.Expand(req.URL, map[string]string{
66993		"project": c.project,
66994	})
66995	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66996}
66997
66998// Do executes the "compute.machineTypes.aggregatedList" call.
66999// Exactly one of *MachineTypeAggregatedList or error will be non-nil.
67000// Any non-2xx status code is an error. Response headers are in either
67001// *MachineTypeAggregatedList.ServerResponse.Header or (if a response
67002// was returned at all) in error.(*googleapi.Error).Header. Use
67003// googleapi.IsNotModified to check whether the returned error was
67004// because http.StatusNotModified was returned.
67005func (c *MachineTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*MachineTypeAggregatedList, error) {
67006	gensupport.SetOptions(c.urlParams_, opts...)
67007	res, err := c.doRequest("json")
67008	if res != nil && res.StatusCode == http.StatusNotModified {
67009		if res.Body != nil {
67010			res.Body.Close()
67011		}
67012		return nil, &googleapi.Error{
67013			Code:   res.StatusCode,
67014			Header: res.Header,
67015		}
67016	}
67017	if err != nil {
67018		return nil, err
67019	}
67020	defer googleapi.CloseBody(res)
67021	if err := googleapi.CheckResponse(res); err != nil {
67022		return nil, err
67023	}
67024	ret := &MachineTypeAggregatedList{
67025		ServerResponse: googleapi.ServerResponse{
67026			Header:         res.Header,
67027			HTTPStatusCode: res.StatusCode,
67028		},
67029	}
67030	target := &ret
67031	if err := gensupport.DecodeResponse(target, res); err != nil {
67032		return nil, err
67033	}
67034	return ret, nil
67035	// {
67036	//   "description": "Retrieves an aggregated list of machine types.",
67037	//   "httpMethod": "GET",
67038	//   "id": "compute.machineTypes.aggregatedList",
67039	//   "parameterOrder": [
67040	//     "project"
67041	//   ],
67042	//   "parameters": {
67043	//     "filter": {
67044	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
67045	//       "location": "query",
67046	//       "type": "string"
67047	//     },
67048	//     "maxResults": {
67049	//       "default": "500",
67050	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
67051	//       "format": "uint32",
67052	//       "location": "query",
67053	//       "minimum": "0",
67054	//       "type": "integer"
67055	//     },
67056	//     "orderBy": {
67057	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
67058	//       "location": "query",
67059	//       "type": "string"
67060	//     },
67061	//     "pageToken": {
67062	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
67063	//       "location": "query",
67064	//       "type": "string"
67065	//     },
67066	//     "project": {
67067	//       "description": "Project ID for this request.",
67068	//       "location": "path",
67069	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67070	//       "required": true,
67071	//       "type": "string"
67072	//     }
67073	//   },
67074	//   "path": "{project}/aggregated/machineTypes",
67075	//   "response": {
67076	//     "$ref": "MachineTypeAggregatedList"
67077	//   },
67078	//   "scopes": [
67079	//     "https://www.googleapis.com/auth/cloud-platform",
67080	//     "https://www.googleapis.com/auth/compute",
67081	//     "https://www.googleapis.com/auth/compute.readonly"
67082	//   ]
67083	// }
67084
67085}
67086
67087// Pages invokes f for each page of results.
67088// A non-nil error returned from f will halt the iteration.
67089// The provided context supersedes any context provided to the Context method.
67090func (c *MachineTypesAggregatedListCall) Pages(ctx context.Context, f func(*MachineTypeAggregatedList) error) error {
67091	c.ctx_ = ctx
67092	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
67093	for {
67094		x, err := c.Do()
67095		if err != nil {
67096			return err
67097		}
67098		if err := f(x); err != nil {
67099			return err
67100		}
67101		if x.NextPageToken == "" {
67102			return nil
67103		}
67104		c.PageToken(x.NextPageToken)
67105	}
67106}
67107
67108// method id "compute.machineTypes.get":
67109
67110type MachineTypesGetCall struct {
67111	s            *Service
67112	project      string
67113	zone         string
67114	machineType  string
67115	urlParams_   gensupport.URLParams
67116	ifNoneMatch_ string
67117	ctx_         context.Context
67118	header_      http.Header
67119}
67120
67121// Get: Returns the specified machine type. Gets a list of available
67122// machine types by making a list() request.
67123// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/get
67124func (r *MachineTypesService) Get(project string, zone string, machineType string) *MachineTypesGetCall {
67125	c := &MachineTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67126	c.project = project
67127	c.zone = zone
67128	c.machineType = machineType
67129	return c
67130}
67131
67132// Fields allows partial responses to be retrieved. See
67133// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67134// for more information.
67135func (c *MachineTypesGetCall) Fields(s ...googleapi.Field) *MachineTypesGetCall {
67136	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67137	return c
67138}
67139
67140// IfNoneMatch sets the optional parameter which makes the operation
67141// fail if the object's ETag matches the given value. This is useful for
67142// getting updates only after the object has changed since the last
67143// request. Use googleapi.IsNotModified to check whether the response
67144// error from Do is the result of In-None-Match.
67145func (c *MachineTypesGetCall) IfNoneMatch(entityTag string) *MachineTypesGetCall {
67146	c.ifNoneMatch_ = entityTag
67147	return c
67148}
67149
67150// Context sets the context to be used in this call's Do method. Any
67151// pending HTTP request will be aborted if the provided context is
67152// canceled.
67153func (c *MachineTypesGetCall) Context(ctx context.Context) *MachineTypesGetCall {
67154	c.ctx_ = ctx
67155	return c
67156}
67157
67158// Header returns an http.Header that can be modified by the caller to
67159// add HTTP headers to the request.
67160func (c *MachineTypesGetCall) Header() http.Header {
67161	if c.header_ == nil {
67162		c.header_ = make(http.Header)
67163	}
67164	return c.header_
67165}
67166
67167func (c *MachineTypesGetCall) doRequest(alt string) (*http.Response, error) {
67168	reqHeaders := make(http.Header)
67169	for k, v := range c.header_ {
67170		reqHeaders[k] = v
67171	}
67172	reqHeaders.Set("User-Agent", c.s.userAgent())
67173	if c.ifNoneMatch_ != "" {
67174		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67175	}
67176	var body io.Reader = nil
67177	c.urlParams_.Set("alt", alt)
67178	c.urlParams_.Set("prettyPrint", "false")
67179	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/machineTypes/{machineType}")
67180	urls += "?" + c.urlParams_.Encode()
67181	req, err := http.NewRequest("GET", urls, body)
67182	if err != nil {
67183		return nil, err
67184	}
67185	req.Header = reqHeaders
67186	googleapi.Expand(req.URL, map[string]string{
67187		"project":     c.project,
67188		"zone":        c.zone,
67189		"machineType": c.machineType,
67190	})
67191	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67192}
67193
67194// Do executes the "compute.machineTypes.get" call.
67195// Exactly one of *MachineType or error will be non-nil. Any non-2xx
67196// status code is an error. Response headers are in either
67197// *MachineType.ServerResponse.Header or (if a response was returned at
67198// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67199// to check whether the returned error was because
67200// http.StatusNotModified was returned.
67201func (c *MachineTypesGetCall) Do(opts ...googleapi.CallOption) (*MachineType, error) {
67202	gensupport.SetOptions(c.urlParams_, opts...)
67203	res, err := c.doRequest("json")
67204	if res != nil && res.StatusCode == http.StatusNotModified {
67205		if res.Body != nil {
67206			res.Body.Close()
67207		}
67208		return nil, &googleapi.Error{
67209			Code:   res.StatusCode,
67210			Header: res.Header,
67211		}
67212	}
67213	if err != nil {
67214		return nil, err
67215	}
67216	defer googleapi.CloseBody(res)
67217	if err := googleapi.CheckResponse(res); err != nil {
67218		return nil, err
67219	}
67220	ret := &MachineType{
67221		ServerResponse: googleapi.ServerResponse{
67222			Header:         res.Header,
67223			HTTPStatusCode: res.StatusCode,
67224		},
67225	}
67226	target := &ret
67227	if err := gensupport.DecodeResponse(target, res); err != nil {
67228		return nil, err
67229	}
67230	return ret, nil
67231	// {
67232	//   "description": "Returns the specified machine type. Gets a list of available machine types by making a list() request.",
67233	//   "httpMethod": "GET",
67234	//   "id": "compute.machineTypes.get",
67235	//   "parameterOrder": [
67236	//     "project",
67237	//     "zone",
67238	//     "machineType"
67239	//   ],
67240	//   "parameters": {
67241	//     "machineType": {
67242	//       "description": "Name of the machine type to return.",
67243	//       "location": "path",
67244	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67245	//       "required": true,
67246	//       "type": "string"
67247	//     },
67248	//     "project": {
67249	//       "description": "Project ID for this request.",
67250	//       "location": "path",
67251	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67252	//       "required": true,
67253	//       "type": "string"
67254	//     },
67255	//     "zone": {
67256	//       "description": "The name of the zone for this request.",
67257	//       "location": "path",
67258	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67259	//       "required": true,
67260	//       "type": "string"
67261	//     }
67262	//   },
67263	//   "path": "{project}/zones/{zone}/machineTypes/{machineType}",
67264	//   "response": {
67265	//     "$ref": "MachineType"
67266	//   },
67267	//   "scopes": [
67268	//     "https://www.googleapis.com/auth/cloud-platform",
67269	//     "https://www.googleapis.com/auth/compute",
67270	//     "https://www.googleapis.com/auth/compute.readonly"
67271	//   ]
67272	// }
67273
67274}
67275
67276// method id "compute.machineTypes.list":
67277
67278type MachineTypesListCall struct {
67279	s            *Service
67280	project      string
67281	zone         string
67282	urlParams_   gensupport.URLParams
67283	ifNoneMatch_ string
67284	ctx_         context.Context
67285	header_      http.Header
67286}
67287
67288// List: Retrieves a list of machine types available to the specified
67289// project.
67290// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/list
67291func (r *MachineTypesService) List(project string, zone string) *MachineTypesListCall {
67292	c := &MachineTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67293	c.project = project
67294	c.zone = zone
67295	return c
67296}
67297
67298// Filter sets the optional parameter "filter": A filter expression that
67299// filters resources listed in the response. The expression must specify
67300// the field name, a comparison operator, and the value that you want to
67301// use for filtering. The value must be a string, a number, or a
67302// boolean. The comparison operator must be either =, !=, >, or <.
67303//
67304// For example, if you are filtering Compute Engine instances, you can
67305// exclude instances named example-instance by specifying name !=
67306// example-instance.
67307//
67308// You can also filter nested fields. For example, you could specify
67309// scheduling.automaticRestart = false to include instances only if they
67310// are not scheduled for automatic restarts. You can use filtering on
67311// nested fields to filter based on resource labels.
67312//
67313// To filter on multiple expressions, provide each separate expression
67314// within parentheses. For example, (scheduling.automaticRestart = true)
67315// (cpuPlatform = "Intel Skylake"). By default, each expression is an
67316// AND expression. However, you can include AND and OR expressions
67317// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
67318// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
67319// true).
67320func (c *MachineTypesListCall) Filter(filter string) *MachineTypesListCall {
67321	c.urlParams_.Set("filter", filter)
67322	return c
67323}
67324
67325// MaxResults sets the optional parameter "maxResults": The maximum
67326// number of results per page that should be returned. If the number of
67327// available results is larger than maxResults, Compute Engine returns a
67328// nextPageToken that can be used to get the next page of results in
67329// subsequent list requests. Acceptable values are 0 to 500, inclusive.
67330// (Default: 500)
67331func (c *MachineTypesListCall) MaxResults(maxResults int64) *MachineTypesListCall {
67332	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
67333	return c
67334}
67335
67336// OrderBy sets the optional parameter "orderBy": Sorts list results by
67337// a certain order. By default, results are returned in alphanumerical
67338// order based on the resource name.
67339//
67340// You can also sort results in descending order based on the creation
67341// timestamp using orderBy="creationTimestamp desc". This sorts results
67342// based on the creationTimestamp field in reverse chronological order
67343// (newest result first). Use this to sort resources like operations so
67344// that the newest operation is returned first.
67345//
67346// Currently, only sorting by name or creationTimestamp desc is
67347// supported.
67348func (c *MachineTypesListCall) OrderBy(orderBy string) *MachineTypesListCall {
67349	c.urlParams_.Set("orderBy", orderBy)
67350	return c
67351}
67352
67353// PageToken sets the optional parameter "pageToken": Specifies a page
67354// token to use. Set pageToken to the nextPageToken returned by a
67355// previous list request to get the next page of results.
67356func (c *MachineTypesListCall) PageToken(pageToken string) *MachineTypesListCall {
67357	c.urlParams_.Set("pageToken", pageToken)
67358	return c
67359}
67360
67361// Fields allows partial responses to be retrieved. See
67362// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67363// for more information.
67364func (c *MachineTypesListCall) Fields(s ...googleapi.Field) *MachineTypesListCall {
67365	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67366	return c
67367}
67368
67369// IfNoneMatch sets the optional parameter which makes the operation
67370// fail if the object's ETag matches the given value. This is useful for
67371// getting updates only after the object has changed since the last
67372// request. Use googleapi.IsNotModified to check whether the response
67373// error from Do is the result of In-None-Match.
67374func (c *MachineTypesListCall) IfNoneMatch(entityTag string) *MachineTypesListCall {
67375	c.ifNoneMatch_ = entityTag
67376	return c
67377}
67378
67379// Context sets the context to be used in this call's Do method. Any
67380// pending HTTP request will be aborted if the provided context is
67381// canceled.
67382func (c *MachineTypesListCall) Context(ctx context.Context) *MachineTypesListCall {
67383	c.ctx_ = ctx
67384	return c
67385}
67386
67387// Header returns an http.Header that can be modified by the caller to
67388// add HTTP headers to the request.
67389func (c *MachineTypesListCall) Header() http.Header {
67390	if c.header_ == nil {
67391		c.header_ = make(http.Header)
67392	}
67393	return c.header_
67394}
67395
67396func (c *MachineTypesListCall) doRequest(alt string) (*http.Response, error) {
67397	reqHeaders := make(http.Header)
67398	for k, v := range c.header_ {
67399		reqHeaders[k] = v
67400	}
67401	reqHeaders.Set("User-Agent", c.s.userAgent())
67402	if c.ifNoneMatch_ != "" {
67403		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67404	}
67405	var body io.Reader = nil
67406	c.urlParams_.Set("alt", alt)
67407	c.urlParams_.Set("prettyPrint", "false")
67408	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/machineTypes")
67409	urls += "?" + c.urlParams_.Encode()
67410	req, err := http.NewRequest("GET", urls, body)
67411	if err != nil {
67412		return nil, err
67413	}
67414	req.Header = reqHeaders
67415	googleapi.Expand(req.URL, map[string]string{
67416		"project": c.project,
67417		"zone":    c.zone,
67418	})
67419	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67420}
67421
67422// Do executes the "compute.machineTypes.list" call.
67423// Exactly one of *MachineTypeList or error will be non-nil. Any non-2xx
67424// status code is an error. Response headers are in either
67425// *MachineTypeList.ServerResponse.Header or (if a response was returned
67426// at all) in error.(*googleapi.Error).Header. Use
67427// googleapi.IsNotModified to check whether the returned error was
67428// because http.StatusNotModified was returned.
67429func (c *MachineTypesListCall) Do(opts ...googleapi.CallOption) (*MachineTypeList, error) {
67430	gensupport.SetOptions(c.urlParams_, opts...)
67431	res, err := c.doRequest("json")
67432	if res != nil && res.StatusCode == http.StatusNotModified {
67433		if res.Body != nil {
67434			res.Body.Close()
67435		}
67436		return nil, &googleapi.Error{
67437			Code:   res.StatusCode,
67438			Header: res.Header,
67439		}
67440	}
67441	if err != nil {
67442		return nil, err
67443	}
67444	defer googleapi.CloseBody(res)
67445	if err := googleapi.CheckResponse(res); err != nil {
67446		return nil, err
67447	}
67448	ret := &MachineTypeList{
67449		ServerResponse: googleapi.ServerResponse{
67450			Header:         res.Header,
67451			HTTPStatusCode: res.StatusCode,
67452		},
67453	}
67454	target := &ret
67455	if err := gensupport.DecodeResponse(target, res); err != nil {
67456		return nil, err
67457	}
67458	return ret, nil
67459	// {
67460	//   "description": "Retrieves a list of machine types available to the specified project.",
67461	//   "httpMethod": "GET",
67462	//   "id": "compute.machineTypes.list",
67463	//   "parameterOrder": [
67464	//     "project",
67465	//     "zone"
67466	//   ],
67467	//   "parameters": {
67468	//     "filter": {
67469	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
67470	//       "location": "query",
67471	//       "type": "string"
67472	//     },
67473	//     "maxResults": {
67474	//       "default": "500",
67475	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
67476	//       "format": "uint32",
67477	//       "location": "query",
67478	//       "minimum": "0",
67479	//       "type": "integer"
67480	//     },
67481	//     "orderBy": {
67482	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
67483	//       "location": "query",
67484	//       "type": "string"
67485	//     },
67486	//     "pageToken": {
67487	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
67488	//       "location": "query",
67489	//       "type": "string"
67490	//     },
67491	//     "project": {
67492	//       "description": "Project ID for this request.",
67493	//       "location": "path",
67494	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67495	//       "required": true,
67496	//       "type": "string"
67497	//     },
67498	//     "zone": {
67499	//       "description": "The name of the zone for this request.",
67500	//       "location": "path",
67501	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67502	//       "required": true,
67503	//       "type": "string"
67504	//     }
67505	//   },
67506	//   "path": "{project}/zones/{zone}/machineTypes",
67507	//   "response": {
67508	//     "$ref": "MachineTypeList"
67509	//   },
67510	//   "scopes": [
67511	//     "https://www.googleapis.com/auth/cloud-platform",
67512	//     "https://www.googleapis.com/auth/compute",
67513	//     "https://www.googleapis.com/auth/compute.readonly"
67514	//   ]
67515	// }
67516
67517}
67518
67519// Pages invokes f for each page of results.
67520// A non-nil error returned from f will halt the iteration.
67521// The provided context supersedes any context provided to the Context method.
67522func (c *MachineTypesListCall) Pages(ctx context.Context, f func(*MachineTypeList) error) error {
67523	c.ctx_ = ctx
67524	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
67525	for {
67526		x, err := c.Do()
67527		if err != nil {
67528			return err
67529		}
67530		if err := f(x); err != nil {
67531			return err
67532		}
67533		if x.NextPageToken == "" {
67534			return nil
67535		}
67536		c.PageToken(x.NextPageToken)
67537	}
67538}
67539
67540// method id "compute.networkEndpointGroups.aggregatedList":
67541
67542type NetworkEndpointGroupsAggregatedListCall struct {
67543	s            *Service
67544	project      string
67545	urlParams_   gensupport.URLParams
67546	ifNoneMatch_ string
67547	ctx_         context.Context
67548	header_      http.Header
67549}
67550
67551// AggregatedList: Retrieves the list of network endpoint groups and
67552// sorts them by zone.
67553func (r *NetworkEndpointGroupsService) AggregatedList(project string) *NetworkEndpointGroupsAggregatedListCall {
67554	c := &NetworkEndpointGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67555	c.project = project
67556	return c
67557}
67558
67559// Filter sets the optional parameter "filter": A filter expression that
67560// filters resources listed in the response. The expression must specify
67561// the field name, a comparison operator, and the value that you want to
67562// use for filtering. The value must be a string, a number, or a
67563// boolean. The comparison operator must be either =, !=, >, or <.
67564//
67565// For example, if you are filtering Compute Engine instances, you can
67566// exclude instances named example-instance by specifying name !=
67567// example-instance.
67568//
67569// You can also filter nested fields. For example, you could specify
67570// scheduling.automaticRestart = false to include instances only if they
67571// are not scheduled for automatic restarts. You can use filtering on
67572// nested fields to filter based on resource labels.
67573//
67574// To filter on multiple expressions, provide each separate expression
67575// within parentheses. For example, (scheduling.automaticRestart = true)
67576// (cpuPlatform = "Intel Skylake"). By default, each expression is an
67577// AND expression. However, you can include AND and OR expressions
67578// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
67579// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
67580// true).
67581func (c *NetworkEndpointGroupsAggregatedListCall) Filter(filter string) *NetworkEndpointGroupsAggregatedListCall {
67582	c.urlParams_.Set("filter", filter)
67583	return c
67584}
67585
67586// MaxResults sets the optional parameter "maxResults": The maximum
67587// number of results per page that should be returned. If the number of
67588// available results is larger than maxResults, Compute Engine returns a
67589// nextPageToken that can be used to get the next page of results in
67590// subsequent list requests. Acceptable values are 0 to 500, inclusive.
67591// (Default: 500)
67592func (c *NetworkEndpointGroupsAggregatedListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsAggregatedListCall {
67593	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
67594	return c
67595}
67596
67597// OrderBy sets the optional parameter "orderBy": Sorts list results by
67598// a certain order. By default, results are returned in alphanumerical
67599// order based on the resource name.
67600//
67601// You can also sort results in descending order based on the creation
67602// timestamp using orderBy="creationTimestamp desc". This sorts results
67603// based on the creationTimestamp field in reverse chronological order
67604// (newest result first). Use this to sort resources like operations so
67605// that the newest operation is returned first.
67606//
67607// Currently, only sorting by name or creationTimestamp desc is
67608// supported.
67609func (c *NetworkEndpointGroupsAggregatedListCall) OrderBy(orderBy string) *NetworkEndpointGroupsAggregatedListCall {
67610	c.urlParams_.Set("orderBy", orderBy)
67611	return c
67612}
67613
67614// PageToken sets the optional parameter "pageToken": Specifies a page
67615// token to use. Set pageToken to the nextPageToken returned by a
67616// previous list request to get the next page of results.
67617func (c *NetworkEndpointGroupsAggregatedListCall) PageToken(pageToken string) *NetworkEndpointGroupsAggregatedListCall {
67618	c.urlParams_.Set("pageToken", pageToken)
67619	return c
67620}
67621
67622// Fields allows partial responses to be retrieved. See
67623// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67624// for more information.
67625func (c *NetworkEndpointGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAggregatedListCall {
67626	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67627	return c
67628}
67629
67630// IfNoneMatch sets the optional parameter which makes the operation
67631// fail if the object's ETag matches the given value. This is useful for
67632// getting updates only after the object has changed since the last
67633// request. Use googleapi.IsNotModified to check whether the response
67634// error from Do is the result of In-None-Match.
67635func (c *NetworkEndpointGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsAggregatedListCall {
67636	c.ifNoneMatch_ = entityTag
67637	return c
67638}
67639
67640// Context sets the context to be used in this call's Do method. Any
67641// pending HTTP request will be aborted if the provided context is
67642// canceled.
67643func (c *NetworkEndpointGroupsAggregatedListCall) Context(ctx context.Context) *NetworkEndpointGroupsAggregatedListCall {
67644	c.ctx_ = ctx
67645	return c
67646}
67647
67648// Header returns an http.Header that can be modified by the caller to
67649// add HTTP headers to the request.
67650func (c *NetworkEndpointGroupsAggregatedListCall) Header() http.Header {
67651	if c.header_ == nil {
67652		c.header_ = make(http.Header)
67653	}
67654	return c.header_
67655}
67656
67657func (c *NetworkEndpointGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
67658	reqHeaders := make(http.Header)
67659	for k, v := range c.header_ {
67660		reqHeaders[k] = v
67661	}
67662	reqHeaders.Set("User-Agent", c.s.userAgent())
67663	if c.ifNoneMatch_ != "" {
67664		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67665	}
67666	var body io.Reader = nil
67667	c.urlParams_.Set("alt", alt)
67668	c.urlParams_.Set("prettyPrint", "false")
67669	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/networkEndpointGroups")
67670	urls += "?" + c.urlParams_.Encode()
67671	req, err := http.NewRequest("GET", urls, body)
67672	if err != nil {
67673		return nil, err
67674	}
67675	req.Header = reqHeaders
67676	googleapi.Expand(req.URL, map[string]string{
67677		"project": c.project,
67678	})
67679	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67680}
67681
67682// Do executes the "compute.networkEndpointGroups.aggregatedList" call.
67683// Exactly one of *NetworkEndpointGroupAggregatedList or error will be
67684// non-nil. Any non-2xx status code is an error. Response headers are in
67685// either *NetworkEndpointGroupAggregatedList.ServerResponse.Header or
67686// (if a response was returned at all) in
67687// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
67688// whether the returned error was because http.StatusNotModified was
67689// returned.
67690func (c *NetworkEndpointGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupAggregatedList, error) {
67691	gensupport.SetOptions(c.urlParams_, opts...)
67692	res, err := c.doRequest("json")
67693	if res != nil && res.StatusCode == http.StatusNotModified {
67694		if res.Body != nil {
67695			res.Body.Close()
67696		}
67697		return nil, &googleapi.Error{
67698			Code:   res.StatusCode,
67699			Header: res.Header,
67700		}
67701	}
67702	if err != nil {
67703		return nil, err
67704	}
67705	defer googleapi.CloseBody(res)
67706	if err := googleapi.CheckResponse(res); err != nil {
67707		return nil, err
67708	}
67709	ret := &NetworkEndpointGroupAggregatedList{
67710		ServerResponse: googleapi.ServerResponse{
67711			Header:         res.Header,
67712			HTTPStatusCode: res.StatusCode,
67713		},
67714	}
67715	target := &ret
67716	if err := gensupport.DecodeResponse(target, res); err != nil {
67717		return nil, err
67718	}
67719	return ret, nil
67720	// {
67721	//   "description": "Retrieves the list of network endpoint groups and sorts them by zone.",
67722	//   "httpMethod": "GET",
67723	//   "id": "compute.networkEndpointGroups.aggregatedList",
67724	//   "parameterOrder": [
67725	//     "project"
67726	//   ],
67727	//   "parameters": {
67728	//     "filter": {
67729	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
67730	//       "location": "query",
67731	//       "type": "string"
67732	//     },
67733	//     "maxResults": {
67734	//       "default": "500",
67735	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
67736	//       "format": "uint32",
67737	//       "location": "query",
67738	//       "minimum": "0",
67739	//       "type": "integer"
67740	//     },
67741	//     "orderBy": {
67742	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
67743	//       "location": "query",
67744	//       "type": "string"
67745	//     },
67746	//     "pageToken": {
67747	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
67748	//       "location": "query",
67749	//       "type": "string"
67750	//     },
67751	//     "project": {
67752	//       "description": "Project ID for this request.",
67753	//       "location": "path",
67754	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67755	//       "required": true,
67756	//       "type": "string"
67757	//     }
67758	//   },
67759	//   "path": "{project}/aggregated/networkEndpointGroups",
67760	//   "response": {
67761	//     "$ref": "NetworkEndpointGroupAggregatedList"
67762	//   },
67763	//   "scopes": [
67764	//     "https://www.googleapis.com/auth/cloud-platform",
67765	//     "https://www.googleapis.com/auth/compute",
67766	//     "https://www.googleapis.com/auth/compute.readonly"
67767	//   ]
67768	// }
67769
67770}
67771
67772// Pages invokes f for each page of results.
67773// A non-nil error returned from f will halt the iteration.
67774// The provided context supersedes any context provided to the Context method.
67775func (c *NetworkEndpointGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupAggregatedList) error) error {
67776	c.ctx_ = ctx
67777	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
67778	for {
67779		x, err := c.Do()
67780		if err != nil {
67781			return err
67782		}
67783		if err := f(x); err != nil {
67784			return err
67785		}
67786		if x.NextPageToken == "" {
67787			return nil
67788		}
67789		c.PageToken(x.NextPageToken)
67790	}
67791}
67792
67793// method id "compute.networkEndpointGroups.attachNetworkEndpoints":
67794
67795type NetworkEndpointGroupsAttachNetworkEndpointsCall struct {
67796	s                                           *Service
67797	project                                     string
67798	zone                                        string
67799	networkEndpointGroup                        string
67800	networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest
67801	urlParams_                                  gensupport.URLParams
67802	ctx_                                        context.Context
67803	header_                                     http.Header
67804}
67805
67806// AttachNetworkEndpoints: Attach a list of network endpoints to the
67807// specified network endpoint group.
67808func (r *NetworkEndpointGroupsService) AttachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
67809	c := &NetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67810	c.project = project
67811	c.zone = zone
67812	c.networkEndpointGroup = networkEndpointGroup
67813	c.networkendpointgroupsattachendpointsrequest = networkendpointgroupsattachendpointsrequest
67814	return c
67815}
67816
67817// RequestId sets the optional parameter "requestId": An optional
67818// request ID to identify requests. Specify a unique request ID so that
67819// if you must retry your request, the server will know to ignore the
67820// request if it has already been completed.
67821//
67822// For example, consider a situation where you make an initial request
67823// and the request times out. If you make the request again with the
67824// same request ID, the server can check if original operation with the
67825// same request ID was received, and if so, will ignore the second
67826// request. This prevents clients from accidentally creating duplicate
67827// commitments.
67828//
67829// The request ID must be a valid UUID with the exception that zero UUID
67830// is not supported (00000000-0000-0000-0000-000000000000).
67831func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
67832	c.urlParams_.Set("requestId", requestId)
67833	return c
67834}
67835
67836// Fields allows partial responses to be retrieved. See
67837// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67838// for more information.
67839func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
67840	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67841	return c
67842}
67843
67844// Context sets the context to be used in this call's Do method. Any
67845// pending HTTP request will be aborted if the provided context is
67846// canceled.
67847func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
67848	c.ctx_ = ctx
67849	return c
67850}
67851
67852// Header returns an http.Header that can be modified by the caller to
67853// add HTTP headers to the request.
67854func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
67855	if c.header_ == nil {
67856		c.header_ = make(http.Header)
67857	}
67858	return c.header_
67859}
67860
67861func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
67862	reqHeaders := make(http.Header)
67863	for k, v := range c.header_ {
67864		reqHeaders[k] = v
67865	}
67866	reqHeaders.Set("User-Agent", c.s.userAgent())
67867	var body io.Reader = nil
67868	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsattachendpointsrequest)
67869	if err != nil {
67870		return nil, err
67871	}
67872	reqHeaders.Set("Content-Type", "application/json")
67873	c.urlParams_.Set("alt", alt)
67874	c.urlParams_.Set("prettyPrint", "false")
67875	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
67876	urls += "?" + c.urlParams_.Encode()
67877	req, err := http.NewRequest("POST", urls, body)
67878	if err != nil {
67879		return nil, err
67880	}
67881	req.Header = reqHeaders
67882	googleapi.Expand(req.URL, map[string]string{
67883		"project":              c.project,
67884		"zone":                 c.zone,
67885		"networkEndpointGroup": c.networkEndpointGroup,
67886	})
67887	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67888}
67889
67890// Do executes the "compute.networkEndpointGroups.attachNetworkEndpoints" call.
67891// Exactly one of *Operation or error will be non-nil. Any non-2xx
67892// status code is an error. Response headers are in either
67893// *Operation.ServerResponse.Header or (if a response was returned at
67894// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67895// to check whether the returned error was because
67896// http.StatusNotModified was returned.
67897func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67898	gensupport.SetOptions(c.urlParams_, opts...)
67899	res, err := c.doRequest("json")
67900	if res != nil && res.StatusCode == http.StatusNotModified {
67901		if res.Body != nil {
67902			res.Body.Close()
67903		}
67904		return nil, &googleapi.Error{
67905			Code:   res.StatusCode,
67906			Header: res.Header,
67907		}
67908	}
67909	if err != nil {
67910		return nil, err
67911	}
67912	defer googleapi.CloseBody(res)
67913	if err := googleapi.CheckResponse(res); err != nil {
67914		return nil, err
67915	}
67916	ret := &Operation{
67917		ServerResponse: googleapi.ServerResponse{
67918			Header:         res.Header,
67919			HTTPStatusCode: res.StatusCode,
67920		},
67921	}
67922	target := &ret
67923	if err := gensupport.DecodeResponse(target, res); err != nil {
67924		return nil, err
67925	}
67926	return ret, nil
67927	// {
67928	//   "description": "Attach a list of network endpoints to the specified network endpoint group.",
67929	//   "httpMethod": "POST",
67930	//   "id": "compute.networkEndpointGroups.attachNetworkEndpoints",
67931	//   "parameterOrder": [
67932	//     "project",
67933	//     "zone",
67934	//     "networkEndpointGroup"
67935	//   ],
67936	//   "parameters": {
67937	//     "networkEndpointGroup": {
67938	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
67939	//       "location": "path",
67940	//       "required": true,
67941	//       "type": "string"
67942	//     },
67943	//     "project": {
67944	//       "description": "Project ID for this request.",
67945	//       "location": "path",
67946	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67947	//       "required": true,
67948	//       "type": "string"
67949	//     },
67950	//     "requestId": {
67951	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67952	//       "location": "query",
67953	//       "type": "string"
67954	//     },
67955	//     "zone": {
67956	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
67957	//       "location": "path",
67958	//       "required": true,
67959	//       "type": "string"
67960	//     }
67961	//   },
67962	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
67963	//   "request": {
67964	//     "$ref": "NetworkEndpointGroupsAttachEndpointsRequest"
67965	//   },
67966	//   "response": {
67967	//     "$ref": "Operation"
67968	//   },
67969	//   "scopes": [
67970	//     "https://www.googleapis.com/auth/cloud-platform",
67971	//     "https://www.googleapis.com/auth/compute"
67972	//   ]
67973	// }
67974
67975}
67976
67977// method id "compute.networkEndpointGroups.delete":
67978
67979type NetworkEndpointGroupsDeleteCall struct {
67980	s                    *Service
67981	project              string
67982	zone                 string
67983	networkEndpointGroup string
67984	urlParams_           gensupport.URLParams
67985	ctx_                 context.Context
67986	header_              http.Header
67987}
67988
67989// Delete: Deletes the specified network endpoint group. The network
67990// endpoints in the NEG and the VM instances they belong to are not
67991// terminated when the NEG is deleted. Note that the NEG cannot be
67992// deleted if there are backend services referencing it.
67993func (r *NetworkEndpointGroupsService) Delete(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsDeleteCall {
67994	c := &NetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67995	c.project = project
67996	c.zone = zone
67997	c.networkEndpointGroup = networkEndpointGroup
67998	return c
67999}
68000
68001// RequestId sets the optional parameter "requestId": An optional
68002// request ID to identify requests. Specify a unique request ID so that
68003// if you must retry your request, the server will know to ignore the
68004// request if it has already been completed.
68005//
68006// For example, consider a situation where you make an initial request
68007// and the request times out. If you make the request again with the
68008// same request ID, the server can check if original operation with the
68009// same request ID was received, and if so, will ignore the second
68010// request. This prevents clients from accidentally creating duplicate
68011// commitments.
68012//
68013// The request ID must be a valid UUID with the exception that zero UUID
68014// is not supported (00000000-0000-0000-0000-000000000000).
68015func (c *NetworkEndpointGroupsDeleteCall) RequestId(requestId string) *NetworkEndpointGroupsDeleteCall {
68016	c.urlParams_.Set("requestId", requestId)
68017	return c
68018}
68019
68020// Fields allows partial responses to be retrieved. See
68021// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68022// for more information.
68023func (c *NetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDeleteCall {
68024	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68025	return c
68026}
68027
68028// Context sets the context to be used in this call's Do method. Any
68029// pending HTTP request will be aborted if the provided context is
68030// canceled.
68031func (c *NetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *NetworkEndpointGroupsDeleteCall {
68032	c.ctx_ = ctx
68033	return c
68034}
68035
68036// Header returns an http.Header that can be modified by the caller to
68037// add HTTP headers to the request.
68038func (c *NetworkEndpointGroupsDeleteCall) Header() http.Header {
68039	if c.header_ == nil {
68040		c.header_ = make(http.Header)
68041	}
68042	return c.header_
68043}
68044
68045func (c *NetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
68046	reqHeaders := make(http.Header)
68047	for k, v := range c.header_ {
68048		reqHeaders[k] = v
68049	}
68050	reqHeaders.Set("User-Agent", c.s.userAgent())
68051	var body io.Reader = nil
68052	c.urlParams_.Set("alt", alt)
68053	c.urlParams_.Set("prettyPrint", "false")
68054	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
68055	urls += "?" + c.urlParams_.Encode()
68056	req, err := http.NewRequest("DELETE", urls, body)
68057	if err != nil {
68058		return nil, err
68059	}
68060	req.Header = reqHeaders
68061	googleapi.Expand(req.URL, map[string]string{
68062		"project":              c.project,
68063		"zone":                 c.zone,
68064		"networkEndpointGroup": c.networkEndpointGroup,
68065	})
68066	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68067}
68068
68069// Do executes the "compute.networkEndpointGroups.delete" call.
68070// Exactly one of *Operation or error will be non-nil. Any non-2xx
68071// status code is an error. Response headers are in either
68072// *Operation.ServerResponse.Header or (if a response was returned at
68073// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68074// to check whether the returned error was because
68075// http.StatusNotModified was returned.
68076func (c *NetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68077	gensupport.SetOptions(c.urlParams_, opts...)
68078	res, err := c.doRequest("json")
68079	if res != nil && res.StatusCode == http.StatusNotModified {
68080		if res.Body != nil {
68081			res.Body.Close()
68082		}
68083		return nil, &googleapi.Error{
68084			Code:   res.StatusCode,
68085			Header: res.Header,
68086		}
68087	}
68088	if err != nil {
68089		return nil, err
68090	}
68091	defer googleapi.CloseBody(res)
68092	if err := googleapi.CheckResponse(res); err != nil {
68093		return nil, err
68094	}
68095	ret := &Operation{
68096		ServerResponse: googleapi.ServerResponse{
68097			Header:         res.Header,
68098			HTTPStatusCode: res.StatusCode,
68099		},
68100	}
68101	target := &ret
68102	if err := gensupport.DecodeResponse(target, res); err != nil {
68103		return nil, err
68104	}
68105	return ret, nil
68106	// {
68107	//   "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.",
68108	//   "httpMethod": "DELETE",
68109	//   "id": "compute.networkEndpointGroups.delete",
68110	//   "parameterOrder": [
68111	//     "project",
68112	//     "zone",
68113	//     "networkEndpointGroup"
68114	//   ],
68115	//   "parameters": {
68116	//     "networkEndpointGroup": {
68117	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
68118	//       "location": "path",
68119	//       "required": true,
68120	//       "type": "string"
68121	//     },
68122	//     "project": {
68123	//       "description": "Project ID for this request.",
68124	//       "location": "path",
68125	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68126	//       "required": true,
68127	//       "type": "string"
68128	//     },
68129	//     "requestId": {
68130	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68131	//       "location": "query",
68132	//       "type": "string"
68133	//     },
68134	//     "zone": {
68135	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
68136	//       "location": "path",
68137	//       "required": true,
68138	//       "type": "string"
68139	//     }
68140	//   },
68141	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
68142	//   "response": {
68143	//     "$ref": "Operation"
68144	//   },
68145	//   "scopes": [
68146	//     "https://www.googleapis.com/auth/cloud-platform",
68147	//     "https://www.googleapis.com/auth/compute"
68148	//   ]
68149	// }
68150
68151}
68152
68153// method id "compute.networkEndpointGroups.detachNetworkEndpoints":
68154
68155type NetworkEndpointGroupsDetachNetworkEndpointsCall struct {
68156	s                                           *Service
68157	project                                     string
68158	zone                                        string
68159	networkEndpointGroup                        string
68160	networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest
68161	urlParams_                                  gensupport.URLParams
68162	ctx_                                        context.Context
68163	header_                                     http.Header
68164}
68165
68166// DetachNetworkEndpoints: Detach a list of network endpoints from the
68167// specified network endpoint group.
68168func (r *NetworkEndpointGroupsService) DetachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
68169	c := &NetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68170	c.project = project
68171	c.zone = zone
68172	c.networkEndpointGroup = networkEndpointGroup
68173	c.networkendpointgroupsdetachendpointsrequest = networkendpointgroupsdetachendpointsrequest
68174	return c
68175}
68176
68177// RequestId sets the optional parameter "requestId": An optional
68178// request ID to identify requests. Specify a unique request ID so that
68179// if you must retry your request, the server will know to ignore the
68180// request if it has already been completed.
68181//
68182// For example, consider a situation where you make an initial request
68183// and the request times out. If you make the request again with the
68184// same request ID, the server can check if original operation with the
68185// same request ID was received, and if so, will ignore the second
68186// request. This prevents clients from accidentally creating duplicate
68187// commitments.
68188//
68189// The request ID must be a valid UUID with the exception that zero UUID
68190// is not supported (00000000-0000-0000-0000-000000000000).
68191func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
68192	c.urlParams_.Set("requestId", requestId)
68193	return c
68194}
68195
68196// Fields allows partial responses to be retrieved. See
68197// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68198// for more information.
68199func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
68200	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68201	return c
68202}
68203
68204// Context sets the context to be used in this call's Do method. Any
68205// pending HTTP request will be aborted if the provided context is
68206// canceled.
68207func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
68208	c.ctx_ = ctx
68209	return c
68210}
68211
68212// Header returns an http.Header that can be modified by the caller to
68213// add HTTP headers to the request.
68214func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
68215	if c.header_ == nil {
68216		c.header_ = make(http.Header)
68217	}
68218	return c.header_
68219}
68220
68221func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
68222	reqHeaders := make(http.Header)
68223	for k, v := range c.header_ {
68224		reqHeaders[k] = v
68225	}
68226	reqHeaders.Set("User-Agent", c.s.userAgent())
68227	var body io.Reader = nil
68228	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsdetachendpointsrequest)
68229	if err != nil {
68230		return nil, err
68231	}
68232	reqHeaders.Set("Content-Type", "application/json")
68233	c.urlParams_.Set("alt", alt)
68234	c.urlParams_.Set("prettyPrint", "false")
68235	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
68236	urls += "?" + c.urlParams_.Encode()
68237	req, err := http.NewRequest("POST", urls, body)
68238	if err != nil {
68239		return nil, err
68240	}
68241	req.Header = reqHeaders
68242	googleapi.Expand(req.URL, map[string]string{
68243		"project":              c.project,
68244		"zone":                 c.zone,
68245		"networkEndpointGroup": c.networkEndpointGroup,
68246	})
68247	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68248}
68249
68250// Do executes the "compute.networkEndpointGroups.detachNetworkEndpoints" call.
68251// Exactly one of *Operation or error will be non-nil. Any non-2xx
68252// status code is an error. Response headers are in either
68253// *Operation.ServerResponse.Header or (if a response was returned at
68254// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68255// to check whether the returned error was because
68256// http.StatusNotModified was returned.
68257func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68258	gensupport.SetOptions(c.urlParams_, opts...)
68259	res, err := c.doRequest("json")
68260	if res != nil && res.StatusCode == http.StatusNotModified {
68261		if res.Body != nil {
68262			res.Body.Close()
68263		}
68264		return nil, &googleapi.Error{
68265			Code:   res.StatusCode,
68266			Header: res.Header,
68267		}
68268	}
68269	if err != nil {
68270		return nil, err
68271	}
68272	defer googleapi.CloseBody(res)
68273	if err := googleapi.CheckResponse(res); err != nil {
68274		return nil, err
68275	}
68276	ret := &Operation{
68277		ServerResponse: googleapi.ServerResponse{
68278			Header:         res.Header,
68279			HTTPStatusCode: res.StatusCode,
68280		},
68281	}
68282	target := &ret
68283	if err := gensupport.DecodeResponse(target, res); err != nil {
68284		return nil, err
68285	}
68286	return ret, nil
68287	// {
68288	//   "description": "Detach a list of network endpoints from the specified network endpoint group.",
68289	//   "httpMethod": "POST",
68290	//   "id": "compute.networkEndpointGroups.detachNetworkEndpoints",
68291	//   "parameterOrder": [
68292	//     "project",
68293	//     "zone",
68294	//     "networkEndpointGroup"
68295	//   ],
68296	//   "parameters": {
68297	//     "networkEndpointGroup": {
68298	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
68299	//       "location": "path",
68300	//       "required": true,
68301	//       "type": "string"
68302	//     },
68303	//     "project": {
68304	//       "description": "Project ID for this request.",
68305	//       "location": "path",
68306	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68307	//       "required": true,
68308	//       "type": "string"
68309	//     },
68310	//     "requestId": {
68311	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68312	//       "location": "query",
68313	//       "type": "string"
68314	//     },
68315	//     "zone": {
68316	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
68317	//       "location": "path",
68318	//       "required": true,
68319	//       "type": "string"
68320	//     }
68321	//   },
68322	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
68323	//   "request": {
68324	//     "$ref": "NetworkEndpointGroupsDetachEndpointsRequest"
68325	//   },
68326	//   "response": {
68327	//     "$ref": "Operation"
68328	//   },
68329	//   "scopes": [
68330	//     "https://www.googleapis.com/auth/cloud-platform",
68331	//     "https://www.googleapis.com/auth/compute"
68332	//   ]
68333	// }
68334
68335}
68336
68337// method id "compute.networkEndpointGroups.get":
68338
68339type NetworkEndpointGroupsGetCall struct {
68340	s                    *Service
68341	project              string
68342	zone                 string
68343	networkEndpointGroup string
68344	urlParams_           gensupport.URLParams
68345	ifNoneMatch_         string
68346	ctx_                 context.Context
68347	header_              http.Header
68348}
68349
68350// Get: Returns the specified network endpoint group. Gets a list of
68351// available network endpoint groups by making a list() request.
68352func (r *NetworkEndpointGroupsService) Get(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsGetCall {
68353	c := &NetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68354	c.project = project
68355	c.zone = zone
68356	c.networkEndpointGroup = networkEndpointGroup
68357	return c
68358}
68359
68360// Fields allows partial responses to be retrieved. See
68361// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68362// for more information.
68363func (c *NetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsGetCall {
68364	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68365	return c
68366}
68367
68368// IfNoneMatch sets the optional parameter which makes the operation
68369// fail if the object's ETag matches the given value. This is useful for
68370// getting updates only after the object has changed since the last
68371// request. Use googleapi.IsNotModified to check whether the response
68372// error from Do is the result of In-None-Match.
68373func (c *NetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsGetCall {
68374	c.ifNoneMatch_ = entityTag
68375	return c
68376}
68377
68378// Context sets the context to be used in this call's Do method. Any
68379// pending HTTP request will be aborted if the provided context is
68380// canceled.
68381func (c *NetworkEndpointGroupsGetCall) Context(ctx context.Context) *NetworkEndpointGroupsGetCall {
68382	c.ctx_ = ctx
68383	return c
68384}
68385
68386// Header returns an http.Header that can be modified by the caller to
68387// add HTTP headers to the request.
68388func (c *NetworkEndpointGroupsGetCall) Header() http.Header {
68389	if c.header_ == nil {
68390		c.header_ = make(http.Header)
68391	}
68392	return c.header_
68393}
68394
68395func (c *NetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
68396	reqHeaders := make(http.Header)
68397	for k, v := range c.header_ {
68398		reqHeaders[k] = v
68399	}
68400	reqHeaders.Set("User-Agent", c.s.userAgent())
68401	if c.ifNoneMatch_ != "" {
68402		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68403	}
68404	var body io.Reader = nil
68405	c.urlParams_.Set("alt", alt)
68406	c.urlParams_.Set("prettyPrint", "false")
68407	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
68408	urls += "?" + c.urlParams_.Encode()
68409	req, err := http.NewRequest("GET", urls, body)
68410	if err != nil {
68411		return nil, err
68412	}
68413	req.Header = reqHeaders
68414	googleapi.Expand(req.URL, map[string]string{
68415		"project":              c.project,
68416		"zone":                 c.zone,
68417		"networkEndpointGroup": c.networkEndpointGroup,
68418	})
68419	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68420}
68421
68422// Do executes the "compute.networkEndpointGroups.get" call.
68423// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
68424// non-2xx status code is an error. Response headers are in either
68425// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
68426// returned at all) in error.(*googleapi.Error).Header. Use
68427// googleapi.IsNotModified to check whether the returned error was
68428// because http.StatusNotModified was returned.
68429func (c *NetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
68430	gensupport.SetOptions(c.urlParams_, opts...)
68431	res, err := c.doRequest("json")
68432	if res != nil && res.StatusCode == http.StatusNotModified {
68433		if res.Body != nil {
68434			res.Body.Close()
68435		}
68436		return nil, &googleapi.Error{
68437			Code:   res.StatusCode,
68438			Header: res.Header,
68439		}
68440	}
68441	if err != nil {
68442		return nil, err
68443	}
68444	defer googleapi.CloseBody(res)
68445	if err := googleapi.CheckResponse(res); err != nil {
68446		return nil, err
68447	}
68448	ret := &NetworkEndpointGroup{
68449		ServerResponse: googleapi.ServerResponse{
68450			Header:         res.Header,
68451			HTTPStatusCode: res.StatusCode,
68452		},
68453	}
68454	target := &ret
68455	if err := gensupport.DecodeResponse(target, res); err != nil {
68456		return nil, err
68457	}
68458	return ret, nil
68459	// {
68460	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
68461	//   "httpMethod": "GET",
68462	//   "id": "compute.networkEndpointGroups.get",
68463	//   "parameterOrder": [
68464	//     "project",
68465	//     "zone",
68466	//     "networkEndpointGroup"
68467	//   ],
68468	//   "parameters": {
68469	//     "networkEndpointGroup": {
68470	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
68471	//       "location": "path",
68472	//       "required": true,
68473	//       "type": "string"
68474	//     },
68475	//     "project": {
68476	//       "description": "Project ID for this request.",
68477	//       "location": "path",
68478	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68479	//       "required": true,
68480	//       "type": "string"
68481	//     },
68482	//     "zone": {
68483	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
68484	//       "location": "path",
68485	//       "required": true,
68486	//       "type": "string"
68487	//     }
68488	//   },
68489	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
68490	//   "response": {
68491	//     "$ref": "NetworkEndpointGroup"
68492	//   },
68493	//   "scopes": [
68494	//     "https://www.googleapis.com/auth/cloud-platform",
68495	//     "https://www.googleapis.com/auth/compute",
68496	//     "https://www.googleapis.com/auth/compute.readonly"
68497	//   ]
68498	// }
68499
68500}
68501
68502// method id "compute.networkEndpointGroups.insert":
68503
68504type NetworkEndpointGroupsInsertCall struct {
68505	s                    *Service
68506	project              string
68507	zone                 string
68508	networkendpointgroup *NetworkEndpointGroup
68509	urlParams_           gensupport.URLParams
68510	ctx_                 context.Context
68511	header_              http.Header
68512}
68513
68514// Insert: Creates a network endpoint group in the specified project
68515// using the parameters that are included in the request.
68516func (r *NetworkEndpointGroupsService) Insert(project string, zone string, networkendpointgroup *NetworkEndpointGroup) *NetworkEndpointGroupsInsertCall {
68517	c := &NetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68518	c.project = project
68519	c.zone = zone
68520	c.networkendpointgroup = networkendpointgroup
68521	return c
68522}
68523
68524// RequestId sets the optional parameter "requestId": An optional
68525// request ID to identify requests. Specify a unique request ID so that
68526// if you must retry your request, the server will know to ignore the
68527// request if it has already been completed.
68528//
68529// For example, consider a situation where you make an initial request
68530// and the request times out. If you make the request again with the
68531// same request ID, the server can check if original operation with the
68532// same request ID was received, and if so, will ignore the second
68533// request. This prevents clients from accidentally creating duplicate
68534// commitments.
68535//
68536// The request ID must be a valid UUID with the exception that zero UUID
68537// is not supported (00000000-0000-0000-0000-000000000000).
68538func (c *NetworkEndpointGroupsInsertCall) RequestId(requestId string) *NetworkEndpointGroupsInsertCall {
68539	c.urlParams_.Set("requestId", requestId)
68540	return c
68541}
68542
68543// Fields allows partial responses to be retrieved. See
68544// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68545// for more information.
68546func (c *NetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsInsertCall {
68547	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68548	return c
68549}
68550
68551// Context sets the context to be used in this call's Do method. Any
68552// pending HTTP request will be aborted if the provided context is
68553// canceled.
68554func (c *NetworkEndpointGroupsInsertCall) Context(ctx context.Context) *NetworkEndpointGroupsInsertCall {
68555	c.ctx_ = ctx
68556	return c
68557}
68558
68559// Header returns an http.Header that can be modified by the caller to
68560// add HTTP headers to the request.
68561func (c *NetworkEndpointGroupsInsertCall) Header() http.Header {
68562	if c.header_ == nil {
68563		c.header_ = make(http.Header)
68564	}
68565	return c.header_
68566}
68567
68568func (c *NetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
68569	reqHeaders := make(http.Header)
68570	for k, v := range c.header_ {
68571		reqHeaders[k] = v
68572	}
68573	reqHeaders.Set("User-Agent", c.s.userAgent())
68574	var body io.Reader = nil
68575	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
68576	if err != nil {
68577		return nil, err
68578	}
68579	reqHeaders.Set("Content-Type", "application/json")
68580	c.urlParams_.Set("alt", alt)
68581	c.urlParams_.Set("prettyPrint", "false")
68582	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups")
68583	urls += "?" + c.urlParams_.Encode()
68584	req, err := http.NewRequest("POST", urls, body)
68585	if err != nil {
68586		return nil, err
68587	}
68588	req.Header = reqHeaders
68589	googleapi.Expand(req.URL, map[string]string{
68590		"project": c.project,
68591		"zone":    c.zone,
68592	})
68593	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68594}
68595
68596// Do executes the "compute.networkEndpointGroups.insert" call.
68597// Exactly one of *Operation or error will be non-nil. Any non-2xx
68598// status code is an error. Response headers are in either
68599// *Operation.ServerResponse.Header or (if a response was returned at
68600// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68601// to check whether the returned error was because
68602// http.StatusNotModified was returned.
68603func (c *NetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68604	gensupport.SetOptions(c.urlParams_, opts...)
68605	res, err := c.doRequest("json")
68606	if res != nil && res.StatusCode == http.StatusNotModified {
68607		if res.Body != nil {
68608			res.Body.Close()
68609		}
68610		return nil, &googleapi.Error{
68611			Code:   res.StatusCode,
68612			Header: res.Header,
68613		}
68614	}
68615	if err != nil {
68616		return nil, err
68617	}
68618	defer googleapi.CloseBody(res)
68619	if err := googleapi.CheckResponse(res); err != nil {
68620		return nil, err
68621	}
68622	ret := &Operation{
68623		ServerResponse: googleapi.ServerResponse{
68624			Header:         res.Header,
68625			HTTPStatusCode: res.StatusCode,
68626		},
68627	}
68628	target := &ret
68629	if err := gensupport.DecodeResponse(target, res); err != nil {
68630		return nil, err
68631	}
68632	return ret, nil
68633	// {
68634	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
68635	//   "httpMethod": "POST",
68636	//   "id": "compute.networkEndpointGroups.insert",
68637	//   "parameterOrder": [
68638	//     "project",
68639	//     "zone"
68640	//   ],
68641	//   "parameters": {
68642	//     "project": {
68643	//       "description": "Project ID for this request.",
68644	//       "location": "path",
68645	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68646	//       "required": true,
68647	//       "type": "string"
68648	//     },
68649	//     "requestId": {
68650	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68651	//       "location": "query",
68652	//       "type": "string"
68653	//     },
68654	//     "zone": {
68655	//       "description": "The name of the zone where you want to create the network endpoint group. It should comply with RFC1035.",
68656	//       "location": "path",
68657	//       "required": true,
68658	//       "type": "string"
68659	//     }
68660	//   },
68661	//   "path": "{project}/zones/{zone}/networkEndpointGroups",
68662	//   "request": {
68663	//     "$ref": "NetworkEndpointGroup"
68664	//   },
68665	//   "response": {
68666	//     "$ref": "Operation"
68667	//   },
68668	//   "scopes": [
68669	//     "https://www.googleapis.com/auth/cloud-platform",
68670	//     "https://www.googleapis.com/auth/compute"
68671	//   ]
68672	// }
68673
68674}
68675
68676// method id "compute.networkEndpointGroups.list":
68677
68678type NetworkEndpointGroupsListCall struct {
68679	s            *Service
68680	project      string
68681	zone         string
68682	urlParams_   gensupport.URLParams
68683	ifNoneMatch_ string
68684	ctx_         context.Context
68685	header_      http.Header
68686}
68687
68688// List: Retrieves the list of network endpoint groups that are located
68689// in the specified project and zone.
68690func (r *NetworkEndpointGroupsService) List(project string, zone string) *NetworkEndpointGroupsListCall {
68691	c := &NetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68692	c.project = project
68693	c.zone = zone
68694	return c
68695}
68696
68697// Filter sets the optional parameter "filter": A filter expression that
68698// filters resources listed in the response. The expression must specify
68699// the field name, a comparison operator, and the value that you want to
68700// use for filtering. The value must be a string, a number, or a
68701// boolean. The comparison operator must be either =, !=, >, or <.
68702//
68703// For example, if you are filtering Compute Engine instances, you can
68704// exclude instances named example-instance by specifying name !=
68705// example-instance.
68706//
68707// You can also filter nested fields. For example, you could specify
68708// scheduling.automaticRestart = false to include instances only if they
68709// are not scheduled for automatic restarts. You can use filtering on
68710// nested fields to filter based on resource labels.
68711//
68712// To filter on multiple expressions, provide each separate expression
68713// within parentheses. For example, (scheduling.automaticRestart = true)
68714// (cpuPlatform = "Intel Skylake"). By default, each expression is an
68715// AND expression. However, you can include AND and OR expressions
68716// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
68717// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
68718// true).
68719func (c *NetworkEndpointGroupsListCall) Filter(filter string) *NetworkEndpointGroupsListCall {
68720	c.urlParams_.Set("filter", filter)
68721	return c
68722}
68723
68724// MaxResults sets the optional parameter "maxResults": The maximum
68725// number of results per page that should be returned. If the number of
68726// available results is larger than maxResults, Compute Engine returns a
68727// nextPageToken that can be used to get the next page of results in
68728// subsequent list requests. Acceptable values are 0 to 500, inclusive.
68729// (Default: 500)
68730func (c *NetworkEndpointGroupsListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListCall {
68731	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
68732	return c
68733}
68734
68735// OrderBy sets the optional parameter "orderBy": Sorts list results by
68736// a certain order. By default, results are returned in alphanumerical
68737// order based on the resource name.
68738//
68739// You can also sort results in descending order based on the creation
68740// timestamp using orderBy="creationTimestamp desc". This sorts results
68741// based on the creationTimestamp field in reverse chronological order
68742// (newest result first). Use this to sort resources like operations so
68743// that the newest operation is returned first.
68744//
68745// Currently, only sorting by name or creationTimestamp desc is
68746// supported.
68747func (c *NetworkEndpointGroupsListCall) OrderBy(orderBy string) *NetworkEndpointGroupsListCall {
68748	c.urlParams_.Set("orderBy", orderBy)
68749	return c
68750}
68751
68752// PageToken sets the optional parameter "pageToken": Specifies a page
68753// token to use. Set pageToken to the nextPageToken returned by a
68754// previous list request to get the next page of results.
68755func (c *NetworkEndpointGroupsListCall) PageToken(pageToken string) *NetworkEndpointGroupsListCall {
68756	c.urlParams_.Set("pageToken", pageToken)
68757	return c
68758}
68759
68760// Fields allows partial responses to be retrieved. See
68761// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68762// for more information.
68763func (c *NetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListCall {
68764	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68765	return c
68766}
68767
68768// IfNoneMatch sets the optional parameter which makes the operation
68769// fail if the object's ETag matches the given value. This is useful for
68770// getting updates only after the object has changed since the last
68771// request. Use googleapi.IsNotModified to check whether the response
68772// error from Do is the result of In-None-Match.
68773func (c *NetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsListCall {
68774	c.ifNoneMatch_ = entityTag
68775	return c
68776}
68777
68778// Context sets the context to be used in this call's Do method. Any
68779// pending HTTP request will be aborted if the provided context is
68780// canceled.
68781func (c *NetworkEndpointGroupsListCall) Context(ctx context.Context) *NetworkEndpointGroupsListCall {
68782	c.ctx_ = ctx
68783	return c
68784}
68785
68786// Header returns an http.Header that can be modified by the caller to
68787// add HTTP headers to the request.
68788func (c *NetworkEndpointGroupsListCall) Header() http.Header {
68789	if c.header_ == nil {
68790		c.header_ = make(http.Header)
68791	}
68792	return c.header_
68793}
68794
68795func (c *NetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
68796	reqHeaders := make(http.Header)
68797	for k, v := range c.header_ {
68798		reqHeaders[k] = v
68799	}
68800	reqHeaders.Set("User-Agent", c.s.userAgent())
68801	if c.ifNoneMatch_ != "" {
68802		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68803	}
68804	var body io.Reader = nil
68805	c.urlParams_.Set("alt", alt)
68806	c.urlParams_.Set("prettyPrint", "false")
68807	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups")
68808	urls += "?" + c.urlParams_.Encode()
68809	req, err := http.NewRequest("GET", urls, body)
68810	if err != nil {
68811		return nil, err
68812	}
68813	req.Header = reqHeaders
68814	googleapi.Expand(req.URL, map[string]string{
68815		"project": c.project,
68816		"zone":    c.zone,
68817	})
68818	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68819}
68820
68821// Do executes the "compute.networkEndpointGroups.list" call.
68822// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
68823// Any non-2xx status code is an error. Response headers are in either
68824// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
68825// returned at all) in error.(*googleapi.Error).Header. Use
68826// googleapi.IsNotModified to check whether the returned error was
68827// because http.StatusNotModified was returned.
68828func (c *NetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
68829	gensupport.SetOptions(c.urlParams_, opts...)
68830	res, err := c.doRequest("json")
68831	if res != nil && res.StatusCode == http.StatusNotModified {
68832		if res.Body != nil {
68833			res.Body.Close()
68834		}
68835		return nil, &googleapi.Error{
68836			Code:   res.StatusCode,
68837			Header: res.Header,
68838		}
68839	}
68840	if err != nil {
68841		return nil, err
68842	}
68843	defer googleapi.CloseBody(res)
68844	if err := googleapi.CheckResponse(res); err != nil {
68845		return nil, err
68846	}
68847	ret := &NetworkEndpointGroupList{
68848		ServerResponse: googleapi.ServerResponse{
68849			Header:         res.Header,
68850			HTTPStatusCode: res.StatusCode,
68851		},
68852	}
68853	target := &ret
68854	if err := gensupport.DecodeResponse(target, res); err != nil {
68855		return nil, err
68856	}
68857	return ret, nil
68858	// {
68859	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project and zone.",
68860	//   "httpMethod": "GET",
68861	//   "id": "compute.networkEndpointGroups.list",
68862	//   "parameterOrder": [
68863	//     "project",
68864	//     "zone"
68865	//   ],
68866	//   "parameters": {
68867	//     "filter": {
68868	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
68869	//       "location": "query",
68870	//       "type": "string"
68871	//     },
68872	//     "maxResults": {
68873	//       "default": "500",
68874	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
68875	//       "format": "uint32",
68876	//       "location": "query",
68877	//       "minimum": "0",
68878	//       "type": "integer"
68879	//     },
68880	//     "orderBy": {
68881	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
68882	//       "location": "query",
68883	//       "type": "string"
68884	//     },
68885	//     "pageToken": {
68886	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
68887	//       "location": "query",
68888	//       "type": "string"
68889	//     },
68890	//     "project": {
68891	//       "description": "Project ID for this request.",
68892	//       "location": "path",
68893	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68894	//       "required": true,
68895	//       "type": "string"
68896	//     },
68897	//     "zone": {
68898	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
68899	//       "location": "path",
68900	//       "required": true,
68901	//       "type": "string"
68902	//     }
68903	//   },
68904	//   "path": "{project}/zones/{zone}/networkEndpointGroups",
68905	//   "response": {
68906	//     "$ref": "NetworkEndpointGroupList"
68907	//   },
68908	//   "scopes": [
68909	//     "https://www.googleapis.com/auth/cloud-platform",
68910	//     "https://www.googleapis.com/auth/compute",
68911	//     "https://www.googleapis.com/auth/compute.readonly"
68912	//   ]
68913	// }
68914
68915}
68916
68917// Pages invokes f for each page of results.
68918// A non-nil error returned from f will halt the iteration.
68919// The provided context supersedes any context provided to the Context method.
68920func (c *NetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
68921	c.ctx_ = ctx
68922	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
68923	for {
68924		x, err := c.Do()
68925		if err != nil {
68926			return err
68927		}
68928		if err := f(x); err != nil {
68929			return err
68930		}
68931		if x.NextPageToken == "" {
68932			return nil
68933		}
68934		c.PageToken(x.NextPageToken)
68935	}
68936}
68937
68938// method id "compute.networkEndpointGroups.listNetworkEndpoints":
68939
68940type NetworkEndpointGroupsListNetworkEndpointsCall struct {
68941	s                                         *Service
68942	project                                   string
68943	zone                                      string
68944	networkEndpointGroup                      string
68945	networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest
68946	urlParams_                                gensupport.URLParams
68947	ctx_                                      context.Context
68948	header_                                   http.Header
68949}
68950
68951// ListNetworkEndpoints: Lists the network endpoints in the specified
68952// network endpoint group.
68953func (r *NetworkEndpointGroupsService) ListNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest) *NetworkEndpointGroupsListNetworkEndpointsCall {
68954	c := &NetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68955	c.project = project
68956	c.zone = zone
68957	c.networkEndpointGroup = networkEndpointGroup
68958	c.networkendpointgroupslistendpointsrequest = networkendpointgroupslistendpointsrequest
68959	return c
68960}
68961
68962// Filter sets the optional parameter "filter": A filter expression that
68963// filters resources listed in the response. The expression must specify
68964// the field name, a comparison operator, and the value that you want to
68965// use for filtering. The value must be a string, a number, or a
68966// boolean. The comparison operator must be either =, !=, >, or <.
68967//
68968// For example, if you are filtering Compute Engine instances, you can
68969// exclude instances named example-instance by specifying name !=
68970// example-instance.
68971//
68972// You can also filter nested fields. For example, you could specify
68973// scheduling.automaticRestart = false to include instances only if they
68974// are not scheduled for automatic restarts. You can use filtering on
68975// nested fields to filter based on resource labels.
68976//
68977// To filter on multiple expressions, provide each separate expression
68978// within parentheses. For example, (scheduling.automaticRestart = true)
68979// (cpuPlatform = "Intel Skylake"). By default, each expression is an
68980// AND expression. However, you can include AND and OR expressions
68981// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
68982// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
68983// true).
68984func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *NetworkEndpointGroupsListNetworkEndpointsCall {
68985	c.urlParams_.Set("filter", filter)
68986	return c
68987}
68988
68989// MaxResults sets the optional parameter "maxResults": The maximum
68990// number of results per page that should be returned. If the number of
68991// available results is larger than maxResults, Compute Engine returns a
68992// nextPageToken that can be used to get the next page of results in
68993// subsequent list requests. Acceptable values are 0 to 500, inclusive.
68994// (Default: 500)
68995func (c *NetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListNetworkEndpointsCall {
68996	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
68997	return c
68998}
68999
69000// OrderBy sets the optional parameter "orderBy": Sorts list results by
69001// a certain order. By default, results are returned in alphanumerical
69002// order based on the resource name.
69003//
69004// You can also sort results in descending order based on the creation
69005// timestamp using orderBy="creationTimestamp desc". This sorts results
69006// based on the creationTimestamp field in reverse chronological order
69007// (newest result first). Use this to sort resources like operations so
69008// that the newest operation is returned first.
69009//
69010// Currently, only sorting by name or creationTimestamp desc is
69011// supported.
69012func (c *NetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *NetworkEndpointGroupsListNetworkEndpointsCall {
69013	c.urlParams_.Set("orderBy", orderBy)
69014	return c
69015}
69016
69017// PageToken sets the optional parameter "pageToken": Specifies a page
69018// token to use. Set pageToken to the nextPageToken returned by a
69019// previous list request to get the next page of results.
69020func (c *NetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *NetworkEndpointGroupsListNetworkEndpointsCall {
69021	c.urlParams_.Set("pageToken", pageToken)
69022	return c
69023}
69024
69025// Fields allows partial responses to be retrieved. See
69026// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69027// for more information.
69028func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListNetworkEndpointsCall {
69029	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69030	return c
69031}
69032
69033// Context sets the context to be used in this call's Do method. Any
69034// pending HTTP request will be aborted if the provided context is
69035// canceled.
69036func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsListNetworkEndpointsCall {
69037	c.ctx_ = ctx
69038	return c
69039}
69040
69041// Header returns an http.Header that can be modified by the caller to
69042// add HTTP headers to the request.
69043func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
69044	if c.header_ == nil {
69045		c.header_ = make(http.Header)
69046	}
69047	return c.header_
69048}
69049
69050func (c *NetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
69051	reqHeaders := make(http.Header)
69052	for k, v := range c.header_ {
69053		reqHeaders[k] = v
69054	}
69055	reqHeaders.Set("User-Agent", c.s.userAgent())
69056	var body io.Reader = nil
69057	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupslistendpointsrequest)
69058	if err != nil {
69059		return nil, err
69060	}
69061	reqHeaders.Set("Content-Type", "application/json")
69062	c.urlParams_.Set("alt", alt)
69063	c.urlParams_.Set("prettyPrint", "false")
69064	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
69065	urls += "?" + c.urlParams_.Encode()
69066	req, err := http.NewRequest("POST", urls, body)
69067	if err != nil {
69068		return nil, err
69069	}
69070	req.Header = reqHeaders
69071	googleapi.Expand(req.URL, map[string]string{
69072		"project":              c.project,
69073		"zone":                 c.zone,
69074		"networkEndpointGroup": c.networkEndpointGroup,
69075	})
69076	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69077}
69078
69079// Do executes the "compute.networkEndpointGroups.listNetworkEndpoints" call.
69080// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
69081// will be non-nil. Any non-2xx status code is an error. Response
69082// headers are in either
69083// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
69084// (if a response was returned at all) in
69085// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
69086// whether the returned error was because http.StatusNotModified was
69087// returned.
69088func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
69089	gensupport.SetOptions(c.urlParams_, opts...)
69090	res, err := c.doRequest("json")
69091	if res != nil && res.StatusCode == http.StatusNotModified {
69092		if res.Body != nil {
69093			res.Body.Close()
69094		}
69095		return nil, &googleapi.Error{
69096			Code:   res.StatusCode,
69097			Header: res.Header,
69098		}
69099	}
69100	if err != nil {
69101		return nil, err
69102	}
69103	defer googleapi.CloseBody(res)
69104	if err := googleapi.CheckResponse(res); err != nil {
69105		return nil, err
69106	}
69107	ret := &NetworkEndpointGroupsListNetworkEndpoints{
69108		ServerResponse: googleapi.ServerResponse{
69109			Header:         res.Header,
69110			HTTPStatusCode: res.StatusCode,
69111		},
69112	}
69113	target := &ret
69114	if err := gensupport.DecodeResponse(target, res); err != nil {
69115		return nil, err
69116	}
69117	return ret, nil
69118	// {
69119	//   "description": "Lists the network endpoints in the specified network endpoint group.",
69120	//   "httpMethod": "POST",
69121	//   "id": "compute.networkEndpointGroups.listNetworkEndpoints",
69122	//   "parameterOrder": [
69123	//     "project",
69124	//     "zone",
69125	//     "networkEndpointGroup"
69126	//   ],
69127	//   "parameters": {
69128	//     "filter": {
69129	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
69130	//       "location": "query",
69131	//       "type": "string"
69132	//     },
69133	//     "maxResults": {
69134	//       "default": "500",
69135	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
69136	//       "format": "uint32",
69137	//       "location": "query",
69138	//       "minimum": "0",
69139	//       "type": "integer"
69140	//     },
69141	//     "networkEndpointGroup": {
69142	//       "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.",
69143	//       "location": "path",
69144	//       "required": true,
69145	//       "type": "string"
69146	//     },
69147	//     "orderBy": {
69148	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
69149	//       "location": "query",
69150	//       "type": "string"
69151	//     },
69152	//     "pageToken": {
69153	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
69154	//       "location": "query",
69155	//       "type": "string"
69156	//     },
69157	//     "project": {
69158	//       "description": "Project ID for this request.",
69159	//       "location": "path",
69160	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69161	//       "required": true,
69162	//       "type": "string"
69163	//     },
69164	//     "zone": {
69165	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
69166	//       "location": "path",
69167	//       "required": true,
69168	//       "type": "string"
69169	//     }
69170	//   },
69171	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
69172	//   "request": {
69173	//     "$ref": "NetworkEndpointGroupsListEndpointsRequest"
69174	//   },
69175	//   "response": {
69176	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
69177	//   },
69178	//   "scopes": [
69179	//     "https://www.googleapis.com/auth/cloud-platform",
69180	//     "https://www.googleapis.com/auth/compute",
69181	//     "https://www.googleapis.com/auth/compute.readonly"
69182	//   ]
69183	// }
69184
69185}
69186
69187// Pages invokes f for each page of results.
69188// A non-nil error returned from f will halt the iteration.
69189// The provided context supersedes any context provided to the Context method.
69190func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
69191	c.ctx_ = ctx
69192	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
69193	for {
69194		x, err := c.Do()
69195		if err != nil {
69196			return err
69197		}
69198		if err := f(x); err != nil {
69199			return err
69200		}
69201		if x.NextPageToken == "" {
69202			return nil
69203		}
69204		c.PageToken(x.NextPageToken)
69205	}
69206}
69207
69208// method id "compute.networkEndpointGroups.testIamPermissions":
69209
69210type NetworkEndpointGroupsTestIamPermissionsCall struct {
69211	s                      *Service
69212	project                string
69213	zone                   string
69214	resource               string
69215	testpermissionsrequest *TestPermissionsRequest
69216	urlParams_             gensupport.URLParams
69217	ctx_                   context.Context
69218	header_                http.Header
69219}
69220
69221// TestIamPermissions: Returns permissions that a caller has on the
69222// specified resource.
69223func (r *NetworkEndpointGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworkEndpointGroupsTestIamPermissionsCall {
69224	c := &NetworkEndpointGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69225	c.project = project
69226	c.zone = zone
69227	c.resource = resource
69228	c.testpermissionsrequest = testpermissionsrequest
69229	return c
69230}
69231
69232// Fields allows partial responses to be retrieved. See
69233// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69234// for more information.
69235func (c *NetworkEndpointGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsTestIamPermissionsCall {
69236	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69237	return c
69238}
69239
69240// Context sets the context to be used in this call's Do method. Any
69241// pending HTTP request will be aborted if the provided context is
69242// canceled.
69243func (c *NetworkEndpointGroupsTestIamPermissionsCall) Context(ctx context.Context) *NetworkEndpointGroupsTestIamPermissionsCall {
69244	c.ctx_ = ctx
69245	return c
69246}
69247
69248// Header returns an http.Header that can be modified by the caller to
69249// add HTTP headers to the request.
69250func (c *NetworkEndpointGroupsTestIamPermissionsCall) Header() http.Header {
69251	if c.header_ == nil {
69252		c.header_ = make(http.Header)
69253	}
69254	return c.header_
69255}
69256
69257func (c *NetworkEndpointGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
69258	reqHeaders := make(http.Header)
69259	for k, v := range c.header_ {
69260		reqHeaders[k] = v
69261	}
69262	reqHeaders.Set("User-Agent", c.s.userAgent())
69263	var body io.Reader = nil
69264	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
69265	if err != nil {
69266		return nil, err
69267	}
69268	reqHeaders.Set("Content-Type", "application/json")
69269	c.urlParams_.Set("alt", alt)
69270	c.urlParams_.Set("prettyPrint", "false")
69271	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions")
69272	urls += "?" + c.urlParams_.Encode()
69273	req, err := http.NewRequest("POST", urls, body)
69274	if err != nil {
69275		return nil, err
69276	}
69277	req.Header = reqHeaders
69278	googleapi.Expand(req.URL, map[string]string{
69279		"project":  c.project,
69280		"zone":     c.zone,
69281		"resource": c.resource,
69282	})
69283	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69284}
69285
69286// Do executes the "compute.networkEndpointGroups.testIamPermissions" call.
69287// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
69288// non-2xx status code is an error. Response headers are in either
69289// *TestPermissionsResponse.ServerResponse.Header or (if a response was
69290// returned at all) in error.(*googleapi.Error).Header. Use
69291// googleapi.IsNotModified to check whether the returned error was
69292// because http.StatusNotModified was returned.
69293func (c *NetworkEndpointGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
69294	gensupport.SetOptions(c.urlParams_, opts...)
69295	res, err := c.doRequest("json")
69296	if res != nil && res.StatusCode == http.StatusNotModified {
69297		if res.Body != nil {
69298			res.Body.Close()
69299		}
69300		return nil, &googleapi.Error{
69301			Code:   res.StatusCode,
69302			Header: res.Header,
69303		}
69304	}
69305	if err != nil {
69306		return nil, err
69307	}
69308	defer googleapi.CloseBody(res)
69309	if err := googleapi.CheckResponse(res); err != nil {
69310		return nil, err
69311	}
69312	ret := &TestPermissionsResponse{
69313		ServerResponse: googleapi.ServerResponse{
69314			Header:         res.Header,
69315			HTTPStatusCode: res.StatusCode,
69316		},
69317	}
69318	target := &ret
69319	if err := gensupport.DecodeResponse(target, res); err != nil {
69320		return nil, err
69321	}
69322	return ret, nil
69323	// {
69324	//   "description": "Returns permissions that a caller has on the specified resource.",
69325	//   "httpMethod": "POST",
69326	//   "id": "compute.networkEndpointGroups.testIamPermissions",
69327	//   "parameterOrder": [
69328	//     "project",
69329	//     "zone",
69330	//     "resource"
69331	//   ],
69332	//   "parameters": {
69333	//     "project": {
69334	//       "description": "Project ID for this request.",
69335	//       "location": "path",
69336	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69337	//       "required": true,
69338	//       "type": "string"
69339	//     },
69340	//     "resource": {
69341	//       "description": "Name or id of the resource for this request.",
69342	//       "location": "path",
69343	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69344	//       "required": true,
69345	//       "type": "string"
69346	//     },
69347	//     "zone": {
69348	//       "description": "The name of the zone for this request.",
69349	//       "location": "path",
69350	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
69351	//       "required": true,
69352	//       "type": "string"
69353	//     }
69354	//   },
69355	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions",
69356	//   "request": {
69357	//     "$ref": "TestPermissionsRequest"
69358	//   },
69359	//   "response": {
69360	//     "$ref": "TestPermissionsResponse"
69361	//   },
69362	//   "scopes": [
69363	//     "https://www.googleapis.com/auth/cloud-platform",
69364	//     "https://www.googleapis.com/auth/compute",
69365	//     "https://www.googleapis.com/auth/compute.readonly"
69366	//   ]
69367	// }
69368
69369}
69370
69371// method id "compute.networks.addPeering":
69372
69373type NetworksAddPeeringCall struct {
69374	s                         *Service
69375	project                   string
69376	network                   string
69377	networksaddpeeringrequest *NetworksAddPeeringRequest
69378	urlParams_                gensupport.URLParams
69379	ctx_                      context.Context
69380	header_                   http.Header
69381}
69382
69383// AddPeering: Adds a peering to the specified network.
69384func (r *NetworksService) AddPeering(project string, network string, networksaddpeeringrequest *NetworksAddPeeringRequest) *NetworksAddPeeringCall {
69385	c := &NetworksAddPeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69386	c.project = project
69387	c.network = network
69388	c.networksaddpeeringrequest = networksaddpeeringrequest
69389	return c
69390}
69391
69392// RequestId sets the optional parameter "requestId": An optional
69393// request ID to identify requests. Specify a unique request ID so that
69394// if you must retry your request, the server will know to ignore the
69395// request if it has already been completed.
69396//
69397// For example, consider a situation where you make an initial request
69398// and the request times out. If you make the request again with the
69399// same request ID, the server can check if original operation with the
69400// same request ID was received, and if so, will ignore the second
69401// request. This prevents clients from accidentally creating duplicate
69402// commitments.
69403//
69404// The request ID must be a valid UUID with the exception that zero UUID
69405// is not supported (00000000-0000-0000-0000-000000000000).
69406func (c *NetworksAddPeeringCall) RequestId(requestId string) *NetworksAddPeeringCall {
69407	c.urlParams_.Set("requestId", requestId)
69408	return c
69409}
69410
69411// Fields allows partial responses to be retrieved. See
69412// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69413// for more information.
69414func (c *NetworksAddPeeringCall) Fields(s ...googleapi.Field) *NetworksAddPeeringCall {
69415	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69416	return c
69417}
69418
69419// Context sets the context to be used in this call's Do method. Any
69420// pending HTTP request will be aborted if the provided context is
69421// canceled.
69422func (c *NetworksAddPeeringCall) Context(ctx context.Context) *NetworksAddPeeringCall {
69423	c.ctx_ = ctx
69424	return c
69425}
69426
69427// Header returns an http.Header that can be modified by the caller to
69428// add HTTP headers to the request.
69429func (c *NetworksAddPeeringCall) Header() http.Header {
69430	if c.header_ == nil {
69431		c.header_ = make(http.Header)
69432	}
69433	return c.header_
69434}
69435
69436func (c *NetworksAddPeeringCall) doRequest(alt string) (*http.Response, error) {
69437	reqHeaders := make(http.Header)
69438	for k, v := range c.header_ {
69439		reqHeaders[k] = v
69440	}
69441	reqHeaders.Set("User-Agent", c.s.userAgent())
69442	var body io.Reader = nil
69443	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksaddpeeringrequest)
69444	if err != nil {
69445		return nil, err
69446	}
69447	reqHeaders.Set("Content-Type", "application/json")
69448	c.urlParams_.Set("alt", alt)
69449	c.urlParams_.Set("prettyPrint", "false")
69450	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/addPeering")
69451	urls += "?" + c.urlParams_.Encode()
69452	req, err := http.NewRequest("POST", urls, body)
69453	if err != nil {
69454		return nil, err
69455	}
69456	req.Header = reqHeaders
69457	googleapi.Expand(req.URL, map[string]string{
69458		"project": c.project,
69459		"network": c.network,
69460	})
69461	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69462}
69463
69464// Do executes the "compute.networks.addPeering" call.
69465// Exactly one of *Operation or error will be non-nil. Any non-2xx
69466// status code is an error. Response headers are in either
69467// *Operation.ServerResponse.Header or (if a response was returned at
69468// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69469// to check whether the returned error was because
69470// http.StatusNotModified was returned.
69471func (c *NetworksAddPeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69472	gensupport.SetOptions(c.urlParams_, opts...)
69473	res, err := c.doRequest("json")
69474	if res != nil && res.StatusCode == http.StatusNotModified {
69475		if res.Body != nil {
69476			res.Body.Close()
69477		}
69478		return nil, &googleapi.Error{
69479			Code:   res.StatusCode,
69480			Header: res.Header,
69481		}
69482	}
69483	if err != nil {
69484		return nil, err
69485	}
69486	defer googleapi.CloseBody(res)
69487	if err := googleapi.CheckResponse(res); err != nil {
69488		return nil, err
69489	}
69490	ret := &Operation{
69491		ServerResponse: googleapi.ServerResponse{
69492			Header:         res.Header,
69493			HTTPStatusCode: res.StatusCode,
69494		},
69495	}
69496	target := &ret
69497	if err := gensupport.DecodeResponse(target, res); err != nil {
69498		return nil, err
69499	}
69500	return ret, nil
69501	// {
69502	//   "description": "Adds a peering to the specified network.",
69503	//   "httpMethod": "POST",
69504	//   "id": "compute.networks.addPeering",
69505	//   "parameterOrder": [
69506	//     "project",
69507	//     "network"
69508	//   ],
69509	//   "parameters": {
69510	//     "network": {
69511	//       "description": "Name of the network resource to add peering to.",
69512	//       "location": "path",
69513	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69514	//       "required": true,
69515	//       "type": "string"
69516	//     },
69517	//     "project": {
69518	//       "description": "Project ID for this request.",
69519	//       "location": "path",
69520	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69521	//       "required": true,
69522	//       "type": "string"
69523	//     },
69524	//     "requestId": {
69525	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69526	//       "location": "query",
69527	//       "type": "string"
69528	//     }
69529	//   },
69530	//   "path": "{project}/global/networks/{network}/addPeering",
69531	//   "request": {
69532	//     "$ref": "NetworksAddPeeringRequest"
69533	//   },
69534	//   "response": {
69535	//     "$ref": "Operation"
69536	//   },
69537	//   "scopes": [
69538	//     "https://www.googleapis.com/auth/cloud-platform",
69539	//     "https://www.googleapis.com/auth/compute"
69540	//   ]
69541	// }
69542
69543}
69544
69545// method id "compute.networks.delete":
69546
69547type NetworksDeleteCall struct {
69548	s          *Service
69549	project    string
69550	network    string
69551	urlParams_ gensupport.URLParams
69552	ctx_       context.Context
69553	header_    http.Header
69554}
69555
69556// Delete: Deletes the specified network.
69557// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/delete
69558func (r *NetworksService) Delete(project string, network string) *NetworksDeleteCall {
69559	c := &NetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69560	c.project = project
69561	c.network = network
69562	return c
69563}
69564
69565// RequestId sets the optional parameter "requestId": An optional
69566// request ID to identify requests. Specify a unique request ID so that
69567// if you must retry your request, the server will know to ignore the
69568// request if it has already been completed.
69569//
69570// For example, consider a situation where you make an initial request
69571// and the request times out. If you make the request again with the
69572// same request ID, the server can check if original operation with the
69573// same request ID was received, and if so, will ignore the second
69574// request. This prevents clients from accidentally creating duplicate
69575// commitments.
69576//
69577// The request ID must be a valid UUID with the exception that zero UUID
69578// is not supported (00000000-0000-0000-0000-000000000000).
69579func (c *NetworksDeleteCall) RequestId(requestId string) *NetworksDeleteCall {
69580	c.urlParams_.Set("requestId", requestId)
69581	return c
69582}
69583
69584// Fields allows partial responses to be retrieved. See
69585// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69586// for more information.
69587func (c *NetworksDeleteCall) Fields(s ...googleapi.Field) *NetworksDeleteCall {
69588	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69589	return c
69590}
69591
69592// Context sets the context to be used in this call's Do method. Any
69593// pending HTTP request will be aborted if the provided context is
69594// canceled.
69595func (c *NetworksDeleteCall) Context(ctx context.Context) *NetworksDeleteCall {
69596	c.ctx_ = ctx
69597	return c
69598}
69599
69600// Header returns an http.Header that can be modified by the caller to
69601// add HTTP headers to the request.
69602func (c *NetworksDeleteCall) Header() http.Header {
69603	if c.header_ == nil {
69604		c.header_ = make(http.Header)
69605	}
69606	return c.header_
69607}
69608
69609func (c *NetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
69610	reqHeaders := make(http.Header)
69611	for k, v := range c.header_ {
69612		reqHeaders[k] = v
69613	}
69614	reqHeaders.Set("User-Agent", c.s.userAgent())
69615	var body io.Reader = nil
69616	c.urlParams_.Set("alt", alt)
69617	c.urlParams_.Set("prettyPrint", "false")
69618	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
69619	urls += "?" + c.urlParams_.Encode()
69620	req, err := http.NewRequest("DELETE", urls, body)
69621	if err != nil {
69622		return nil, err
69623	}
69624	req.Header = reqHeaders
69625	googleapi.Expand(req.URL, map[string]string{
69626		"project": c.project,
69627		"network": c.network,
69628	})
69629	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69630}
69631
69632// Do executes the "compute.networks.delete" call.
69633// Exactly one of *Operation or error will be non-nil. Any non-2xx
69634// status code is an error. Response headers are in either
69635// *Operation.ServerResponse.Header or (if a response was returned at
69636// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69637// to check whether the returned error was because
69638// http.StatusNotModified was returned.
69639func (c *NetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69640	gensupport.SetOptions(c.urlParams_, opts...)
69641	res, err := c.doRequest("json")
69642	if res != nil && res.StatusCode == http.StatusNotModified {
69643		if res.Body != nil {
69644			res.Body.Close()
69645		}
69646		return nil, &googleapi.Error{
69647			Code:   res.StatusCode,
69648			Header: res.Header,
69649		}
69650	}
69651	if err != nil {
69652		return nil, err
69653	}
69654	defer googleapi.CloseBody(res)
69655	if err := googleapi.CheckResponse(res); err != nil {
69656		return nil, err
69657	}
69658	ret := &Operation{
69659		ServerResponse: googleapi.ServerResponse{
69660			Header:         res.Header,
69661			HTTPStatusCode: res.StatusCode,
69662		},
69663	}
69664	target := &ret
69665	if err := gensupport.DecodeResponse(target, res); err != nil {
69666		return nil, err
69667	}
69668	return ret, nil
69669	// {
69670	//   "description": "Deletes the specified network.",
69671	//   "httpMethod": "DELETE",
69672	//   "id": "compute.networks.delete",
69673	//   "parameterOrder": [
69674	//     "project",
69675	//     "network"
69676	//   ],
69677	//   "parameters": {
69678	//     "network": {
69679	//       "description": "Name of the network to delete.",
69680	//       "location": "path",
69681	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69682	//       "required": true,
69683	//       "type": "string"
69684	//     },
69685	//     "project": {
69686	//       "description": "Project ID for this request.",
69687	//       "location": "path",
69688	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69689	//       "required": true,
69690	//       "type": "string"
69691	//     },
69692	//     "requestId": {
69693	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69694	//       "location": "query",
69695	//       "type": "string"
69696	//     }
69697	//   },
69698	//   "path": "{project}/global/networks/{network}",
69699	//   "response": {
69700	//     "$ref": "Operation"
69701	//   },
69702	//   "scopes": [
69703	//     "https://www.googleapis.com/auth/cloud-platform",
69704	//     "https://www.googleapis.com/auth/compute"
69705	//   ]
69706	// }
69707
69708}
69709
69710// method id "compute.networks.get":
69711
69712type NetworksGetCall struct {
69713	s            *Service
69714	project      string
69715	network      string
69716	urlParams_   gensupport.URLParams
69717	ifNoneMatch_ string
69718	ctx_         context.Context
69719	header_      http.Header
69720}
69721
69722// Get: Returns the specified network. Gets a list of available networks
69723// by making a list() request.
69724// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/get
69725func (r *NetworksService) Get(project string, network string) *NetworksGetCall {
69726	c := &NetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69727	c.project = project
69728	c.network = network
69729	return c
69730}
69731
69732// Fields allows partial responses to be retrieved. See
69733// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69734// for more information.
69735func (c *NetworksGetCall) Fields(s ...googleapi.Field) *NetworksGetCall {
69736	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69737	return c
69738}
69739
69740// IfNoneMatch sets the optional parameter which makes the operation
69741// fail if the object's ETag matches the given value. This is useful for
69742// getting updates only after the object has changed since the last
69743// request. Use googleapi.IsNotModified to check whether the response
69744// error from Do is the result of In-None-Match.
69745func (c *NetworksGetCall) IfNoneMatch(entityTag string) *NetworksGetCall {
69746	c.ifNoneMatch_ = entityTag
69747	return c
69748}
69749
69750// Context sets the context to be used in this call's Do method. Any
69751// pending HTTP request will be aborted if the provided context is
69752// canceled.
69753func (c *NetworksGetCall) Context(ctx context.Context) *NetworksGetCall {
69754	c.ctx_ = ctx
69755	return c
69756}
69757
69758// Header returns an http.Header that can be modified by the caller to
69759// add HTTP headers to the request.
69760func (c *NetworksGetCall) Header() http.Header {
69761	if c.header_ == nil {
69762		c.header_ = make(http.Header)
69763	}
69764	return c.header_
69765}
69766
69767func (c *NetworksGetCall) doRequest(alt string) (*http.Response, error) {
69768	reqHeaders := make(http.Header)
69769	for k, v := range c.header_ {
69770		reqHeaders[k] = v
69771	}
69772	reqHeaders.Set("User-Agent", c.s.userAgent())
69773	if c.ifNoneMatch_ != "" {
69774		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69775	}
69776	var body io.Reader = nil
69777	c.urlParams_.Set("alt", alt)
69778	c.urlParams_.Set("prettyPrint", "false")
69779	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
69780	urls += "?" + c.urlParams_.Encode()
69781	req, err := http.NewRequest("GET", urls, body)
69782	if err != nil {
69783		return nil, err
69784	}
69785	req.Header = reqHeaders
69786	googleapi.Expand(req.URL, map[string]string{
69787		"project": c.project,
69788		"network": c.network,
69789	})
69790	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69791}
69792
69793// Do executes the "compute.networks.get" call.
69794// Exactly one of *Network or error will be non-nil. Any non-2xx status
69795// code is an error. Response headers are in either
69796// *Network.ServerResponse.Header or (if a response was returned at all)
69797// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
69798// check whether the returned error was because http.StatusNotModified
69799// was returned.
69800func (c *NetworksGetCall) Do(opts ...googleapi.CallOption) (*Network, error) {
69801	gensupport.SetOptions(c.urlParams_, opts...)
69802	res, err := c.doRequest("json")
69803	if res != nil && res.StatusCode == http.StatusNotModified {
69804		if res.Body != nil {
69805			res.Body.Close()
69806		}
69807		return nil, &googleapi.Error{
69808			Code:   res.StatusCode,
69809			Header: res.Header,
69810		}
69811	}
69812	if err != nil {
69813		return nil, err
69814	}
69815	defer googleapi.CloseBody(res)
69816	if err := googleapi.CheckResponse(res); err != nil {
69817		return nil, err
69818	}
69819	ret := &Network{
69820		ServerResponse: googleapi.ServerResponse{
69821			Header:         res.Header,
69822			HTTPStatusCode: res.StatusCode,
69823		},
69824	}
69825	target := &ret
69826	if err := gensupport.DecodeResponse(target, res); err != nil {
69827		return nil, err
69828	}
69829	return ret, nil
69830	// {
69831	//   "description": "Returns the specified network. Gets a list of available networks by making a list() request.",
69832	//   "httpMethod": "GET",
69833	//   "id": "compute.networks.get",
69834	//   "parameterOrder": [
69835	//     "project",
69836	//     "network"
69837	//   ],
69838	//   "parameters": {
69839	//     "network": {
69840	//       "description": "Name of the network to return.",
69841	//       "location": "path",
69842	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69843	//       "required": true,
69844	//       "type": "string"
69845	//     },
69846	//     "project": {
69847	//       "description": "Project ID for this request.",
69848	//       "location": "path",
69849	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69850	//       "required": true,
69851	//       "type": "string"
69852	//     }
69853	//   },
69854	//   "path": "{project}/global/networks/{network}",
69855	//   "response": {
69856	//     "$ref": "Network"
69857	//   },
69858	//   "scopes": [
69859	//     "https://www.googleapis.com/auth/cloud-platform",
69860	//     "https://www.googleapis.com/auth/compute",
69861	//     "https://www.googleapis.com/auth/compute.readonly"
69862	//   ]
69863	// }
69864
69865}
69866
69867// method id "compute.networks.insert":
69868
69869type NetworksInsertCall struct {
69870	s          *Service
69871	project    string
69872	network    *Network
69873	urlParams_ gensupport.URLParams
69874	ctx_       context.Context
69875	header_    http.Header
69876}
69877
69878// Insert: Creates a network in the specified project using the data
69879// included in the request.
69880// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/insert
69881func (r *NetworksService) Insert(project string, network *Network) *NetworksInsertCall {
69882	c := &NetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69883	c.project = project
69884	c.network = network
69885	return c
69886}
69887
69888// RequestId sets the optional parameter "requestId": An optional
69889// request ID to identify requests. Specify a unique request ID so that
69890// if you must retry your request, the server will know to ignore the
69891// request if it has already been completed.
69892//
69893// For example, consider a situation where you make an initial request
69894// and the request times out. If you make the request again with the
69895// same request ID, the server can check if original operation with the
69896// same request ID was received, and if so, will ignore the second
69897// request. This prevents clients from accidentally creating duplicate
69898// commitments.
69899//
69900// The request ID must be a valid UUID with the exception that zero UUID
69901// is not supported (00000000-0000-0000-0000-000000000000).
69902func (c *NetworksInsertCall) RequestId(requestId string) *NetworksInsertCall {
69903	c.urlParams_.Set("requestId", requestId)
69904	return c
69905}
69906
69907// Fields allows partial responses to be retrieved. See
69908// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69909// for more information.
69910func (c *NetworksInsertCall) Fields(s ...googleapi.Field) *NetworksInsertCall {
69911	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69912	return c
69913}
69914
69915// Context sets the context to be used in this call's Do method. Any
69916// pending HTTP request will be aborted if the provided context is
69917// canceled.
69918func (c *NetworksInsertCall) Context(ctx context.Context) *NetworksInsertCall {
69919	c.ctx_ = ctx
69920	return c
69921}
69922
69923// Header returns an http.Header that can be modified by the caller to
69924// add HTTP headers to the request.
69925func (c *NetworksInsertCall) Header() http.Header {
69926	if c.header_ == nil {
69927		c.header_ = make(http.Header)
69928	}
69929	return c.header_
69930}
69931
69932func (c *NetworksInsertCall) doRequest(alt string) (*http.Response, error) {
69933	reqHeaders := make(http.Header)
69934	for k, v := range c.header_ {
69935		reqHeaders[k] = v
69936	}
69937	reqHeaders.Set("User-Agent", c.s.userAgent())
69938	var body io.Reader = nil
69939	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network)
69940	if err != nil {
69941		return nil, err
69942	}
69943	reqHeaders.Set("Content-Type", "application/json")
69944	c.urlParams_.Set("alt", alt)
69945	c.urlParams_.Set("prettyPrint", "false")
69946	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks")
69947	urls += "?" + c.urlParams_.Encode()
69948	req, err := http.NewRequest("POST", urls, body)
69949	if err != nil {
69950		return nil, err
69951	}
69952	req.Header = reqHeaders
69953	googleapi.Expand(req.URL, map[string]string{
69954		"project": c.project,
69955	})
69956	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69957}
69958
69959// Do executes the "compute.networks.insert" call.
69960// Exactly one of *Operation or error will be non-nil. Any non-2xx
69961// status code is an error. Response headers are in either
69962// *Operation.ServerResponse.Header or (if a response was returned at
69963// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69964// to check whether the returned error was because
69965// http.StatusNotModified was returned.
69966func (c *NetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69967	gensupport.SetOptions(c.urlParams_, opts...)
69968	res, err := c.doRequest("json")
69969	if res != nil && res.StatusCode == http.StatusNotModified {
69970		if res.Body != nil {
69971			res.Body.Close()
69972		}
69973		return nil, &googleapi.Error{
69974			Code:   res.StatusCode,
69975			Header: res.Header,
69976		}
69977	}
69978	if err != nil {
69979		return nil, err
69980	}
69981	defer googleapi.CloseBody(res)
69982	if err := googleapi.CheckResponse(res); err != nil {
69983		return nil, err
69984	}
69985	ret := &Operation{
69986		ServerResponse: googleapi.ServerResponse{
69987			Header:         res.Header,
69988			HTTPStatusCode: res.StatusCode,
69989		},
69990	}
69991	target := &ret
69992	if err := gensupport.DecodeResponse(target, res); err != nil {
69993		return nil, err
69994	}
69995	return ret, nil
69996	// {
69997	//   "description": "Creates a network in the specified project using the data included in the request.",
69998	//   "httpMethod": "POST",
69999	//   "id": "compute.networks.insert",
70000	//   "parameterOrder": [
70001	//     "project"
70002	//   ],
70003	//   "parameters": {
70004	//     "project": {
70005	//       "description": "Project ID for this request.",
70006	//       "location": "path",
70007	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70008	//       "required": true,
70009	//       "type": "string"
70010	//     },
70011	//     "requestId": {
70012	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70013	//       "location": "query",
70014	//       "type": "string"
70015	//     }
70016	//   },
70017	//   "path": "{project}/global/networks",
70018	//   "request": {
70019	//     "$ref": "Network"
70020	//   },
70021	//   "response": {
70022	//     "$ref": "Operation"
70023	//   },
70024	//   "scopes": [
70025	//     "https://www.googleapis.com/auth/cloud-platform",
70026	//     "https://www.googleapis.com/auth/compute"
70027	//   ]
70028	// }
70029
70030}
70031
70032// method id "compute.networks.list":
70033
70034type NetworksListCall struct {
70035	s            *Service
70036	project      string
70037	urlParams_   gensupport.URLParams
70038	ifNoneMatch_ string
70039	ctx_         context.Context
70040	header_      http.Header
70041}
70042
70043// List: Retrieves the list of networks available to the specified
70044// project.
70045// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/list
70046func (r *NetworksService) List(project string) *NetworksListCall {
70047	c := &NetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70048	c.project = project
70049	return c
70050}
70051
70052// Filter sets the optional parameter "filter": A filter expression that
70053// filters resources listed in the response. The expression must specify
70054// the field name, a comparison operator, and the value that you want to
70055// use for filtering. The value must be a string, a number, or a
70056// boolean. The comparison operator must be either =, !=, >, or <.
70057//
70058// For example, if you are filtering Compute Engine instances, you can
70059// exclude instances named example-instance by specifying name !=
70060// example-instance.
70061//
70062// You can also filter nested fields. For example, you could specify
70063// scheduling.automaticRestart = false to include instances only if they
70064// are not scheduled for automatic restarts. You can use filtering on
70065// nested fields to filter based on resource labels.
70066//
70067// To filter on multiple expressions, provide each separate expression
70068// within parentheses. For example, (scheduling.automaticRestart = true)
70069// (cpuPlatform = "Intel Skylake"). By default, each expression is an
70070// AND expression. However, you can include AND and OR expressions
70071// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
70072// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
70073// true).
70074func (c *NetworksListCall) Filter(filter string) *NetworksListCall {
70075	c.urlParams_.Set("filter", filter)
70076	return c
70077}
70078
70079// MaxResults sets the optional parameter "maxResults": The maximum
70080// number of results per page that should be returned. If the number of
70081// available results is larger than maxResults, Compute Engine returns a
70082// nextPageToken that can be used to get the next page of results in
70083// subsequent list requests. Acceptable values are 0 to 500, inclusive.
70084// (Default: 500)
70085func (c *NetworksListCall) MaxResults(maxResults int64) *NetworksListCall {
70086	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
70087	return c
70088}
70089
70090// OrderBy sets the optional parameter "orderBy": Sorts list results by
70091// a certain order. By default, results are returned in alphanumerical
70092// order based on the resource name.
70093//
70094// You can also sort results in descending order based on the creation
70095// timestamp using orderBy="creationTimestamp desc". This sorts results
70096// based on the creationTimestamp field in reverse chronological order
70097// (newest result first). Use this to sort resources like operations so
70098// that the newest operation is returned first.
70099//
70100// Currently, only sorting by name or creationTimestamp desc is
70101// supported.
70102func (c *NetworksListCall) OrderBy(orderBy string) *NetworksListCall {
70103	c.urlParams_.Set("orderBy", orderBy)
70104	return c
70105}
70106
70107// PageToken sets the optional parameter "pageToken": Specifies a page
70108// token to use. Set pageToken to the nextPageToken returned by a
70109// previous list request to get the next page of results.
70110func (c *NetworksListCall) PageToken(pageToken string) *NetworksListCall {
70111	c.urlParams_.Set("pageToken", pageToken)
70112	return c
70113}
70114
70115// Fields allows partial responses to be retrieved. See
70116// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70117// for more information.
70118func (c *NetworksListCall) Fields(s ...googleapi.Field) *NetworksListCall {
70119	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70120	return c
70121}
70122
70123// IfNoneMatch sets the optional parameter which makes the operation
70124// fail if the object's ETag matches the given value. This is useful for
70125// getting updates only after the object has changed since the last
70126// request. Use googleapi.IsNotModified to check whether the response
70127// error from Do is the result of In-None-Match.
70128func (c *NetworksListCall) IfNoneMatch(entityTag string) *NetworksListCall {
70129	c.ifNoneMatch_ = entityTag
70130	return c
70131}
70132
70133// Context sets the context to be used in this call's Do method. Any
70134// pending HTTP request will be aborted if the provided context is
70135// canceled.
70136func (c *NetworksListCall) Context(ctx context.Context) *NetworksListCall {
70137	c.ctx_ = ctx
70138	return c
70139}
70140
70141// Header returns an http.Header that can be modified by the caller to
70142// add HTTP headers to the request.
70143func (c *NetworksListCall) Header() http.Header {
70144	if c.header_ == nil {
70145		c.header_ = make(http.Header)
70146	}
70147	return c.header_
70148}
70149
70150func (c *NetworksListCall) doRequest(alt string) (*http.Response, error) {
70151	reqHeaders := make(http.Header)
70152	for k, v := range c.header_ {
70153		reqHeaders[k] = v
70154	}
70155	reqHeaders.Set("User-Agent", c.s.userAgent())
70156	if c.ifNoneMatch_ != "" {
70157		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70158	}
70159	var body io.Reader = nil
70160	c.urlParams_.Set("alt", alt)
70161	c.urlParams_.Set("prettyPrint", "false")
70162	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks")
70163	urls += "?" + c.urlParams_.Encode()
70164	req, err := http.NewRequest("GET", urls, body)
70165	if err != nil {
70166		return nil, err
70167	}
70168	req.Header = reqHeaders
70169	googleapi.Expand(req.URL, map[string]string{
70170		"project": c.project,
70171	})
70172	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70173}
70174
70175// Do executes the "compute.networks.list" call.
70176// Exactly one of *NetworkList or error will be non-nil. Any non-2xx
70177// status code is an error. Response headers are in either
70178// *NetworkList.ServerResponse.Header or (if a response was returned at
70179// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70180// to check whether the returned error was because
70181// http.StatusNotModified was returned.
70182func (c *NetworksListCall) Do(opts ...googleapi.CallOption) (*NetworkList, error) {
70183	gensupport.SetOptions(c.urlParams_, opts...)
70184	res, err := c.doRequest("json")
70185	if res != nil && res.StatusCode == http.StatusNotModified {
70186		if res.Body != nil {
70187			res.Body.Close()
70188		}
70189		return nil, &googleapi.Error{
70190			Code:   res.StatusCode,
70191			Header: res.Header,
70192		}
70193	}
70194	if err != nil {
70195		return nil, err
70196	}
70197	defer googleapi.CloseBody(res)
70198	if err := googleapi.CheckResponse(res); err != nil {
70199		return nil, err
70200	}
70201	ret := &NetworkList{
70202		ServerResponse: googleapi.ServerResponse{
70203			Header:         res.Header,
70204			HTTPStatusCode: res.StatusCode,
70205		},
70206	}
70207	target := &ret
70208	if err := gensupport.DecodeResponse(target, res); err != nil {
70209		return nil, err
70210	}
70211	return ret, nil
70212	// {
70213	//   "description": "Retrieves the list of networks available to the specified project.",
70214	//   "httpMethod": "GET",
70215	//   "id": "compute.networks.list",
70216	//   "parameterOrder": [
70217	//     "project"
70218	//   ],
70219	//   "parameters": {
70220	//     "filter": {
70221	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
70222	//       "location": "query",
70223	//       "type": "string"
70224	//     },
70225	//     "maxResults": {
70226	//       "default": "500",
70227	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
70228	//       "format": "uint32",
70229	//       "location": "query",
70230	//       "minimum": "0",
70231	//       "type": "integer"
70232	//     },
70233	//     "orderBy": {
70234	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
70235	//       "location": "query",
70236	//       "type": "string"
70237	//     },
70238	//     "pageToken": {
70239	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
70240	//       "location": "query",
70241	//       "type": "string"
70242	//     },
70243	//     "project": {
70244	//       "description": "Project ID for this request.",
70245	//       "location": "path",
70246	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70247	//       "required": true,
70248	//       "type": "string"
70249	//     }
70250	//   },
70251	//   "path": "{project}/global/networks",
70252	//   "response": {
70253	//     "$ref": "NetworkList"
70254	//   },
70255	//   "scopes": [
70256	//     "https://www.googleapis.com/auth/cloud-platform",
70257	//     "https://www.googleapis.com/auth/compute",
70258	//     "https://www.googleapis.com/auth/compute.readonly"
70259	//   ]
70260	// }
70261
70262}
70263
70264// Pages invokes f for each page of results.
70265// A non-nil error returned from f will halt the iteration.
70266// The provided context supersedes any context provided to the Context method.
70267func (c *NetworksListCall) Pages(ctx context.Context, f func(*NetworkList) error) error {
70268	c.ctx_ = ctx
70269	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
70270	for {
70271		x, err := c.Do()
70272		if err != nil {
70273			return err
70274		}
70275		if err := f(x); err != nil {
70276			return err
70277		}
70278		if x.NextPageToken == "" {
70279			return nil
70280		}
70281		c.PageToken(x.NextPageToken)
70282	}
70283}
70284
70285// method id "compute.networks.patch":
70286
70287type NetworksPatchCall struct {
70288	s          *Service
70289	project    string
70290	network    string
70291	network2   *Network
70292	urlParams_ gensupport.URLParams
70293	ctx_       context.Context
70294	header_    http.Header
70295}
70296
70297// Patch: Patches the specified network with the data included in the
70298// request. Only the following fields can be modified:
70299// routingConfig.routingMode.
70300func (r *NetworksService) Patch(project string, network string, network2 *Network) *NetworksPatchCall {
70301	c := &NetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70302	c.project = project
70303	c.network = network
70304	c.network2 = network2
70305	return c
70306}
70307
70308// RequestId sets the optional parameter "requestId": An optional
70309// request ID to identify requests. Specify a unique request ID so that
70310// if you must retry your request, the server will know to ignore the
70311// request if it has already been completed.
70312//
70313// For example, consider a situation where you make an initial request
70314// and the request times out. If you make the request again with the
70315// same request ID, the server can check if original operation with the
70316// same request ID was received, and if so, will ignore the second
70317// request. This prevents clients from accidentally creating duplicate
70318// commitments.
70319//
70320// The request ID must be a valid UUID with the exception that zero UUID
70321// is not supported (00000000-0000-0000-0000-000000000000).
70322func (c *NetworksPatchCall) RequestId(requestId string) *NetworksPatchCall {
70323	c.urlParams_.Set("requestId", requestId)
70324	return c
70325}
70326
70327// Fields allows partial responses to be retrieved. See
70328// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70329// for more information.
70330func (c *NetworksPatchCall) Fields(s ...googleapi.Field) *NetworksPatchCall {
70331	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70332	return c
70333}
70334
70335// Context sets the context to be used in this call's Do method. Any
70336// pending HTTP request will be aborted if the provided context is
70337// canceled.
70338func (c *NetworksPatchCall) Context(ctx context.Context) *NetworksPatchCall {
70339	c.ctx_ = ctx
70340	return c
70341}
70342
70343// Header returns an http.Header that can be modified by the caller to
70344// add HTTP headers to the request.
70345func (c *NetworksPatchCall) Header() http.Header {
70346	if c.header_ == nil {
70347		c.header_ = make(http.Header)
70348	}
70349	return c.header_
70350}
70351
70352func (c *NetworksPatchCall) doRequest(alt string) (*http.Response, error) {
70353	reqHeaders := make(http.Header)
70354	for k, v := range c.header_ {
70355		reqHeaders[k] = v
70356	}
70357	reqHeaders.Set("User-Agent", c.s.userAgent())
70358	var body io.Reader = nil
70359	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network2)
70360	if err != nil {
70361		return nil, err
70362	}
70363	reqHeaders.Set("Content-Type", "application/json")
70364	c.urlParams_.Set("alt", alt)
70365	c.urlParams_.Set("prettyPrint", "false")
70366	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
70367	urls += "?" + c.urlParams_.Encode()
70368	req, err := http.NewRequest("PATCH", urls, body)
70369	if err != nil {
70370		return nil, err
70371	}
70372	req.Header = reqHeaders
70373	googleapi.Expand(req.URL, map[string]string{
70374		"project": c.project,
70375		"network": c.network,
70376	})
70377	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70378}
70379
70380// Do executes the "compute.networks.patch" call.
70381// Exactly one of *Operation or error will be non-nil. Any non-2xx
70382// status code is an error. Response headers are in either
70383// *Operation.ServerResponse.Header or (if a response was returned at
70384// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70385// to check whether the returned error was because
70386// http.StatusNotModified was returned.
70387func (c *NetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70388	gensupport.SetOptions(c.urlParams_, opts...)
70389	res, err := c.doRequest("json")
70390	if res != nil && res.StatusCode == http.StatusNotModified {
70391		if res.Body != nil {
70392			res.Body.Close()
70393		}
70394		return nil, &googleapi.Error{
70395			Code:   res.StatusCode,
70396			Header: res.Header,
70397		}
70398	}
70399	if err != nil {
70400		return nil, err
70401	}
70402	defer googleapi.CloseBody(res)
70403	if err := googleapi.CheckResponse(res); err != nil {
70404		return nil, err
70405	}
70406	ret := &Operation{
70407		ServerResponse: googleapi.ServerResponse{
70408			Header:         res.Header,
70409			HTTPStatusCode: res.StatusCode,
70410		},
70411	}
70412	target := &ret
70413	if err := gensupport.DecodeResponse(target, res); err != nil {
70414		return nil, err
70415	}
70416	return ret, nil
70417	// {
70418	//   "description": "Patches the specified network with the data included in the request. Only the following fields can be modified: routingConfig.routingMode.",
70419	//   "httpMethod": "PATCH",
70420	//   "id": "compute.networks.patch",
70421	//   "parameterOrder": [
70422	//     "project",
70423	//     "network"
70424	//   ],
70425	//   "parameters": {
70426	//     "network": {
70427	//       "description": "Name of the network to update.",
70428	//       "location": "path",
70429	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70430	//       "required": true,
70431	//       "type": "string"
70432	//     },
70433	//     "project": {
70434	//       "description": "Project ID for this request.",
70435	//       "location": "path",
70436	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70437	//       "required": true,
70438	//       "type": "string"
70439	//     },
70440	//     "requestId": {
70441	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70442	//       "location": "query",
70443	//       "type": "string"
70444	//     }
70445	//   },
70446	//   "path": "{project}/global/networks/{network}",
70447	//   "request": {
70448	//     "$ref": "Network"
70449	//   },
70450	//   "response": {
70451	//     "$ref": "Operation"
70452	//   },
70453	//   "scopes": [
70454	//     "https://www.googleapis.com/auth/cloud-platform",
70455	//     "https://www.googleapis.com/auth/compute"
70456	//   ]
70457	// }
70458
70459}
70460
70461// method id "compute.networks.removePeering":
70462
70463type NetworksRemovePeeringCall struct {
70464	s                            *Service
70465	project                      string
70466	network                      string
70467	networksremovepeeringrequest *NetworksRemovePeeringRequest
70468	urlParams_                   gensupport.URLParams
70469	ctx_                         context.Context
70470	header_                      http.Header
70471}
70472
70473// RemovePeering: Removes a peering from the specified network.
70474func (r *NetworksService) RemovePeering(project string, network string, networksremovepeeringrequest *NetworksRemovePeeringRequest) *NetworksRemovePeeringCall {
70475	c := &NetworksRemovePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70476	c.project = project
70477	c.network = network
70478	c.networksremovepeeringrequest = networksremovepeeringrequest
70479	return c
70480}
70481
70482// RequestId sets the optional parameter "requestId": An optional
70483// request ID to identify requests. Specify a unique request ID so that
70484// if you must retry your request, the server will know to ignore the
70485// request if it has already been completed.
70486//
70487// For example, consider a situation where you make an initial request
70488// and the request times out. If you make the request again with the
70489// same request ID, the server can check if original operation with the
70490// same request ID was received, and if so, will ignore the second
70491// request. This prevents clients from accidentally creating duplicate
70492// commitments.
70493//
70494// The request ID must be a valid UUID with the exception that zero UUID
70495// is not supported (00000000-0000-0000-0000-000000000000).
70496func (c *NetworksRemovePeeringCall) RequestId(requestId string) *NetworksRemovePeeringCall {
70497	c.urlParams_.Set("requestId", requestId)
70498	return c
70499}
70500
70501// Fields allows partial responses to be retrieved. See
70502// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70503// for more information.
70504func (c *NetworksRemovePeeringCall) Fields(s ...googleapi.Field) *NetworksRemovePeeringCall {
70505	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70506	return c
70507}
70508
70509// Context sets the context to be used in this call's Do method. Any
70510// pending HTTP request will be aborted if the provided context is
70511// canceled.
70512func (c *NetworksRemovePeeringCall) Context(ctx context.Context) *NetworksRemovePeeringCall {
70513	c.ctx_ = ctx
70514	return c
70515}
70516
70517// Header returns an http.Header that can be modified by the caller to
70518// add HTTP headers to the request.
70519func (c *NetworksRemovePeeringCall) Header() http.Header {
70520	if c.header_ == nil {
70521		c.header_ = make(http.Header)
70522	}
70523	return c.header_
70524}
70525
70526func (c *NetworksRemovePeeringCall) doRequest(alt string) (*http.Response, error) {
70527	reqHeaders := make(http.Header)
70528	for k, v := range c.header_ {
70529		reqHeaders[k] = v
70530	}
70531	reqHeaders.Set("User-Agent", c.s.userAgent())
70532	var body io.Reader = nil
70533	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksremovepeeringrequest)
70534	if err != nil {
70535		return nil, err
70536	}
70537	reqHeaders.Set("Content-Type", "application/json")
70538	c.urlParams_.Set("alt", alt)
70539	c.urlParams_.Set("prettyPrint", "false")
70540	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/removePeering")
70541	urls += "?" + c.urlParams_.Encode()
70542	req, err := http.NewRequest("POST", urls, body)
70543	if err != nil {
70544		return nil, err
70545	}
70546	req.Header = reqHeaders
70547	googleapi.Expand(req.URL, map[string]string{
70548		"project": c.project,
70549		"network": c.network,
70550	})
70551	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70552}
70553
70554// Do executes the "compute.networks.removePeering" call.
70555// Exactly one of *Operation or error will be non-nil. Any non-2xx
70556// status code is an error. Response headers are in either
70557// *Operation.ServerResponse.Header or (if a response was returned at
70558// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70559// to check whether the returned error was because
70560// http.StatusNotModified was returned.
70561func (c *NetworksRemovePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70562	gensupport.SetOptions(c.urlParams_, opts...)
70563	res, err := c.doRequest("json")
70564	if res != nil && res.StatusCode == http.StatusNotModified {
70565		if res.Body != nil {
70566			res.Body.Close()
70567		}
70568		return nil, &googleapi.Error{
70569			Code:   res.StatusCode,
70570			Header: res.Header,
70571		}
70572	}
70573	if err != nil {
70574		return nil, err
70575	}
70576	defer googleapi.CloseBody(res)
70577	if err := googleapi.CheckResponse(res); err != nil {
70578		return nil, err
70579	}
70580	ret := &Operation{
70581		ServerResponse: googleapi.ServerResponse{
70582			Header:         res.Header,
70583			HTTPStatusCode: res.StatusCode,
70584		},
70585	}
70586	target := &ret
70587	if err := gensupport.DecodeResponse(target, res); err != nil {
70588		return nil, err
70589	}
70590	return ret, nil
70591	// {
70592	//   "description": "Removes a peering from the specified network.",
70593	//   "httpMethod": "POST",
70594	//   "id": "compute.networks.removePeering",
70595	//   "parameterOrder": [
70596	//     "project",
70597	//     "network"
70598	//   ],
70599	//   "parameters": {
70600	//     "network": {
70601	//       "description": "Name of the network resource to remove peering from.",
70602	//       "location": "path",
70603	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70604	//       "required": true,
70605	//       "type": "string"
70606	//     },
70607	//     "project": {
70608	//       "description": "Project ID for this request.",
70609	//       "location": "path",
70610	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70611	//       "required": true,
70612	//       "type": "string"
70613	//     },
70614	//     "requestId": {
70615	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70616	//       "location": "query",
70617	//       "type": "string"
70618	//     }
70619	//   },
70620	//   "path": "{project}/global/networks/{network}/removePeering",
70621	//   "request": {
70622	//     "$ref": "NetworksRemovePeeringRequest"
70623	//   },
70624	//   "response": {
70625	//     "$ref": "Operation"
70626	//   },
70627	//   "scopes": [
70628	//     "https://www.googleapis.com/auth/cloud-platform",
70629	//     "https://www.googleapis.com/auth/compute"
70630	//   ]
70631	// }
70632
70633}
70634
70635// method id "compute.networks.switchToCustomMode":
70636
70637type NetworksSwitchToCustomModeCall struct {
70638	s          *Service
70639	project    string
70640	network    string
70641	urlParams_ gensupport.URLParams
70642	ctx_       context.Context
70643	header_    http.Header
70644}
70645
70646// SwitchToCustomMode: Switches the network mode from auto subnet mode
70647// to custom subnet mode.
70648func (r *NetworksService) SwitchToCustomMode(project string, network string) *NetworksSwitchToCustomModeCall {
70649	c := &NetworksSwitchToCustomModeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70650	c.project = project
70651	c.network = network
70652	return c
70653}
70654
70655// RequestId sets the optional parameter "requestId": An optional
70656// request ID to identify requests. Specify a unique request ID so that
70657// if you must retry your request, the server will know to ignore the
70658// request if it has already been completed.
70659//
70660// For example, consider a situation where you make an initial request
70661// and the request times out. If you make the request again with the
70662// same request ID, the server can check if original operation with the
70663// same request ID was received, and if so, will ignore the second
70664// request. This prevents clients from accidentally creating duplicate
70665// commitments.
70666//
70667// The request ID must be a valid UUID with the exception that zero UUID
70668// is not supported (00000000-0000-0000-0000-000000000000).
70669func (c *NetworksSwitchToCustomModeCall) RequestId(requestId string) *NetworksSwitchToCustomModeCall {
70670	c.urlParams_.Set("requestId", requestId)
70671	return c
70672}
70673
70674// Fields allows partial responses to be retrieved. See
70675// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70676// for more information.
70677func (c *NetworksSwitchToCustomModeCall) Fields(s ...googleapi.Field) *NetworksSwitchToCustomModeCall {
70678	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70679	return c
70680}
70681
70682// Context sets the context to be used in this call's Do method. Any
70683// pending HTTP request will be aborted if the provided context is
70684// canceled.
70685func (c *NetworksSwitchToCustomModeCall) Context(ctx context.Context) *NetworksSwitchToCustomModeCall {
70686	c.ctx_ = ctx
70687	return c
70688}
70689
70690// Header returns an http.Header that can be modified by the caller to
70691// add HTTP headers to the request.
70692func (c *NetworksSwitchToCustomModeCall) Header() http.Header {
70693	if c.header_ == nil {
70694		c.header_ = make(http.Header)
70695	}
70696	return c.header_
70697}
70698
70699func (c *NetworksSwitchToCustomModeCall) doRequest(alt string) (*http.Response, error) {
70700	reqHeaders := make(http.Header)
70701	for k, v := range c.header_ {
70702		reqHeaders[k] = v
70703	}
70704	reqHeaders.Set("User-Agent", c.s.userAgent())
70705	var body io.Reader = nil
70706	c.urlParams_.Set("alt", alt)
70707	c.urlParams_.Set("prettyPrint", "false")
70708	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/switchToCustomMode")
70709	urls += "?" + c.urlParams_.Encode()
70710	req, err := http.NewRequest("POST", urls, body)
70711	if err != nil {
70712		return nil, err
70713	}
70714	req.Header = reqHeaders
70715	googleapi.Expand(req.URL, map[string]string{
70716		"project": c.project,
70717		"network": c.network,
70718	})
70719	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70720}
70721
70722// Do executes the "compute.networks.switchToCustomMode" call.
70723// Exactly one of *Operation or error will be non-nil. Any non-2xx
70724// status code is an error. Response headers are in either
70725// *Operation.ServerResponse.Header or (if a response was returned at
70726// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70727// to check whether the returned error was because
70728// http.StatusNotModified was returned.
70729func (c *NetworksSwitchToCustomModeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70730	gensupport.SetOptions(c.urlParams_, opts...)
70731	res, err := c.doRequest("json")
70732	if res != nil && res.StatusCode == http.StatusNotModified {
70733		if res.Body != nil {
70734			res.Body.Close()
70735		}
70736		return nil, &googleapi.Error{
70737			Code:   res.StatusCode,
70738			Header: res.Header,
70739		}
70740	}
70741	if err != nil {
70742		return nil, err
70743	}
70744	defer googleapi.CloseBody(res)
70745	if err := googleapi.CheckResponse(res); err != nil {
70746		return nil, err
70747	}
70748	ret := &Operation{
70749		ServerResponse: googleapi.ServerResponse{
70750			Header:         res.Header,
70751			HTTPStatusCode: res.StatusCode,
70752		},
70753	}
70754	target := &ret
70755	if err := gensupport.DecodeResponse(target, res); err != nil {
70756		return nil, err
70757	}
70758	return ret, nil
70759	// {
70760	//   "description": "Switches the network mode from auto subnet mode to custom subnet mode.",
70761	//   "httpMethod": "POST",
70762	//   "id": "compute.networks.switchToCustomMode",
70763	//   "parameterOrder": [
70764	//     "project",
70765	//     "network"
70766	//   ],
70767	//   "parameters": {
70768	//     "network": {
70769	//       "description": "Name of the network to be updated.",
70770	//       "location": "path",
70771	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70772	//       "required": true,
70773	//       "type": "string"
70774	//     },
70775	//     "project": {
70776	//       "description": "Project ID for this request.",
70777	//       "location": "path",
70778	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70779	//       "required": true,
70780	//       "type": "string"
70781	//     },
70782	//     "requestId": {
70783	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70784	//       "location": "query",
70785	//       "type": "string"
70786	//     }
70787	//   },
70788	//   "path": "{project}/global/networks/{network}/switchToCustomMode",
70789	//   "response": {
70790	//     "$ref": "Operation"
70791	//   },
70792	//   "scopes": [
70793	//     "https://www.googleapis.com/auth/cloud-platform",
70794	//     "https://www.googleapis.com/auth/compute"
70795	//   ]
70796	// }
70797
70798}
70799
70800// method id "compute.nodeGroups.addNodes":
70801
70802type NodeGroupsAddNodesCall struct {
70803	s                         *Service
70804	project                   string
70805	zone                      string
70806	nodeGroup                 string
70807	nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest
70808	urlParams_                gensupport.URLParams
70809	ctx_                      context.Context
70810	header_                   http.Header
70811}
70812
70813// AddNodes: Adds specified number of nodes to the node group.
70814func (r *NodeGroupsService) AddNodes(project string, zone string, nodeGroup string, nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest) *NodeGroupsAddNodesCall {
70815	c := &NodeGroupsAddNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70816	c.project = project
70817	c.zone = zone
70818	c.nodeGroup = nodeGroup
70819	c.nodegroupsaddnodesrequest = nodegroupsaddnodesrequest
70820	return c
70821}
70822
70823// RequestId sets the optional parameter "requestId": An optional
70824// request ID to identify requests. Specify a unique request ID so that
70825// if you must retry your request, the server will know to ignore the
70826// request if it has already been completed.
70827//
70828// For example, consider a situation where you make an initial request
70829// and the request times out. If you make the request again with the
70830// same request ID, the server can check if original operation with the
70831// same request ID was received, and if so, will ignore the second
70832// request. This prevents clients from accidentally creating duplicate
70833// commitments.
70834//
70835// The request ID must be a valid UUID with the exception that zero UUID
70836// is not supported (00000000-0000-0000-0000-000000000000).
70837func (c *NodeGroupsAddNodesCall) RequestId(requestId string) *NodeGroupsAddNodesCall {
70838	c.urlParams_.Set("requestId", requestId)
70839	return c
70840}
70841
70842// Fields allows partial responses to be retrieved. See
70843// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70844// for more information.
70845func (c *NodeGroupsAddNodesCall) Fields(s ...googleapi.Field) *NodeGroupsAddNodesCall {
70846	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70847	return c
70848}
70849
70850// Context sets the context to be used in this call's Do method. Any
70851// pending HTTP request will be aborted if the provided context is
70852// canceled.
70853func (c *NodeGroupsAddNodesCall) Context(ctx context.Context) *NodeGroupsAddNodesCall {
70854	c.ctx_ = ctx
70855	return c
70856}
70857
70858// Header returns an http.Header that can be modified by the caller to
70859// add HTTP headers to the request.
70860func (c *NodeGroupsAddNodesCall) Header() http.Header {
70861	if c.header_ == nil {
70862		c.header_ = make(http.Header)
70863	}
70864	return c.header_
70865}
70866
70867func (c *NodeGroupsAddNodesCall) doRequest(alt string) (*http.Response, error) {
70868	reqHeaders := make(http.Header)
70869	for k, v := range c.header_ {
70870		reqHeaders[k] = v
70871	}
70872	reqHeaders.Set("User-Agent", c.s.userAgent())
70873	var body io.Reader = nil
70874	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsaddnodesrequest)
70875	if err != nil {
70876		return nil, err
70877	}
70878	reqHeaders.Set("Content-Type", "application/json")
70879	c.urlParams_.Set("alt", alt)
70880	c.urlParams_.Set("prettyPrint", "false")
70881	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes")
70882	urls += "?" + c.urlParams_.Encode()
70883	req, err := http.NewRequest("POST", urls, body)
70884	if err != nil {
70885		return nil, err
70886	}
70887	req.Header = reqHeaders
70888	googleapi.Expand(req.URL, map[string]string{
70889		"project":   c.project,
70890		"zone":      c.zone,
70891		"nodeGroup": c.nodeGroup,
70892	})
70893	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70894}
70895
70896// Do executes the "compute.nodeGroups.addNodes" call.
70897// Exactly one of *Operation or error will be non-nil. Any non-2xx
70898// status code is an error. Response headers are in either
70899// *Operation.ServerResponse.Header or (if a response was returned at
70900// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70901// to check whether the returned error was because
70902// http.StatusNotModified was returned.
70903func (c *NodeGroupsAddNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70904	gensupport.SetOptions(c.urlParams_, opts...)
70905	res, err := c.doRequest("json")
70906	if res != nil && res.StatusCode == http.StatusNotModified {
70907		if res.Body != nil {
70908			res.Body.Close()
70909		}
70910		return nil, &googleapi.Error{
70911			Code:   res.StatusCode,
70912			Header: res.Header,
70913		}
70914	}
70915	if err != nil {
70916		return nil, err
70917	}
70918	defer googleapi.CloseBody(res)
70919	if err := googleapi.CheckResponse(res); err != nil {
70920		return nil, err
70921	}
70922	ret := &Operation{
70923		ServerResponse: googleapi.ServerResponse{
70924			Header:         res.Header,
70925			HTTPStatusCode: res.StatusCode,
70926		},
70927	}
70928	target := &ret
70929	if err := gensupport.DecodeResponse(target, res); err != nil {
70930		return nil, err
70931	}
70932	return ret, nil
70933	// {
70934	//   "description": "Adds specified number of nodes to the node group.",
70935	//   "httpMethod": "POST",
70936	//   "id": "compute.nodeGroups.addNodes",
70937	//   "parameterOrder": [
70938	//     "project",
70939	//     "zone",
70940	//     "nodeGroup"
70941	//   ],
70942	//   "parameters": {
70943	//     "nodeGroup": {
70944	//       "description": "Name of the NodeGroup resource.",
70945	//       "location": "path",
70946	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70947	//       "required": true,
70948	//       "type": "string"
70949	//     },
70950	//     "project": {
70951	//       "description": "Project ID for this request.",
70952	//       "location": "path",
70953	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70954	//       "required": true,
70955	//       "type": "string"
70956	//     },
70957	//     "requestId": {
70958	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70959	//       "location": "query",
70960	//       "type": "string"
70961	//     },
70962	//     "zone": {
70963	//       "description": "The name of the zone for this request.",
70964	//       "location": "path",
70965	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
70966	//       "required": true,
70967	//       "type": "string"
70968	//     }
70969	//   },
70970	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes",
70971	//   "request": {
70972	//     "$ref": "NodeGroupsAddNodesRequest"
70973	//   },
70974	//   "response": {
70975	//     "$ref": "Operation"
70976	//   },
70977	//   "scopes": [
70978	//     "https://www.googleapis.com/auth/cloud-platform",
70979	//     "https://www.googleapis.com/auth/compute"
70980	//   ]
70981	// }
70982
70983}
70984
70985// method id "compute.nodeGroups.aggregatedList":
70986
70987type NodeGroupsAggregatedListCall struct {
70988	s            *Service
70989	project      string
70990	urlParams_   gensupport.URLParams
70991	ifNoneMatch_ string
70992	ctx_         context.Context
70993	header_      http.Header
70994}
70995
70996// AggregatedList: Retrieves an aggregated list of node groups. Note:
70997// use nodeGroups.listNodes for more details about each group.
70998func (r *NodeGroupsService) AggregatedList(project string) *NodeGroupsAggregatedListCall {
70999	c := &NodeGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71000	c.project = project
71001	return c
71002}
71003
71004// Filter sets the optional parameter "filter": A filter expression that
71005// filters resources listed in the response. The expression must specify
71006// the field name, a comparison operator, and the value that you want to
71007// use for filtering. The value must be a string, a number, or a
71008// boolean. The comparison operator must be either =, !=, >, or <.
71009//
71010// For example, if you are filtering Compute Engine instances, you can
71011// exclude instances named example-instance by specifying name !=
71012// example-instance.
71013//
71014// You can also filter nested fields. For example, you could specify
71015// scheduling.automaticRestart = false to include instances only if they
71016// are not scheduled for automatic restarts. You can use filtering on
71017// nested fields to filter based on resource labels.
71018//
71019// To filter on multiple expressions, provide each separate expression
71020// within parentheses. For example, (scheduling.automaticRestart = true)
71021// (cpuPlatform = "Intel Skylake"). By default, each expression is an
71022// AND expression. However, you can include AND and OR expressions
71023// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
71024// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
71025// true).
71026func (c *NodeGroupsAggregatedListCall) Filter(filter string) *NodeGroupsAggregatedListCall {
71027	c.urlParams_.Set("filter", filter)
71028	return c
71029}
71030
71031// MaxResults sets the optional parameter "maxResults": The maximum
71032// number of results per page that should be returned. If the number of
71033// available results is larger than maxResults, Compute Engine returns a
71034// nextPageToken that can be used to get the next page of results in
71035// subsequent list requests. Acceptable values are 0 to 500, inclusive.
71036// (Default: 500)
71037func (c *NodeGroupsAggregatedListCall) MaxResults(maxResults int64) *NodeGroupsAggregatedListCall {
71038	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
71039	return c
71040}
71041
71042// OrderBy sets the optional parameter "orderBy": Sorts list results by
71043// a certain order. By default, results are returned in alphanumerical
71044// order based on the resource name.
71045//
71046// You can also sort results in descending order based on the creation
71047// timestamp using orderBy="creationTimestamp desc". This sorts results
71048// based on the creationTimestamp field in reverse chronological order
71049// (newest result first). Use this to sort resources like operations so
71050// that the newest operation is returned first.
71051//
71052// Currently, only sorting by name or creationTimestamp desc is
71053// supported.
71054func (c *NodeGroupsAggregatedListCall) OrderBy(orderBy string) *NodeGroupsAggregatedListCall {
71055	c.urlParams_.Set("orderBy", orderBy)
71056	return c
71057}
71058
71059// PageToken sets the optional parameter "pageToken": Specifies a page
71060// token to use. Set pageToken to the nextPageToken returned by a
71061// previous list request to get the next page of results.
71062func (c *NodeGroupsAggregatedListCall) PageToken(pageToken string) *NodeGroupsAggregatedListCall {
71063	c.urlParams_.Set("pageToken", pageToken)
71064	return c
71065}
71066
71067// Fields allows partial responses to be retrieved. See
71068// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71069// for more information.
71070func (c *NodeGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NodeGroupsAggregatedListCall {
71071	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71072	return c
71073}
71074
71075// IfNoneMatch sets the optional parameter which makes the operation
71076// fail if the object's ETag matches the given value. This is useful for
71077// getting updates only after the object has changed since the last
71078// request. Use googleapi.IsNotModified to check whether the response
71079// error from Do is the result of In-None-Match.
71080func (c *NodeGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NodeGroupsAggregatedListCall {
71081	c.ifNoneMatch_ = entityTag
71082	return c
71083}
71084
71085// Context sets the context to be used in this call's Do method. Any
71086// pending HTTP request will be aborted if the provided context is
71087// canceled.
71088func (c *NodeGroupsAggregatedListCall) Context(ctx context.Context) *NodeGroupsAggregatedListCall {
71089	c.ctx_ = ctx
71090	return c
71091}
71092
71093// Header returns an http.Header that can be modified by the caller to
71094// add HTTP headers to the request.
71095func (c *NodeGroupsAggregatedListCall) Header() http.Header {
71096	if c.header_ == nil {
71097		c.header_ = make(http.Header)
71098	}
71099	return c.header_
71100}
71101
71102func (c *NodeGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
71103	reqHeaders := make(http.Header)
71104	for k, v := range c.header_ {
71105		reqHeaders[k] = v
71106	}
71107	reqHeaders.Set("User-Agent", c.s.userAgent())
71108	if c.ifNoneMatch_ != "" {
71109		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71110	}
71111	var body io.Reader = nil
71112	c.urlParams_.Set("alt", alt)
71113	c.urlParams_.Set("prettyPrint", "false")
71114	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeGroups")
71115	urls += "?" + c.urlParams_.Encode()
71116	req, err := http.NewRequest("GET", urls, body)
71117	if err != nil {
71118		return nil, err
71119	}
71120	req.Header = reqHeaders
71121	googleapi.Expand(req.URL, map[string]string{
71122		"project": c.project,
71123	})
71124	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71125}
71126
71127// Do executes the "compute.nodeGroups.aggregatedList" call.
71128// Exactly one of *NodeGroupAggregatedList or error will be non-nil. Any
71129// non-2xx status code is an error. Response headers are in either
71130// *NodeGroupAggregatedList.ServerResponse.Header or (if a response was
71131// returned at all) in error.(*googleapi.Error).Header. Use
71132// googleapi.IsNotModified to check whether the returned error was
71133// because http.StatusNotModified was returned.
71134func (c *NodeGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeGroupAggregatedList, error) {
71135	gensupport.SetOptions(c.urlParams_, opts...)
71136	res, err := c.doRequest("json")
71137	if res != nil && res.StatusCode == http.StatusNotModified {
71138		if res.Body != nil {
71139			res.Body.Close()
71140		}
71141		return nil, &googleapi.Error{
71142			Code:   res.StatusCode,
71143			Header: res.Header,
71144		}
71145	}
71146	if err != nil {
71147		return nil, err
71148	}
71149	defer googleapi.CloseBody(res)
71150	if err := googleapi.CheckResponse(res); err != nil {
71151		return nil, err
71152	}
71153	ret := &NodeGroupAggregatedList{
71154		ServerResponse: googleapi.ServerResponse{
71155			Header:         res.Header,
71156			HTTPStatusCode: res.StatusCode,
71157		},
71158	}
71159	target := &ret
71160	if err := gensupport.DecodeResponse(target, res); err != nil {
71161		return nil, err
71162	}
71163	return ret, nil
71164	// {
71165	//   "description": "Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group.",
71166	//   "httpMethod": "GET",
71167	//   "id": "compute.nodeGroups.aggregatedList",
71168	//   "parameterOrder": [
71169	//     "project"
71170	//   ],
71171	//   "parameters": {
71172	//     "filter": {
71173	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
71174	//       "location": "query",
71175	//       "type": "string"
71176	//     },
71177	//     "maxResults": {
71178	//       "default": "500",
71179	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
71180	//       "format": "uint32",
71181	//       "location": "query",
71182	//       "minimum": "0",
71183	//       "type": "integer"
71184	//     },
71185	//     "orderBy": {
71186	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
71187	//       "location": "query",
71188	//       "type": "string"
71189	//     },
71190	//     "pageToken": {
71191	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
71192	//       "location": "query",
71193	//       "type": "string"
71194	//     },
71195	//     "project": {
71196	//       "description": "Project ID for this request.",
71197	//       "location": "path",
71198	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71199	//       "required": true,
71200	//       "type": "string"
71201	//     }
71202	//   },
71203	//   "path": "{project}/aggregated/nodeGroups",
71204	//   "response": {
71205	//     "$ref": "NodeGroupAggregatedList"
71206	//   },
71207	//   "scopes": [
71208	//     "https://www.googleapis.com/auth/cloud-platform",
71209	//     "https://www.googleapis.com/auth/compute",
71210	//     "https://www.googleapis.com/auth/compute.readonly"
71211	//   ]
71212	// }
71213
71214}
71215
71216// Pages invokes f for each page of results.
71217// A non-nil error returned from f will halt the iteration.
71218// The provided context supersedes any context provided to the Context method.
71219func (c *NodeGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NodeGroupAggregatedList) error) error {
71220	c.ctx_ = ctx
71221	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71222	for {
71223		x, err := c.Do()
71224		if err != nil {
71225			return err
71226		}
71227		if err := f(x); err != nil {
71228			return err
71229		}
71230		if x.NextPageToken == "" {
71231			return nil
71232		}
71233		c.PageToken(x.NextPageToken)
71234	}
71235}
71236
71237// method id "compute.nodeGroups.delete":
71238
71239type NodeGroupsDeleteCall struct {
71240	s          *Service
71241	project    string
71242	zone       string
71243	nodeGroup  string
71244	urlParams_ gensupport.URLParams
71245	ctx_       context.Context
71246	header_    http.Header
71247}
71248
71249// Delete: Deletes the specified NodeGroup resource.
71250func (r *NodeGroupsService) Delete(project string, zone string, nodeGroup string) *NodeGroupsDeleteCall {
71251	c := &NodeGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71252	c.project = project
71253	c.zone = zone
71254	c.nodeGroup = nodeGroup
71255	return c
71256}
71257
71258// RequestId sets the optional parameter "requestId": An optional
71259// request ID to identify requests. Specify a unique request ID so that
71260// if you must retry your request, the server will know to ignore the
71261// request if it has already been completed.
71262//
71263// For example, consider a situation where you make an initial request
71264// and the request times out. If you make the request again with the
71265// same request ID, the server can check if original operation with the
71266// same request ID was received, and if so, will ignore the second
71267// request. This prevents clients from accidentally creating duplicate
71268// commitments.
71269//
71270// The request ID must be a valid UUID with the exception that zero UUID
71271// is not supported (00000000-0000-0000-0000-000000000000).
71272func (c *NodeGroupsDeleteCall) RequestId(requestId string) *NodeGroupsDeleteCall {
71273	c.urlParams_.Set("requestId", requestId)
71274	return c
71275}
71276
71277// Fields allows partial responses to be retrieved. See
71278// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71279// for more information.
71280func (c *NodeGroupsDeleteCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteCall {
71281	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71282	return c
71283}
71284
71285// Context sets the context to be used in this call's Do method. Any
71286// pending HTTP request will be aborted if the provided context is
71287// canceled.
71288func (c *NodeGroupsDeleteCall) Context(ctx context.Context) *NodeGroupsDeleteCall {
71289	c.ctx_ = ctx
71290	return c
71291}
71292
71293// Header returns an http.Header that can be modified by the caller to
71294// add HTTP headers to the request.
71295func (c *NodeGroupsDeleteCall) Header() http.Header {
71296	if c.header_ == nil {
71297		c.header_ = make(http.Header)
71298	}
71299	return c.header_
71300}
71301
71302func (c *NodeGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
71303	reqHeaders := make(http.Header)
71304	for k, v := range c.header_ {
71305		reqHeaders[k] = v
71306	}
71307	reqHeaders.Set("User-Agent", c.s.userAgent())
71308	var body io.Reader = nil
71309	c.urlParams_.Set("alt", alt)
71310	c.urlParams_.Set("prettyPrint", "false")
71311	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}")
71312	urls += "?" + c.urlParams_.Encode()
71313	req, err := http.NewRequest("DELETE", urls, body)
71314	if err != nil {
71315		return nil, err
71316	}
71317	req.Header = reqHeaders
71318	googleapi.Expand(req.URL, map[string]string{
71319		"project":   c.project,
71320		"zone":      c.zone,
71321		"nodeGroup": c.nodeGroup,
71322	})
71323	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71324}
71325
71326// Do executes the "compute.nodeGroups.delete" call.
71327// Exactly one of *Operation or error will be non-nil. Any non-2xx
71328// status code is an error. Response headers are in either
71329// *Operation.ServerResponse.Header or (if a response was returned at
71330// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71331// to check whether the returned error was because
71332// http.StatusNotModified was returned.
71333func (c *NodeGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71334	gensupport.SetOptions(c.urlParams_, opts...)
71335	res, err := c.doRequest("json")
71336	if res != nil && res.StatusCode == http.StatusNotModified {
71337		if res.Body != nil {
71338			res.Body.Close()
71339		}
71340		return nil, &googleapi.Error{
71341			Code:   res.StatusCode,
71342			Header: res.Header,
71343		}
71344	}
71345	if err != nil {
71346		return nil, err
71347	}
71348	defer googleapi.CloseBody(res)
71349	if err := googleapi.CheckResponse(res); err != nil {
71350		return nil, err
71351	}
71352	ret := &Operation{
71353		ServerResponse: googleapi.ServerResponse{
71354			Header:         res.Header,
71355			HTTPStatusCode: res.StatusCode,
71356		},
71357	}
71358	target := &ret
71359	if err := gensupport.DecodeResponse(target, res); err != nil {
71360		return nil, err
71361	}
71362	return ret, nil
71363	// {
71364	//   "description": "Deletes the specified NodeGroup resource.",
71365	//   "httpMethod": "DELETE",
71366	//   "id": "compute.nodeGroups.delete",
71367	//   "parameterOrder": [
71368	//     "project",
71369	//     "zone",
71370	//     "nodeGroup"
71371	//   ],
71372	//   "parameters": {
71373	//     "nodeGroup": {
71374	//       "description": "Name of the NodeGroup resource to delete.",
71375	//       "location": "path",
71376	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71377	//       "required": true,
71378	//       "type": "string"
71379	//     },
71380	//     "project": {
71381	//       "description": "Project ID for this request.",
71382	//       "location": "path",
71383	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71384	//       "required": true,
71385	//       "type": "string"
71386	//     },
71387	//     "requestId": {
71388	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71389	//       "location": "query",
71390	//       "type": "string"
71391	//     },
71392	//     "zone": {
71393	//       "description": "The name of the zone for this request.",
71394	//       "location": "path",
71395	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
71396	//       "required": true,
71397	//       "type": "string"
71398	//     }
71399	//   },
71400	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}",
71401	//   "response": {
71402	//     "$ref": "Operation"
71403	//   },
71404	//   "scopes": [
71405	//     "https://www.googleapis.com/auth/cloud-platform",
71406	//     "https://www.googleapis.com/auth/compute"
71407	//   ]
71408	// }
71409
71410}
71411
71412// method id "compute.nodeGroups.deleteNodes":
71413
71414type NodeGroupsDeleteNodesCall struct {
71415	s                            *Service
71416	project                      string
71417	zone                         string
71418	nodeGroup                    string
71419	nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest
71420	urlParams_                   gensupport.URLParams
71421	ctx_                         context.Context
71422	header_                      http.Header
71423}
71424
71425// DeleteNodes: Deletes specified nodes from the node group.
71426func (r *NodeGroupsService) DeleteNodes(project string, zone string, nodeGroup string, nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest) *NodeGroupsDeleteNodesCall {
71427	c := &NodeGroupsDeleteNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71428	c.project = project
71429	c.zone = zone
71430	c.nodeGroup = nodeGroup
71431	c.nodegroupsdeletenodesrequest = nodegroupsdeletenodesrequest
71432	return c
71433}
71434
71435// RequestId sets the optional parameter "requestId": An optional
71436// request ID to identify requests. Specify a unique request ID so that
71437// if you must retry your request, the server will know to ignore the
71438// request if it has already been completed.
71439//
71440// For example, consider a situation where you make an initial request
71441// and the request times out. If you make the request again with the
71442// same request ID, the server can check if original operation with the
71443// same request ID was received, and if so, will ignore the second
71444// request. This prevents clients from accidentally creating duplicate
71445// commitments.
71446//
71447// The request ID must be a valid UUID with the exception that zero UUID
71448// is not supported (00000000-0000-0000-0000-000000000000).
71449func (c *NodeGroupsDeleteNodesCall) RequestId(requestId string) *NodeGroupsDeleteNodesCall {
71450	c.urlParams_.Set("requestId", requestId)
71451	return c
71452}
71453
71454// Fields allows partial responses to be retrieved. See
71455// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71456// for more information.
71457func (c *NodeGroupsDeleteNodesCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteNodesCall {
71458	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71459	return c
71460}
71461
71462// Context sets the context to be used in this call's Do method. Any
71463// pending HTTP request will be aborted if the provided context is
71464// canceled.
71465func (c *NodeGroupsDeleteNodesCall) Context(ctx context.Context) *NodeGroupsDeleteNodesCall {
71466	c.ctx_ = ctx
71467	return c
71468}
71469
71470// Header returns an http.Header that can be modified by the caller to
71471// add HTTP headers to the request.
71472func (c *NodeGroupsDeleteNodesCall) Header() http.Header {
71473	if c.header_ == nil {
71474		c.header_ = make(http.Header)
71475	}
71476	return c.header_
71477}
71478
71479func (c *NodeGroupsDeleteNodesCall) doRequest(alt string) (*http.Response, error) {
71480	reqHeaders := make(http.Header)
71481	for k, v := range c.header_ {
71482		reqHeaders[k] = v
71483	}
71484	reqHeaders.Set("User-Agent", c.s.userAgent())
71485	var body io.Reader = nil
71486	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsdeletenodesrequest)
71487	if err != nil {
71488		return nil, err
71489	}
71490	reqHeaders.Set("Content-Type", "application/json")
71491	c.urlParams_.Set("alt", alt)
71492	c.urlParams_.Set("prettyPrint", "false")
71493	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes")
71494	urls += "?" + c.urlParams_.Encode()
71495	req, err := http.NewRequest("POST", urls, body)
71496	if err != nil {
71497		return nil, err
71498	}
71499	req.Header = reqHeaders
71500	googleapi.Expand(req.URL, map[string]string{
71501		"project":   c.project,
71502		"zone":      c.zone,
71503		"nodeGroup": c.nodeGroup,
71504	})
71505	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71506}
71507
71508// Do executes the "compute.nodeGroups.deleteNodes" call.
71509// Exactly one of *Operation or error will be non-nil. Any non-2xx
71510// status code is an error. Response headers are in either
71511// *Operation.ServerResponse.Header or (if a response was returned at
71512// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71513// to check whether the returned error was because
71514// http.StatusNotModified was returned.
71515func (c *NodeGroupsDeleteNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71516	gensupport.SetOptions(c.urlParams_, opts...)
71517	res, err := c.doRequest("json")
71518	if res != nil && res.StatusCode == http.StatusNotModified {
71519		if res.Body != nil {
71520			res.Body.Close()
71521		}
71522		return nil, &googleapi.Error{
71523			Code:   res.StatusCode,
71524			Header: res.Header,
71525		}
71526	}
71527	if err != nil {
71528		return nil, err
71529	}
71530	defer googleapi.CloseBody(res)
71531	if err := googleapi.CheckResponse(res); err != nil {
71532		return nil, err
71533	}
71534	ret := &Operation{
71535		ServerResponse: googleapi.ServerResponse{
71536			Header:         res.Header,
71537			HTTPStatusCode: res.StatusCode,
71538		},
71539	}
71540	target := &ret
71541	if err := gensupport.DecodeResponse(target, res); err != nil {
71542		return nil, err
71543	}
71544	return ret, nil
71545	// {
71546	//   "description": "Deletes specified nodes from the node group.",
71547	//   "httpMethod": "POST",
71548	//   "id": "compute.nodeGroups.deleteNodes",
71549	//   "parameterOrder": [
71550	//     "project",
71551	//     "zone",
71552	//     "nodeGroup"
71553	//   ],
71554	//   "parameters": {
71555	//     "nodeGroup": {
71556	//       "description": "Name of the NodeGroup resource to delete.",
71557	//       "location": "path",
71558	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71559	//       "required": true,
71560	//       "type": "string"
71561	//     },
71562	//     "project": {
71563	//       "description": "Project ID for this request.",
71564	//       "location": "path",
71565	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71566	//       "required": true,
71567	//       "type": "string"
71568	//     },
71569	//     "requestId": {
71570	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71571	//       "location": "query",
71572	//       "type": "string"
71573	//     },
71574	//     "zone": {
71575	//       "description": "The name of the zone for this request.",
71576	//       "location": "path",
71577	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
71578	//       "required": true,
71579	//       "type": "string"
71580	//     }
71581	//   },
71582	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes",
71583	//   "request": {
71584	//     "$ref": "NodeGroupsDeleteNodesRequest"
71585	//   },
71586	//   "response": {
71587	//     "$ref": "Operation"
71588	//   },
71589	//   "scopes": [
71590	//     "https://www.googleapis.com/auth/cloud-platform",
71591	//     "https://www.googleapis.com/auth/compute"
71592	//   ]
71593	// }
71594
71595}
71596
71597// method id "compute.nodeGroups.get":
71598
71599type NodeGroupsGetCall struct {
71600	s            *Service
71601	project      string
71602	zone         string
71603	nodeGroup    string
71604	urlParams_   gensupport.URLParams
71605	ifNoneMatch_ string
71606	ctx_         context.Context
71607	header_      http.Header
71608}
71609
71610// Get: Returns the specified NodeGroup. Get a list of available
71611// NodeGroups by making a list() request. Note: the "nodes" field should
71612// not be used. Use nodeGroups.listNodes instead.
71613func (r *NodeGroupsService) Get(project string, zone string, nodeGroup string) *NodeGroupsGetCall {
71614	c := &NodeGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71615	c.project = project
71616	c.zone = zone
71617	c.nodeGroup = nodeGroup
71618	return c
71619}
71620
71621// Fields allows partial responses to be retrieved. See
71622// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71623// for more information.
71624func (c *NodeGroupsGetCall) Fields(s ...googleapi.Field) *NodeGroupsGetCall {
71625	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71626	return c
71627}
71628
71629// IfNoneMatch sets the optional parameter which makes the operation
71630// fail if the object's ETag matches the given value. This is useful for
71631// getting updates only after the object has changed since the last
71632// request. Use googleapi.IsNotModified to check whether the response
71633// error from Do is the result of In-None-Match.
71634func (c *NodeGroupsGetCall) IfNoneMatch(entityTag string) *NodeGroupsGetCall {
71635	c.ifNoneMatch_ = entityTag
71636	return c
71637}
71638
71639// Context sets the context to be used in this call's Do method. Any
71640// pending HTTP request will be aborted if the provided context is
71641// canceled.
71642func (c *NodeGroupsGetCall) Context(ctx context.Context) *NodeGroupsGetCall {
71643	c.ctx_ = ctx
71644	return c
71645}
71646
71647// Header returns an http.Header that can be modified by the caller to
71648// add HTTP headers to the request.
71649func (c *NodeGroupsGetCall) Header() http.Header {
71650	if c.header_ == nil {
71651		c.header_ = make(http.Header)
71652	}
71653	return c.header_
71654}
71655
71656func (c *NodeGroupsGetCall) doRequest(alt string) (*http.Response, error) {
71657	reqHeaders := make(http.Header)
71658	for k, v := range c.header_ {
71659		reqHeaders[k] = v
71660	}
71661	reqHeaders.Set("User-Agent", c.s.userAgent())
71662	if c.ifNoneMatch_ != "" {
71663		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71664	}
71665	var body io.Reader = nil
71666	c.urlParams_.Set("alt", alt)
71667	c.urlParams_.Set("prettyPrint", "false")
71668	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}")
71669	urls += "?" + c.urlParams_.Encode()
71670	req, err := http.NewRequest("GET", urls, body)
71671	if err != nil {
71672		return nil, err
71673	}
71674	req.Header = reqHeaders
71675	googleapi.Expand(req.URL, map[string]string{
71676		"project":   c.project,
71677		"zone":      c.zone,
71678		"nodeGroup": c.nodeGroup,
71679	})
71680	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71681}
71682
71683// Do executes the "compute.nodeGroups.get" call.
71684// Exactly one of *NodeGroup or error will be non-nil. Any non-2xx
71685// status code is an error. Response headers are in either
71686// *NodeGroup.ServerResponse.Header or (if a response was returned at
71687// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71688// to check whether the returned error was because
71689// http.StatusNotModified was returned.
71690func (c *NodeGroupsGetCall) Do(opts ...googleapi.CallOption) (*NodeGroup, error) {
71691	gensupport.SetOptions(c.urlParams_, opts...)
71692	res, err := c.doRequest("json")
71693	if res != nil && res.StatusCode == http.StatusNotModified {
71694		if res.Body != nil {
71695			res.Body.Close()
71696		}
71697		return nil, &googleapi.Error{
71698			Code:   res.StatusCode,
71699			Header: res.Header,
71700		}
71701	}
71702	if err != nil {
71703		return nil, err
71704	}
71705	defer googleapi.CloseBody(res)
71706	if err := googleapi.CheckResponse(res); err != nil {
71707		return nil, err
71708	}
71709	ret := &NodeGroup{
71710		ServerResponse: googleapi.ServerResponse{
71711			Header:         res.Header,
71712			HTTPStatusCode: res.StatusCode,
71713		},
71714	}
71715	target := &ret
71716	if err := gensupport.DecodeResponse(target, res); err != nil {
71717		return nil, err
71718	}
71719	return ret, nil
71720	// {
71721	//   "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.",
71722	//   "httpMethod": "GET",
71723	//   "id": "compute.nodeGroups.get",
71724	//   "parameterOrder": [
71725	//     "project",
71726	//     "zone",
71727	//     "nodeGroup"
71728	//   ],
71729	//   "parameters": {
71730	//     "nodeGroup": {
71731	//       "description": "Name of the node group to return.",
71732	//       "location": "path",
71733	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71734	//       "required": true,
71735	//       "type": "string"
71736	//     },
71737	//     "project": {
71738	//       "description": "Project ID for this request.",
71739	//       "location": "path",
71740	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71741	//       "required": true,
71742	//       "type": "string"
71743	//     },
71744	//     "zone": {
71745	//       "description": "The name of the zone for this request.",
71746	//       "location": "path",
71747	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
71748	//       "required": true,
71749	//       "type": "string"
71750	//     }
71751	//   },
71752	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}",
71753	//   "response": {
71754	//     "$ref": "NodeGroup"
71755	//   },
71756	//   "scopes": [
71757	//     "https://www.googleapis.com/auth/cloud-platform",
71758	//     "https://www.googleapis.com/auth/compute",
71759	//     "https://www.googleapis.com/auth/compute.readonly"
71760	//   ]
71761	// }
71762
71763}
71764
71765// method id "compute.nodeGroups.getIamPolicy":
71766
71767type NodeGroupsGetIamPolicyCall struct {
71768	s            *Service
71769	project      string
71770	zone         string
71771	resource     string
71772	urlParams_   gensupport.URLParams
71773	ifNoneMatch_ string
71774	ctx_         context.Context
71775	header_      http.Header
71776}
71777
71778// GetIamPolicy: Gets the access control policy for a resource. May be
71779// empty if no such policy or resource exists.
71780func (r *NodeGroupsService) GetIamPolicy(project string, zone string, resource string) *NodeGroupsGetIamPolicyCall {
71781	c := &NodeGroupsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71782	c.project = project
71783	c.zone = zone
71784	c.resource = resource
71785	return c
71786}
71787
71788// Fields allows partial responses to be retrieved. See
71789// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71790// for more information.
71791func (c *NodeGroupsGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsGetIamPolicyCall {
71792	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71793	return c
71794}
71795
71796// IfNoneMatch sets the optional parameter which makes the operation
71797// fail if the object's ETag matches the given value. This is useful for
71798// getting updates only after the object has changed since the last
71799// request. Use googleapi.IsNotModified to check whether the response
71800// error from Do is the result of In-None-Match.
71801func (c *NodeGroupsGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeGroupsGetIamPolicyCall {
71802	c.ifNoneMatch_ = entityTag
71803	return c
71804}
71805
71806// Context sets the context to be used in this call's Do method. Any
71807// pending HTTP request will be aborted if the provided context is
71808// canceled.
71809func (c *NodeGroupsGetIamPolicyCall) Context(ctx context.Context) *NodeGroupsGetIamPolicyCall {
71810	c.ctx_ = ctx
71811	return c
71812}
71813
71814// Header returns an http.Header that can be modified by the caller to
71815// add HTTP headers to the request.
71816func (c *NodeGroupsGetIamPolicyCall) Header() http.Header {
71817	if c.header_ == nil {
71818		c.header_ = make(http.Header)
71819	}
71820	return c.header_
71821}
71822
71823func (c *NodeGroupsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
71824	reqHeaders := make(http.Header)
71825	for k, v := range c.header_ {
71826		reqHeaders[k] = v
71827	}
71828	reqHeaders.Set("User-Agent", c.s.userAgent())
71829	if c.ifNoneMatch_ != "" {
71830		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71831	}
71832	var body io.Reader = nil
71833	c.urlParams_.Set("alt", alt)
71834	c.urlParams_.Set("prettyPrint", "false")
71835	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy")
71836	urls += "?" + c.urlParams_.Encode()
71837	req, err := http.NewRequest("GET", urls, body)
71838	if err != nil {
71839		return nil, err
71840	}
71841	req.Header = reqHeaders
71842	googleapi.Expand(req.URL, map[string]string{
71843		"project":  c.project,
71844		"zone":     c.zone,
71845		"resource": c.resource,
71846	})
71847	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71848}
71849
71850// Do executes the "compute.nodeGroups.getIamPolicy" call.
71851// Exactly one of *Policy or error will be non-nil. Any non-2xx status
71852// code is an error. Response headers are in either
71853// *Policy.ServerResponse.Header or (if a response was returned at all)
71854// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
71855// check whether the returned error was because http.StatusNotModified
71856// was returned.
71857func (c *NodeGroupsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
71858	gensupport.SetOptions(c.urlParams_, opts...)
71859	res, err := c.doRequest("json")
71860	if res != nil && res.StatusCode == http.StatusNotModified {
71861		if res.Body != nil {
71862			res.Body.Close()
71863		}
71864		return nil, &googleapi.Error{
71865			Code:   res.StatusCode,
71866			Header: res.Header,
71867		}
71868	}
71869	if err != nil {
71870		return nil, err
71871	}
71872	defer googleapi.CloseBody(res)
71873	if err := googleapi.CheckResponse(res); err != nil {
71874		return nil, err
71875	}
71876	ret := &Policy{
71877		ServerResponse: googleapi.ServerResponse{
71878			Header:         res.Header,
71879			HTTPStatusCode: res.StatusCode,
71880		},
71881	}
71882	target := &ret
71883	if err := gensupport.DecodeResponse(target, res); err != nil {
71884		return nil, err
71885	}
71886	return ret, nil
71887	// {
71888	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
71889	//   "httpMethod": "GET",
71890	//   "id": "compute.nodeGroups.getIamPolicy",
71891	//   "parameterOrder": [
71892	//     "project",
71893	//     "zone",
71894	//     "resource"
71895	//   ],
71896	//   "parameters": {
71897	//     "project": {
71898	//       "description": "Project ID for this request.",
71899	//       "location": "path",
71900	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71901	//       "required": true,
71902	//       "type": "string"
71903	//     },
71904	//     "resource": {
71905	//       "description": "Name or id of the resource for this request.",
71906	//       "location": "path",
71907	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71908	//       "required": true,
71909	//       "type": "string"
71910	//     },
71911	//     "zone": {
71912	//       "description": "The name of the zone for this request.",
71913	//       "location": "path",
71914	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
71915	//       "required": true,
71916	//       "type": "string"
71917	//     }
71918	//   },
71919	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy",
71920	//   "response": {
71921	//     "$ref": "Policy"
71922	//   },
71923	//   "scopes": [
71924	//     "https://www.googleapis.com/auth/cloud-platform",
71925	//     "https://www.googleapis.com/auth/compute",
71926	//     "https://www.googleapis.com/auth/compute.readonly"
71927	//   ]
71928	// }
71929
71930}
71931
71932// method id "compute.nodeGroups.insert":
71933
71934type NodeGroupsInsertCall struct {
71935	s          *Service
71936	project    string
71937	zone       string
71938	nodegroup  *NodeGroup
71939	urlParams_ gensupport.URLParams
71940	ctx_       context.Context
71941	header_    http.Header
71942}
71943
71944// Insert: Creates a NodeGroup resource in the specified project using
71945// the data included in the request.
71946func (r *NodeGroupsService) Insert(project string, zone string, initialNodeCount int64, nodegroup *NodeGroup) *NodeGroupsInsertCall {
71947	c := &NodeGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71948	c.project = project
71949	c.zone = zone
71950	c.urlParams_.Set("initialNodeCount", fmt.Sprint(initialNodeCount))
71951	c.nodegroup = nodegroup
71952	return c
71953}
71954
71955// RequestId sets the optional parameter "requestId": An optional
71956// request ID to identify requests. Specify a unique request ID so that
71957// if you must retry your request, the server will know to ignore the
71958// request if it has already been completed.
71959//
71960// For example, consider a situation where you make an initial request
71961// and the request times out. If you make the request again with the
71962// same request ID, the server can check if original operation with the
71963// same request ID was received, and if so, will ignore the second
71964// request. This prevents clients from accidentally creating duplicate
71965// commitments.
71966//
71967// The request ID must be a valid UUID with the exception that zero UUID
71968// is not supported (00000000-0000-0000-0000-000000000000).
71969func (c *NodeGroupsInsertCall) RequestId(requestId string) *NodeGroupsInsertCall {
71970	c.urlParams_.Set("requestId", requestId)
71971	return c
71972}
71973
71974// Fields allows partial responses to be retrieved. See
71975// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71976// for more information.
71977func (c *NodeGroupsInsertCall) Fields(s ...googleapi.Field) *NodeGroupsInsertCall {
71978	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71979	return c
71980}
71981
71982// Context sets the context to be used in this call's Do method. Any
71983// pending HTTP request will be aborted if the provided context is
71984// canceled.
71985func (c *NodeGroupsInsertCall) Context(ctx context.Context) *NodeGroupsInsertCall {
71986	c.ctx_ = ctx
71987	return c
71988}
71989
71990// Header returns an http.Header that can be modified by the caller to
71991// add HTTP headers to the request.
71992func (c *NodeGroupsInsertCall) Header() http.Header {
71993	if c.header_ == nil {
71994		c.header_ = make(http.Header)
71995	}
71996	return c.header_
71997}
71998
71999func (c *NodeGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
72000	reqHeaders := make(http.Header)
72001	for k, v := range c.header_ {
72002		reqHeaders[k] = v
72003	}
72004	reqHeaders.Set("User-Agent", c.s.userAgent())
72005	var body io.Reader = nil
72006	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
72007	if err != nil {
72008		return nil, err
72009	}
72010	reqHeaders.Set("Content-Type", "application/json")
72011	c.urlParams_.Set("alt", alt)
72012	c.urlParams_.Set("prettyPrint", "false")
72013	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups")
72014	urls += "?" + c.urlParams_.Encode()
72015	req, err := http.NewRequest("POST", urls, body)
72016	if err != nil {
72017		return nil, err
72018	}
72019	req.Header = reqHeaders
72020	googleapi.Expand(req.URL, map[string]string{
72021		"project": c.project,
72022		"zone":    c.zone,
72023	})
72024	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72025}
72026
72027// Do executes the "compute.nodeGroups.insert" call.
72028// Exactly one of *Operation or error will be non-nil. Any non-2xx
72029// status code is an error. Response headers are in either
72030// *Operation.ServerResponse.Header or (if a response was returned at
72031// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72032// to check whether the returned error was because
72033// http.StatusNotModified was returned.
72034func (c *NodeGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72035	gensupport.SetOptions(c.urlParams_, opts...)
72036	res, err := c.doRequest("json")
72037	if res != nil && res.StatusCode == http.StatusNotModified {
72038		if res.Body != nil {
72039			res.Body.Close()
72040		}
72041		return nil, &googleapi.Error{
72042			Code:   res.StatusCode,
72043			Header: res.Header,
72044		}
72045	}
72046	if err != nil {
72047		return nil, err
72048	}
72049	defer googleapi.CloseBody(res)
72050	if err := googleapi.CheckResponse(res); err != nil {
72051		return nil, err
72052	}
72053	ret := &Operation{
72054		ServerResponse: googleapi.ServerResponse{
72055			Header:         res.Header,
72056			HTTPStatusCode: res.StatusCode,
72057		},
72058	}
72059	target := &ret
72060	if err := gensupport.DecodeResponse(target, res); err != nil {
72061		return nil, err
72062	}
72063	return ret, nil
72064	// {
72065	//   "description": "Creates a NodeGroup resource in the specified project using the data included in the request.",
72066	//   "httpMethod": "POST",
72067	//   "id": "compute.nodeGroups.insert",
72068	//   "parameterOrder": [
72069	//     "project",
72070	//     "zone",
72071	//     "initialNodeCount"
72072	//   ],
72073	//   "parameters": {
72074	//     "initialNodeCount": {
72075	//       "description": "Initial count of nodes in the node group.",
72076	//       "format": "int32",
72077	//       "location": "query",
72078	//       "required": true,
72079	//       "type": "integer"
72080	//     },
72081	//     "project": {
72082	//       "description": "Project ID for this request.",
72083	//       "location": "path",
72084	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72085	//       "required": true,
72086	//       "type": "string"
72087	//     },
72088	//     "requestId": {
72089	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72090	//       "location": "query",
72091	//       "type": "string"
72092	//     },
72093	//     "zone": {
72094	//       "description": "The name of the zone for this request.",
72095	//       "location": "path",
72096	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72097	//       "required": true,
72098	//       "type": "string"
72099	//     }
72100	//   },
72101	//   "path": "{project}/zones/{zone}/nodeGroups",
72102	//   "request": {
72103	//     "$ref": "NodeGroup"
72104	//   },
72105	//   "response": {
72106	//     "$ref": "Operation"
72107	//   },
72108	//   "scopes": [
72109	//     "https://www.googleapis.com/auth/cloud-platform",
72110	//     "https://www.googleapis.com/auth/compute"
72111	//   ]
72112	// }
72113
72114}
72115
72116// method id "compute.nodeGroups.list":
72117
72118type NodeGroupsListCall struct {
72119	s            *Service
72120	project      string
72121	zone         string
72122	urlParams_   gensupport.URLParams
72123	ifNoneMatch_ string
72124	ctx_         context.Context
72125	header_      http.Header
72126}
72127
72128// List: Retrieves a list of node groups available to the specified
72129// project. Note: use nodeGroups.listNodes for more details about each
72130// group.
72131func (r *NodeGroupsService) List(project string, zone string) *NodeGroupsListCall {
72132	c := &NodeGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72133	c.project = project
72134	c.zone = zone
72135	return c
72136}
72137
72138// Filter sets the optional parameter "filter": A filter expression that
72139// filters resources listed in the response. The expression must specify
72140// the field name, a comparison operator, and the value that you want to
72141// use for filtering. The value must be a string, a number, or a
72142// boolean. The comparison operator must be either =, !=, >, or <.
72143//
72144// For example, if you are filtering Compute Engine instances, you can
72145// exclude instances named example-instance by specifying name !=
72146// example-instance.
72147//
72148// You can also filter nested fields. For example, you could specify
72149// scheduling.automaticRestart = false to include instances only if they
72150// are not scheduled for automatic restarts. You can use filtering on
72151// nested fields to filter based on resource labels.
72152//
72153// To filter on multiple expressions, provide each separate expression
72154// within parentheses. For example, (scheduling.automaticRestart = true)
72155// (cpuPlatform = "Intel Skylake"). By default, each expression is an
72156// AND expression. However, you can include AND and OR expressions
72157// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
72158// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
72159// true).
72160func (c *NodeGroupsListCall) Filter(filter string) *NodeGroupsListCall {
72161	c.urlParams_.Set("filter", filter)
72162	return c
72163}
72164
72165// MaxResults sets the optional parameter "maxResults": The maximum
72166// number of results per page that should be returned. If the number of
72167// available results is larger than maxResults, Compute Engine returns a
72168// nextPageToken that can be used to get the next page of results in
72169// subsequent list requests. Acceptable values are 0 to 500, inclusive.
72170// (Default: 500)
72171func (c *NodeGroupsListCall) MaxResults(maxResults int64) *NodeGroupsListCall {
72172	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
72173	return c
72174}
72175
72176// OrderBy sets the optional parameter "orderBy": Sorts list results by
72177// a certain order. By default, results are returned in alphanumerical
72178// order based on the resource name.
72179//
72180// You can also sort results in descending order based on the creation
72181// timestamp using orderBy="creationTimestamp desc". This sorts results
72182// based on the creationTimestamp field in reverse chronological order
72183// (newest result first). Use this to sort resources like operations so
72184// that the newest operation is returned first.
72185//
72186// Currently, only sorting by name or creationTimestamp desc is
72187// supported.
72188func (c *NodeGroupsListCall) OrderBy(orderBy string) *NodeGroupsListCall {
72189	c.urlParams_.Set("orderBy", orderBy)
72190	return c
72191}
72192
72193// PageToken sets the optional parameter "pageToken": Specifies a page
72194// token to use. Set pageToken to the nextPageToken returned by a
72195// previous list request to get the next page of results.
72196func (c *NodeGroupsListCall) PageToken(pageToken string) *NodeGroupsListCall {
72197	c.urlParams_.Set("pageToken", pageToken)
72198	return c
72199}
72200
72201// Fields allows partial responses to be retrieved. See
72202// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72203// for more information.
72204func (c *NodeGroupsListCall) Fields(s ...googleapi.Field) *NodeGroupsListCall {
72205	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72206	return c
72207}
72208
72209// IfNoneMatch sets the optional parameter which makes the operation
72210// fail if the object's ETag matches the given value. This is useful for
72211// getting updates only after the object has changed since the last
72212// request. Use googleapi.IsNotModified to check whether the response
72213// error from Do is the result of In-None-Match.
72214func (c *NodeGroupsListCall) IfNoneMatch(entityTag string) *NodeGroupsListCall {
72215	c.ifNoneMatch_ = entityTag
72216	return c
72217}
72218
72219// Context sets the context to be used in this call's Do method. Any
72220// pending HTTP request will be aborted if the provided context is
72221// canceled.
72222func (c *NodeGroupsListCall) Context(ctx context.Context) *NodeGroupsListCall {
72223	c.ctx_ = ctx
72224	return c
72225}
72226
72227// Header returns an http.Header that can be modified by the caller to
72228// add HTTP headers to the request.
72229func (c *NodeGroupsListCall) Header() http.Header {
72230	if c.header_ == nil {
72231		c.header_ = make(http.Header)
72232	}
72233	return c.header_
72234}
72235
72236func (c *NodeGroupsListCall) doRequest(alt string) (*http.Response, error) {
72237	reqHeaders := make(http.Header)
72238	for k, v := range c.header_ {
72239		reqHeaders[k] = v
72240	}
72241	reqHeaders.Set("User-Agent", c.s.userAgent())
72242	if c.ifNoneMatch_ != "" {
72243		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72244	}
72245	var body io.Reader = nil
72246	c.urlParams_.Set("alt", alt)
72247	c.urlParams_.Set("prettyPrint", "false")
72248	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups")
72249	urls += "?" + c.urlParams_.Encode()
72250	req, err := http.NewRequest("GET", urls, body)
72251	if err != nil {
72252		return nil, err
72253	}
72254	req.Header = reqHeaders
72255	googleapi.Expand(req.URL, map[string]string{
72256		"project": c.project,
72257		"zone":    c.zone,
72258	})
72259	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72260}
72261
72262// Do executes the "compute.nodeGroups.list" call.
72263// Exactly one of *NodeGroupList or error will be non-nil. Any non-2xx
72264// status code is an error. Response headers are in either
72265// *NodeGroupList.ServerResponse.Header or (if a response was returned
72266// at all) in error.(*googleapi.Error).Header. Use
72267// googleapi.IsNotModified to check whether the returned error was
72268// because http.StatusNotModified was returned.
72269func (c *NodeGroupsListCall) Do(opts ...googleapi.CallOption) (*NodeGroupList, error) {
72270	gensupport.SetOptions(c.urlParams_, opts...)
72271	res, err := c.doRequest("json")
72272	if res != nil && res.StatusCode == http.StatusNotModified {
72273		if res.Body != nil {
72274			res.Body.Close()
72275		}
72276		return nil, &googleapi.Error{
72277			Code:   res.StatusCode,
72278			Header: res.Header,
72279		}
72280	}
72281	if err != nil {
72282		return nil, err
72283	}
72284	defer googleapi.CloseBody(res)
72285	if err := googleapi.CheckResponse(res); err != nil {
72286		return nil, err
72287	}
72288	ret := &NodeGroupList{
72289		ServerResponse: googleapi.ServerResponse{
72290			Header:         res.Header,
72291			HTTPStatusCode: res.StatusCode,
72292		},
72293	}
72294	target := &ret
72295	if err := gensupport.DecodeResponse(target, res); err != nil {
72296		return nil, err
72297	}
72298	return ret, nil
72299	// {
72300	//   "description": "Retrieves a list of node groups available to the specified project. Note: use nodeGroups.listNodes for more details about each group.",
72301	//   "httpMethod": "GET",
72302	//   "id": "compute.nodeGroups.list",
72303	//   "parameterOrder": [
72304	//     "project",
72305	//     "zone"
72306	//   ],
72307	//   "parameters": {
72308	//     "filter": {
72309	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
72310	//       "location": "query",
72311	//       "type": "string"
72312	//     },
72313	//     "maxResults": {
72314	//       "default": "500",
72315	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
72316	//       "format": "uint32",
72317	//       "location": "query",
72318	//       "minimum": "0",
72319	//       "type": "integer"
72320	//     },
72321	//     "orderBy": {
72322	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
72323	//       "location": "query",
72324	//       "type": "string"
72325	//     },
72326	//     "pageToken": {
72327	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
72328	//       "location": "query",
72329	//       "type": "string"
72330	//     },
72331	//     "project": {
72332	//       "description": "Project ID for this request.",
72333	//       "location": "path",
72334	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72335	//       "required": true,
72336	//       "type": "string"
72337	//     },
72338	//     "zone": {
72339	//       "description": "The name of the zone for this request.",
72340	//       "location": "path",
72341	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72342	//       "required": true,
72343	//       "type": "string"
72344	//     }
72345	//   },
72346	//   "path": "{project}/zones/{zone}/nodeGroups",
72347	//   "response": {
72348	//     "$ref": "NodeGroupList"
72349	//   },
72350	//   "scopes": [
72351	//     "https://www.googleapis.com/auth/cloud-platform",
72352	//     "https://www.googleapis.com/auth/compute",
72353	//     "https://www.googleapis.com/auth/compute.readonly"
72354	//   ]
72355	// }
72356
72357}
72358
72359// Pages invokes f for each page of results.
72360// A non-nil error returned from f will halt the iteration.
72361// The provided context supersedes any context provided to the Context method.
72362func (c *NodeGroupsListCall) Pages(ctx context.Context, f func(*NodeGroupList) error) error {
72363	c.ctx_ = ctx
72364	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
72365	for {
72366		x, err := c.Do()
72367		if err != nil {
72368			return err
72369		}
72370		if err := f(x); err != nil {
72371			return err
72372		}
72373		if x.NextPageToken == "" {
72374			return nil
72375		}
72376		c.PageToken(x.NextPageToken)
72377	}
72378}
72379
72380// method id "compute.nodeGroups.listNodes":
72381
72382type NodeGroupsListNodesCall struct {
72383	s          *Service
72384	project    string
72385	zone       string
72386	nodeGroup  string
72387	urlParams_ gensupport.URLParams
72388	ctx_       context.Context
72389	header_    http.Header
72390}
72391
72392// ListNodes: Lists nodes in the node group.
72393func (r *NodeGroupsService) ListNodes(project string, zone string, nodeGroup string) *NodeGroupsListNodesCall {
72394	c := &NodeGroupsListNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72395	c.project = project
72396	c.zone = zone
72397	c.nodeGroup = nodeGroup
72398	return c
72399}
72400
72401// Filter sets the optional parameter "filter": A filter expression that
72402// filters resources listed in the response. The expression must specify
72403// the field name, a comparison operator, and the value that you want to
72404// use for filtering. The value must be a string, a number, or a
72405// boolean. The comparison operator must be either =, !=, >, or <.
72406//
72407// For example, if you are filtering Compute Engine instances, you can
72408// exclude instances named example-instance by specifying name !=
72409// example-instance.
72410//
72411// You can also filter nested fields. For example, you could specify
72412// scheduling.automaticRestart = false to include instances only if they
72413// are not scheduled for automatic restarts. You can use filtering on
72414// nested fields to filter based on resource labels.
72415//
72416// To filter on multiple expressions, provide each separate expression
72417// within parentheses. For example, (scheduling.automaticRestart = true)
72418// (cpuPlatform = "Intel Skylake"). By default, each expression is an
72419// AND expression. However, you can include AND and OR expressions
72420// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
72421// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
72422// true).
72423func (c *NodeGroupsListNodesCall) Filter(filter string) *NodeGroupsListNodesCall {
72424	c.urlParams_.Set("filter", filter)
72425	return c
72426}
72427
72428// MaxResults sets the optional parameter "maxResults": The maximum
72429// number of results per page that should be returned. If the number of
72430// available results is larger than maxResults, Compute Engine returns a
72431// nextPageToken that can be used to get the next page of results in
72432// subsequent list requests. Acceptable values are 0 to 500, inclusive.
72433// (Default: 500)
72434func (c *NodeGroupsListNodesCall) MaxResults(maxResults int64) *NodeGroupsListNodesCall {
72435	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
72436	return c
72437}
72438
72439// OrderBy sets the optional parameter "orderBy": Sorts list results by
72440// a certain order. By default, results are returned in alphanumerical
72441// order based on the resource name.
72442//
72443// You can also sort results in descending order based on the creation
72444// timestamp using orderBy="creationTimestamp desc". This sorts results
72445// based on the creationTimestamp field in reverse chronological order
72446// (newest result first). Use this to sort resources like operations so
72447// that the newest operation is returned first.
72448//
72449// Currently, only sorting by name or creationTimestamp desc is
72450// supported.
72451func (c *NodeGroupsListNodesCall) OrderBy(orderBy string) *NodeGroupsListNodesCall {
72452	c.urlParams_.Set("orderBy", orderBy)
72453	return c
72454}
72455
72456// PageToken sets the optional parameter "pageToken": Specifies a page
72457// token to use. Set pageToken to the nextPageToken returned by a
72458// previous list request to get the next page of results.
72459func (c *NodeGroupsListNodesCall) PageToken(pageToken string) *NodeGroupsListNodesCall {
72460	c.urlParams_.Set("pageToken", pageToken)
72461	return c
72462}
72463
72464// Fields allows partial responses to be retrieved. See
72465// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72466// for more information.
72467func (c *NodeGroupsListNodesCall) Fields(s ...googleapi.Field) *NodeGroupsListNodesCall {
72468	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72469	return c
72470}
72471
72472// Context sets the context to be used in this call's Do method. Any
72473// pending HTTP request will be aborted if the provided context is
72474// canceled.
72475func (c *NodeGroupsListNodesCall) Context(ctx context.Context) *NodeGroupsListNodesCall {
72476	c.ctx_ = ctx
72477	return c
72478}
72479
72480// Header returns an http.Header that can be modified by the caller to
72481// add HTTP headers to the request.
72482func (c *NodeGroupsListNodesCall) Header() http.Header {
72483	if c.header_ == nil {
72484		c.header_ = make(http.Header)
72485	}
72486	return c.header_
72487}
72488
72489func (c *NodeGroupsListNodesCall) doRequest(alt string) (*http.Response, error) {
72490	reqHeaders := make(http.Header)
72491	for k, v := range c.header_ {
72492		reqHeaders[k] = v
72493	}
72494	reqHeaders.Set("User-Agent", c.s.userAgent())
72495	var body io.Reader = nil
72496	c.urlParams_.Set("alt", alt)
72497	c.urlParams_.Set("prettyPrint", "false")
72498	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes")
72499	urls += "?" + c.urlParams_.Encode()
72500	req, err := http.NewRequest("POST", urls, body)
72501	if err != nil {
72502		return nil, err
72503	}
72504	req.Header = reqHeaders
72505	googleapi.Expand(req.URL, map[string]string{
72506		"project":   c.project,
72507		"zone":      c.zone,
72508		"nodeGroup": c.nodeGroup,
72509	})
72510	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72511}
72512
72513// Do executes the "compute.nodeGroups.listNodes" call.
72514// Exactly one of *NodeGroupsListNodes or error will be non-nil. Any
72515// non-2xx status code is an error. Response headers are in either
72516// *NodeGroupsListNodes.ServerResponse.Header or (if a response was
72517// returned at all) in error.(*googleapi.Error).Header. Use
72518// googleapi.IsNotModified to check whether the returned error was
72519// because http.StatusNotModified was returned.
72520func (c *NodeGroupsListNodesCall) Do(opts ...googleapi.CallOption) (*NodeGroupsListNodes, error) {
72521	gensupport.SetOptions(c.urlParams_, opts...)
72522	res, err := c.doRequest("json")
72523	if res != nil && res.StatusCode == http.StatusNotModified {
72524		if res.Body != nil {
72525			res.Body.Close()
72526		}
72527		return nil, &googleapi.Error{
72528			Code:   res.StatusCode,
72529			Header: res.Header,
72530		}
72531	}
72532	if err != nil {
72533		return nil, err
72534	}
72535	defer googleapi.CloseBody(res)
72536	if err := googleapi.CheckResponse(res); err != nil {
72537		return nil, err
72538	}
72539	ret := &NodeGroupsListNodes{
72540		ServerResponse: googleapi.ServerResponse{
72541			Header:         res.Header,
72542			HTTPStatusCode: res.StatusCode,
72543		},
72544	}
72545	target := &ret
72546	if err := gensupport.DecodeResponse(target, res); err != nil {
72547		return nil, err
72548	}
72549	return ret, nil
72550	// {
72551	//   "description": "Lists nodes in the node group.",
72552	//   "httpMethod": "POST",
72553	//   "id": "compute.nodeGroups.listNodes",
72554	//   "parameterOrder": [
72555	//     "project",
72556	//     "zone",
72557	//     "nodeGroup"
72558	//   ],
72559	//   "parameters": {
72560	//     "filter": {
72561	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
72562	//       "location": "query",
72563	//       "type": "string"
72564	//     },
72565	//     "maxResults": {
72566	//       "default": "500",
72567	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
72568	//       "format": "uint32",
72569	//       "location": "query",
72570	//       "minimum": "0",
72571	//       "type": "integer"
72572	//     },
72573	//     "nodeGroup": {
72574	//       "description": "Name of the NodeGroup resource whose nodes you want to list.",
72575	//       "location": "path",
72576	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72577	//       "required": true,
72578	//       "type": "string"
72579	//     },
72580	//     "orderBy": {
72581	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
72582	//       "location": "query",
72583	//       "type": "string"
72584	//     },
72585	//     "pageToken": {
72586	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
72587	//       "location": "query",
72588	//       "type": "string"
72589	//     },
72590	//     "project": {
72591	//       "description": "Project ID for this request.",
72592	//       "location": "path",
72593	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72594	//       "required": true,
72595	//       "type": "string"
72596	//     },
72597	//     "zone": {
72598	//       "description": "The name of the zone for this request.",
72599	//       "location": "path",
72600	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72601	//       "required": true,
72602	//       "type": "string"
72603	//     }
72604	//   },
72605	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes",
72606	//   "response": {
72607	//     "$ref": "NodeGroupsListNodes"
72608	//   },
72609	//   "scopes": [
72610	//     "https://www.googleapis.com/auth/cloud-platform",
72611	//     "https://www.googleapis.com/auth/compute",
72612	//     "https://www.googleapis.com/auth/compute.readonly"
72613	//   ]
72614	// }
72615
72616}
72617
72618// Pages invokes f for each page of results.
72619// A non-nil error returned from f will halt the iteration.
72620// The provided context supersedes any context provided to the Context method.
72621func (c *NodeGroupsListNodesCall) Pages(ctx context.Context, f func(*NodeGroupsListNodes) error) error {
72622	c.ctx_ = ctx
72623	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
72624	for {
72625		x, err := c.Do()
72626		if err != nil {
72627			return err
72628		}
72629		if err := f(x); err != nil {
72630			return err
72631		}
72632		if x.NextPageToken == "" {
72633			return nil
72634		}
72635		c.PageToken(x.NextPageToken)
72636	}
72637}
72638
72639// method id "compute.nodeGroups.setIamPolicy":
72640
72641type NodeGroupsSetIamPolicyCall struct {
72642	s                    *Service
72643	project              string
72644	zone                 string
72645	resource             string
72646	zonesetpolicyrequest *ZoneSetPolicyRequest
72647	urlParams_           gensupport.URLParams
72648	ctx_                 context.Context
72649	header_              http.Header
72650}
72651
72652// SetIamPolicy: Sets the access control policy on the specified
72653// resource. Replaces any existing policy.
72654func (r *NodeGroupsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *NodeGroupsSetIamPolicyCall {
72655	c := &NodeGroupsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72656	c.project = project
72657	c.zone = zone
72658	c.resource = resource
72659	c.zonesetpolicyrequest = zonesetpolicyrequest
72660	return c
72661}
72662
72663// Fields allows partial responses to be retrieved. See
72664// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72665// for more information.
72666func (c *NodeGroupsSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsSetIamPolicyCall {
72667	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72668	return c
72669}
72670
72671// Context sets the context to be used in this call's Do method. Any
72672// pending HTTP request will be aborted if the provided context is
72673// canceled.
72674func (c *NodeGroupsSetIamPolicyCall) Context(ctx context.Context) *NodeGroupsSetIamPolicyCall {
72675	c.ctx_ = ctx
72676	return c
72677}
72678
72679// Header returns an http.Header that can be modified by the caller to
72680// add HTTP headers to the request.
72681func (c *NodeGroupsSetIamPolicyCall) Header() http.Header {
72682	if c.header_ == nil {
72683		c.header_ = make(http.Header)
72684	}
72685	return c.header_
72686}
72687
72688func (c *NodeGroupsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
72689	reqHeaders := make(http.Header)
72690	for k, v := range c.header_ {
72691		reqHeaders[k] = v
72692	}
72693	reqHeaders.Set("User-Agent", c.s.userAgent())
72694	var body io.Reader = nil
72695	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
72696	if err != nil {
72697		return nil, err
72698	}
72699	reqHeaders.Set("Content-Type", "application/json")
72700	c.urlParams_.Set("alt", alt)
72701	c.urlParams_.Set("prettyPrint", "false")
72702	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy")
72703	urls += "?" + c.urlParams_.Encode()
72704	req, err := http.NewRequest("POST", urls, body)
72705	if err != nil {
72706		return nil, err
72707	}
72708	req.Header = reqHeaders
72709	googleapi.Expand(req.URL, map[string]string{
72710		"project":  c.project,
72711		"zone":     c.zone,
72712		"resource": c.resource,
72713	})
72714	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72715}
72716
72717// Do executes the "compute.nodeGroups.setIamPolicy" call.
72718// Exactly one of *Policy or error will be non-nil. Any non-2xx status
72719// code is an error. Response headers are in either
72720// *Policy.ServerResponse.Header or (if a response was returned at all)
72721// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
72722// check whether the returned error was because http.StatusNotModified
72723// was returned.
72724func (c *NodeGroupsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
72725	gensupport.SetOptions(c.urlParams_, opts...)
72726	res, err := c.doRequest("json")
72727	if res != nil && res.StatusCode == http.StatusNotModified {
72728		if res.Body != nil {
72729			res.Body.Close()
72730		}
72731		return nil, &googleapi.Error{
72732			Code:   res.StatusCode,
72733			Header: res.Header,
72734		}
72735	}
72736	if err != nil {
72737		return nil, err
72738	}
72739	defer googleapi.CloseBody(res)
72740	if err := googleapi.CheckResponse(res); err != nil {
72741		return nil, err
72742	}
72743	ret := &Policy{
72744		ServerResponse: googleapi.ServerResponse{
72745			Header:         res.Header,
72746			HTTPStatusCode: res.StatusCode,
72747		},
72748	}
72749	target := &ret
72750	if err := gensupport.DecodeResponse(target, res); err != nil {
72751		return nil, err
72752	}
72753	return ret, nil
72754	// {
72755	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
72756	//   "httpMethod": "POST",
72757	//   "id": "compute.nodeGroups.setIamPolicy",
72758	//   "parameterOrder": [
72759	//     "project",
72760	//     "zone",
72761	//     "resource"
72762	//   ],
72763	//   "parameters": {
72764	//     "project": {
72765	//       "description": "Project ID for this request.",
72766	//       "location": "path",
72767	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72768	//       "required": true,
72769	//       "type": "string"
72770	//     },
72771	//     "resource": {
72772	//       "description": "Name or id of the resource for this request.",
72773	//       "location": "path",
72774	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72775	//       "required": true,
72776	//       "type": "string"
72777	//     },
72778	//     "zone": {
72779	//       "description": "The name of the zone for this request.",
72780	//       "location": "path",
72781	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72782	//       "required": true,
72783	//       "type": "string"
72784	//     }
72785	//   },
72786	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy",
72787	//   "request": {
72788	//     "$ref": "ZoneSetPolicyRequest"
72789	//   },
72790	//   "response": {
72791	//     "$ref": "Policy"
72792	//   },
72793	//   "scopes": [
72794	//     "https://www.googleapis.com/auth/cloud-platform",
72795	//     "https://www.googleapis.com/auth/compute"
72796	//   ]
72797	// }
72798
72799}
72800
72801// method id "compute.nodeGroups.setNodeTemplate":
72802
72803type NodeGroupsSetNodeTemplateCall struct {
72804	s                                *Service
72805	project                          string
72806	zone                             string
72807	nodeGroup                        string
72808	nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest
72809	urlParams_                       gensupport.URLParams
72810	ctx_                             context.Context
72811	header_                          http.Header
72812}
72813
72814// SetNodeTemplate: Updates the node template of the node group.
72815func (r *NodeGroupsService) SetNodeTemplate(project string, zone string, nodeGroup string, nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest) *NodeGroupsSetNodeTemplateCall {
72816	c := &NodeGroupsSetNodeTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72817	c.project = project
72818	c.zone = zone
72819	c.nodeGroup = nodeGroup
72820	c.nodegroupssetnodetemplaterequest = nodegroupssetnodetemplaterequest
72821	return c
72822}
72823
72824// RequestId sets the optional parameter "requestId": An optional
72825// request ID to identify requests. Specify a unique request ID so that
72826// if you must retry your request, the server will know to ignore the
72827// request if it has already been completed.
72828//
72829// For example, consider a situation where you make an initial request
72830// and the request times out. If you make the request again with the
72831// same request ID, the server can check if original operation with the
72832// same request ID was received, and if so, will ignore the second
72833// request. This prevents clients from accidentally creating duplicate
72834// commitments.
72835//
72836// The request ID must be a valid UUID with the exception that zero UUID
72837// is not supported (00000000-0000-0000-0000-000000000000).
72838func (c *NodeGroupsSetNodeTemplateCall) RequestId(requestId string) *NodeGroupsSetNodeTemplateCall {
72839	c.urlParams_.Set("requestId", requestId)
72840	return c
72841}
72842
72843// Fields allows partial responses to be retrieved. See
72844// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72845// for more information.
72846func (c *NodeGroupsSetNodeTemplateCall) Fields(s ...googleapi.Field) *NodeGroupsSetNodeTemplateCall {
72847	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72848	return c
72849}
72850
72851// Context sets the context to be used in this call's Do method. Any
72852// pending HTTP request will be aborted if the provided context is
72853// canceled.
72854func (c *NodeGroupsSetNodeTemplateCall) Context(ctx context.Context) *NodeGroupsSetNodeTemplateCall {
72855	c.ctx_ = ctx
72856	return c
72857}
72858
72859// Header returns an http.Header that can be modified by the caller to
72860// add HTTP headers to the request.
72861func (c *NodeGroupsSetNodeTemplateCall) Header() http.Header {
72862	if c.header_ == nil {
72863		c.header_ = make(http.Header)
72864	}
72865	return c.header_
72866}
72867
72868func (c *NodeGroupsSetNodeTemplateCall) doRequest(alt string) (*http.Response, error) {
72869	reqHeaders := make(http.Header)
72870	for k, v := range c.header_ {
72871		reqHeaders[k] = v
72872	}
72873	reqHeaders.Set("User-Agent", c.s.userAgent())
72874	var body io.Reader = nil
72875	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupssetnodetemplaterequest)
72876	if err != nil {
72877		return nil, err
72878	}
72879	reqHeaders.Set("Content-Type", "application/json")
72880	c.urlParams_.Set("alt", alt)
72881	c.urlParams_.Set("prettyPrint", "false")
72882	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate")
72883	urls += "?" + c.urlParams_.Encode()
72884	req, err := http.NewRequest("POST", urls, body)
72885	if err != nil {
72886		return nil, err
72887	}
72888	req.Header = reqHeaders
72889	googleapi.Expand(req.URL, map[string]string{
72890		"project":   c.project,
72891		"zone":      c.zone,
72892		"nodeGroup": c.nodeGroup,
72893	})
72894	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72895}
72896
72897// Do executes the "compute.nodeGroups.setNodeTemplate" call.
72898// Exactly one of *Operation or error will be non-nil. Any non-2xx
72899// status code is an error. Response headers are in either
72900// *Operation.ServerResponse.Header or (if a response was returned at
72901// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72902// to check whether the returned error was because
72903// http.StatusNotModified was returned.
72904func (c *NodeGroupsSetNodeTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72905	gensupport.SetOptions(c.urlParams_, opts...)
72906	res, err := c.doRequest("json")
72907	if res != nil && res.StatusCode == http.StatusNotModified {
72908		if res.Body != nil {
72909			res.Body.Close()
72910		}
72911		return nil, &googleapi.Error{
72912			Code:   res.StatusCode,
72913			Header: res.Header,
72914		}
72915	}
72916	if err != nil {
72917		return nil, err
72918	}
72919	defer googleapi.CloseBody(res)
72920	if err := googleapi.CheckResponse(res); err != nil {
72921		return nil, err
72922	}
72923	ret := &Operation{
72924		ServerResponse: googleapi.ServerResponse{
72925			Header:         res.Header,
72926			HTTPStatusCode: res.StatusCode,
72927		},
72928	}
72929	target := &ret
72930	if err := gensupport.DecodeResponse(target, res); err != nil {
72931		return nil, err
72932	}
72933	return ret, nil
72934	// {
72935	//   "description": "Updates the node template of the node group.",
72936	//   "httpMethod": "POST",
72937	//   "id": "compute.nodeGroups.setNodeTemplate",
72938	//   "parameterOrder": [
72939	//     "project",
72940	//     "zone",
72941	//     "nodeGroup"
72942	//   ],
72943	//   "parameters": {
72944	//     "nodeGroup": {
72945	//       "description": "Name of the NodeGroup resource to update.",
72946	//       "location": "path",
72947	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72948	//       "required": true,
72949	//       "type": "string"
72950	//     },
72951	//     "project": {
72952	//       "description": "Project ID for this request.",
72953	//       "location": "path",
72954	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72955	//       "required": true,
72956	//       "type": "string"
72957	//     },
72958	//     "requestId": {
72959	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72960	//       "location": "query",
72961	//       "type": "string"
72962	//     },
72963	//     "zone": {
72964	//       "description": "The name of the zone for this request.",
72965	//       "location": "path",
72966	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72967	//       "required": true,
72968	//       "type": "string"
72969	//     }
72970	//   },
72971	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate",
72972	//   "request": {
72973	//     "$ref": "NodeGroupsSetNodeTemplateRequest"
72974	//   },
72975	//   "response": {
72976	//     "$ref": "Operation"
72977	//   },
72978	//   "scopes": [
72979	//     "https://www.googleapis.com/auth/cloud-platform",
72980	//     "https://www.googleapis.com/auth/compute"
72981	//   ]
72982	// }
72983
72984}
72985
72986// method id "compute.nodeGroups.testIamPermissions":
72987
72988type NodeGroupsTestIamPermissionsCall struct {
72989	s                      *Service
72990	project                string
72991	zone                   string
72992	resource               string
72993	testpermissionsrequest *TestPermissionsRequest
72994	urlParams_             gensupport.URLParams
72995	ctx_                   context.Context
72996	header_                http.Header
72997}
72998
72999// TestIamPermissions: Returns permissions that a caller has on the
73000// specified resource.
73001func (r *NodeGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeGroupsTestIamPermissionsCall {
73002	c := &NodeGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73003	c.project = project
73004	c.zone = zone
73005	c.resource = resource
73006	c.testpermissionsrequest = testpermissionsrequest
73007	return c
73008}
73009
73010// Fields allows partial responses to be retrieved. See
73011// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73012// for more information.
73013func (c *NodeGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeGroupsTestIamPermissionsCall {
73014	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73015	return c
73016}
73017
73018// Context sets the context to be used in this call's Do method. Any
73019// pending HTTP request will be aborted if the provided context is
73020// canceled.
73021func (c *NodeGroupsTestIamPermissionsCall) Context(ctx context.Context) *NodeGroupsTestIamPermissionsCall {
73022	c.ctx_ = ctx
73023	return c
73024}
73025
73026// Header returns an http.Header that can be modified by the caller to
73027// add HTTP headers to the request.
73028func (c *NodeGroupsTestIamPermissionsCall) Header() http.Header {
73029	if c.header_ == nil {
73030		c.header_ = make(http.Header)
73031	}
73032	return c.header_
73033}
73034
73035func (c *NodeGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
73036	reqHeaders := make(http.Header)
73037	for k, v := range c.header_ {
73038		reqHeaders[k] = v
73039	}
73040	reqHeaders.Set("User-Agent", c.s.userAgent())
73041	var body io.Reader = nil
73042	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
73043	if err != nil {
73044		return nil, err
73045	}
73046	reqHeaders.Set("Content-Type", "application/json")
73047	c.urlParams_.Set("alt", alt)
73048	c.urlParams_.Set("prettyPrint", "false")
73049	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions")
73050	urls += "?" + c.urlParams_.Encode()
73051	req, err := http.NewRequest("POST", urls, body)
73052	if err != nil {
73053		return nil, err
73054	}
73055	req.Header = reqHeaders
73056	googleapi.Expand(req.URL, map[string]string{
73057		"project":  c.project,
73058		"zone":     c.zone,
73059		"resource": c.resource,
73060	})
73061	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73062}
73063
73064// Do executes the "compute.nodeGroups.testIamPermissions" call.
73065// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
73066// non-2xx status code is an error. Response headers are in either
73067// *TestPermissionsResponse.ServerResponse.Header or (if a response was
73068// returned at all) in error.(*googleapi.Error).Header. Use
73069// googleapi.IsNotModified to check whether the returned error was
73070// because http.StatusNotModified was returned.
73071func (c *NodeGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
73072	gensupport.SetOptions(c.urlParams_, opts...)
73073	res, err := c.doRequest("json")
73074	if res != nil && res.StatusCode == http.StatusNotModified {
73075		if res.Body != nil {
73076			res.Body.Close()
73077		}
73078		return nil, &googleapi.Error{
73079			Code:   res.StatusCode,
73080			Header: res.Header,
73081		}
73082	}
73083	if err != nil {
73084		return nil, err
73085	}
73086	defer googleapi.CloseBody(res)
73087	if err := googleapi.CheckResponse(res); err != nil {
73088		return nil, err
73089	}
73090	ret := &TestPermissionsResponse{
73091		ServerResponse: googleapi.ServerResponse{
73092			Header:         res.Header,
73093			HTTPStatusCode: res.StatusCode,
73094		},
73095	}
73096	target := &ret
73097	if err := gensupport.DecodeResponse(target, res); err != nil {
73098		return nil, err
73099	}
73100	return ret, nil
73101	// {
73102	//   "description": "Returns permissions that a caller has on the specified resource.",
73103	//   "httpMethod": "POST",
73104	//   "id": "compute.nodeGroups.testIamPermissions",
73105	//   "parameterOrder": [
73106	//     "project",
73107	//     "zone",
73108	//     "resource"
73109	//   ],
73110	//   "parameters": {
73111	//     "project": {
73112	//       "description": "Project ID for this request.",
73113	//       "location": "path",
73114	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73115	//       "required": true,
73116	//       "type": "string"
73117	//     },
73118	//     "resource": {
73119	//       "description": "Name or id of the resource for this request.",
73120	//       "location": "path",
73121	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73122	//       "required": true,
73123	//       "type": "string"
73124	//     },
73125	//     "zone": {
73126	//       "description": "The name of the zone for this request.",
73127	//       "location": "path",
73128	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73129	//       "required": true,
73130	//       "type": "string"
73131	//     }
73132	//   },
73133	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions",
73134	//   "request": {
73135	//     "$ref": "TestPermissionsRequest"
73136	//   },
73137	//   "response": {
73138	//     "$ref": "TestPermissionsResponse"
73139	//   },
73140	//   "scopes": [
73141	//     "https://www.googleapis.com/auth/cloud-platform",
73142	//     "https://www.googleapis.com/auth/compute",
73143	//     "https://www.googleapis.com/auth/compute.readonly"
73144	//   ]
73145	// }
73146
73147}
73148
73149// method id "compute.nodeTemplates.aggregatedList":
73150
73151type NodeTemplatesAggregatedListCall struct {
73152	s            *Service
73153	project      string
73154	urlParams_   gensupport.URLParams
73155	ifNoneMatch_ string
73156	ctx_         context.Context
73157	header_      http.Header
73158}
73159
73160// AggregatedList: Retrieves an aggregated list of node templates.
73161func (r *NodeTemplatesService) AggregatedList(project string) *NodeTemplatesAggregatedListCall {
73162	c := &NodeTemplatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73163	c.project = project
73164	return c
73165}
73166
73167// Filter sets the optional parameter "filter": A filter expression that
73168// filters resources listed in the response. The expression must specify
73169// the field name, a comparison operator, and the value that you want to
73170// use for filtering. The value must be a string, a number, or a
73171// boolean. The comparison operator must be either =, !=, >, or <.
73172//
73173// For example, if you are filtering Compute Engine instances, you can
73174// exclude instances named example-instance by specifying name !=
73175// example-instance.
73176//
73177// You can also filter nested fields. For example, you could specify
73178// scheduling.automaticRestart = false to include instances only if they
73179// are not scheduled for automatic restarts. You can use filtering on
73180// nested fields to filter based on resource labels.
73181//
73182// To filter on multiple expressions, provide each separate expression
73183// within parentheses. For example, (scheduling.automaticRestart = true)
73184// (cpuPlatform = "Intel Skylake"). By default, each expression is an
73185// AND expression. However, you can include AND and OR expressions
73186// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
73187// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
73188// true).
73189func (c *NodeTemplatesAggregatedListCall) Filter(filter string) *NodeTemplatesAggregatedListCall {
73190	c.urlParams_.Set("filter", filter)
73191	return c
73192}
73193
73194// MaxResults sets the optional parameter "maxResults": The maximum
73195// number of results per page that should be returned. If the number of
73196// available results is larger than maxResults, Compute Engine returns a
73197// nextPageToken that can be used to get the next page of results in
73198// subsequent list requests. Acceptable values are 0 to 500, inclusive.
73199// (Default: 500)
73200func (c *NodeTemplatesAggregatedListCall) MaxResults(maxResults int64) *NodeTemplatesAggregatedListCall {
73201	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
73202	return c
73203}
73204
73205// OrderBy sets the optional parameter "orderBy": Sorts list results by
73206// a certain order. By default, results are returned in alphanumerical
73207// order based on the resource name.
73208//
73209// You can also sort results in descending order based on the creation
73210// timestamp using orderBy="creationTimestamp desc". This sorts results
73211// based on the creationTimestamp field in reverse chronological order
73212// (newest result first). Use this to sort resources like operations so
73213// that the newest operation is returned first.
73214//
73215// Currently, only sorting by name or creationTimestamp desc is
73216// supported.
73217func (c *NodeTemplatesAggregatedListCall) OrderBy(orderBy string) *NodeTemplatesAggregatedListCall {
73218	c.urlParams_.Set("orderBy", orderBy)
73219	return c
73220}
73221
73222// PageToken sets the optional parameter "pageToken": Specifies a page
73223// token to use. Set pageToken to the nextPageToken returned by a
73224// previous list request to get the next page of results.
73225func (c *NodeTemplatesAggregatedListCall) PageToken(pageToken string) *NodeTemplatesAggregatedListCall {
73226	c.urlParams_.Set("pageToken", pageToken)
73227	return c
73228}
73229
73230// Fields allows partial responses to be retrieved. See
73231// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73232// for more information.
73233func (c *NodeTemplatesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTemplatesAggregatedListCall {
73234	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73235	return c
73236}
73237
73238// IfNoneMatch sets the optional parameter which makes the operation
73239// fail if the object's ETag matches the given value. This is useful for
73240// getting updates only after the object has changed since the last
73241// request. Use googleapi.IsNotModified to check whether the response
73242// error from Do is the result of In-None-Match.
73243func (c *NodeTemplatesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTemplatesAggregatedListCall {
73244	c.ifNoneMatch_ = entityTag
73245	return c
73246}
73247
73248// Context sets the context to be used in this call's Do method. Any
73249// pending HTTP request will be aborted if the provided context is
73250// canceled.
73251func (c *NodeTemplatesAggregatedListCall) Context(ctx context.Context) *NodeTemplatesAggregatedListCall {
73252	c.ctx_ = ctx
73253	return c
73254}
73255
73256// Header returns an http.Header that can be modified by the caller to
73257// add HTTP headers to the request.
73258func (c *NodeTemplatesAggregatedListCall) Header() http.Header {
73259	if c.header_ == nil {
73260		c.header_ = make(http.Header)
73261	}
73262	return c.header_
73263}
73264
73265func (c *NodeTemplatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
73266	reqHeaders := make(http.Header)
73267	for k, v := range c.header_ {
73268		reqHeaders[k] = v
73269	}
73270	reqHeaders.Set("User-Agent", c.s.userAgent())
73271	if c.ifNoneMatch_ != "" {
73272		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73273	}
73274	var body io.Reader = nil
73275	c.urlParams_.Set("alt", alt)
73276	c.urlParams_.Set("prettyPrint", "false")
73277	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeTemplates")
73278	urls += "?" + c.urlParams_.Encode()
73279	req, err := http.NewRequest("GET", urls, body)
73280	if err != nil {
73281		return nil, err
73282	}
73283	req.Header = reqHeaders
73284	googleapi.Expand(req.URL, map[string]string{
73285		"project": c.project,
73286	})
73287	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73288}
73289
73290// Do executes the "compute.nodeTemplates.aggregatedList" call.
73291// Exactly one of *NodeTemplateAggregatedList or error will be non-nil.
73292// Any non-2xx status code is an error. Response headers are in either
73293// *NodeTemplateAggregatedList.ServerResponse.Header or (if a response
73294// was returned at all) in error.(*googleapi.Error).Header. Use
73295// googleapi.IsNotModified to check whether the returned error was
73296// because http.StatusNotModified was returned.
73297func (c *NodeTemplatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateAggregatedList, error) {
73298	gensupport.SetOptions(c.urlParams_, opts...)
73299	res, err := c.doRequest("json")
73300	if res != nil && res.StatusCode == http.StatusNotModified {
73301		if res.Body != nil {
73302			res.Body.Close()
73303		}
73304		return nil, &googleapi.Error{
73305			Code:   res.StatusCode,
73306			Header: res.Header,
73307		}
73308	}
73309	if err != nil {
73310		return nil, err
73311	}
73312	defer googleapi.CloseBody(res)
73313	if err := googleapi.CheckResponse(res); err != nil {
73314		return nil, err
73315	}
73316	ret := &NodeTemplateAggregatedList{
73317		ServerResponse: googleapi.ServerResponse{
73318			Header:         res.Header,
73319			HTTPStatusCode: res.StatusCode,
73320		},
73321	}
73322	target := &ret
73323	if err := gensupport.DecodeResponse(target, res); err != nil {
73324		return nil, err
73325	}
73326	return ret, nil
73327	// {
73328	//   "description": "Retrieves an aggregated list of node templates.",
73329	//   "httpMethod": "GET",
73330	//   "id": "compute.nodeTemplates.aggregatedList",
73331	//   "parameterOrder": [
73332	//     "project"
73333	//   ],
73334	//   "parameters": {
73335	//     "filter": {
73336	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
73337	//       "location": "query",
73338	//       "type": "string"
73339	//     },
73340	//     "maxResults": {
73341	//       "default": "500",
73342	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
73343	//       "format": "uint32",
73344	//       "location": "query",
73345	//       "minimum": "0",
73346	//       "type": "integer"
73347	//     },
73348	//     "orderBy": {
73349	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
73350	//       "location": "query",
73351	//       "type": "string"
73352	//     },
73353	//     "pageToken": {
73354	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
73355	//       "location": "query",
73356	//       "type": "string"
73357	//     },
73358	//     "project": {
73359	//       "description": "Project ID for this request.",
73360	//       "location": "path",
73361	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73362	//       "required": true,
73363	//       "type": "string"
73364	//     }
73365	//   },
73366	//   "path": "{project}/aggregated/nodeTemplates",
73367	//   "response": {
73368	//     "$ref": "NodeTemplateAggregatedList"
73369	//   },
73370	//   "scopes": [
73371	//     "https://www.googleapis.com/auth/cloud-platform",
73372	//     "https://www.googleapis.com/auth/compute",
73373	//     "https://www.googleapis.com/auth/compute.readonly"
73374	//   ]
73375	// }
73376
73377}
73378
73379// Pages invokes f for each page of results.
73380// A non-nil error returned from f will halt the iteration.
73381// The provided context supersedes any context provided to the Context method.
73382func (c *NodeTemplatesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTemplateAggregatedList) error) error {
73383	c.ctx_ = ctx
73384	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
73385	for {
73386		x, err := c.Do()
73387		if err != nil {
73388			return err
73389		}
73390		if err := f(x); err != nil {
73391			return err
73392		}
73393		if x.NextPageToken == "" {
73394			return nil
73395		}
73396		c.PageToken(x.NextPageToken)
73397	}
73398}
73399
73400// method id "compute.nodeTemplates.delete":
73401
73402type NodeTemplatesDeleteCall struct {
73403	s            *Service
73404	project      string
73405	region       string
73406	nodeTemplate string
73407	urlParams_   gensupport.URLParams
73408	ctx_         context.Context
73409	header_      http.Header
73410}
73411
73412// Delete: Deletes the specified NodeTemplate resource.
73413func (r *NodeTemplatesService) Delete(project string, region string, nodeTemplate string) *NodeTemplatesDeleteCall {
73414	c := &NodeTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73415	c.project = project
73416	c.region = region
73417	c.nodeTemplate = nodeTemplate
73418	return c
73419}
73420
73421// RequestId sets the optional parameter "requestId": An optional
73422// request ID to identify requests. Specify a unique request ID so that
73423// if you must retry your request, the server will know to ignore the
73424// request if it has already been completed.
73425//
73426// For example, consider a situation where you make an initial request
73427// and the request times out. If you make the request again with the
73428// same request ID, the server can check if original operation with the
73429// same request ID was received, and if so, will ignore the second
73430// request. This prevents clients from accidentally creating duplicate
73431// commitments.
73432//
73433// The request ID must be a valid UUID with the exception that zero UUID
73434// is not supported (00000000-0000-0000-0000-000000000000).
73435func (c *NodeTemplatesDeleteCall) RequestId(requestId string) *NodeTemplatesDeleteCall {
73436	c.urlParams_.Set("requestId", requestId)
73437	return c
73438}
73439
73440// Fields allows partial responses to be retrieved. See
73441// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73442// for more information.
73443func (c *NodeTemplatesDeleteCall) Fields(s ...googleapi.Field) *NodeTemplatesDeleteCall {
73444	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73445	return c
73446}
73447
73448// Context sets the context to be used in this call's Do method. Any
73449// pending HTTP request will be aborted if the provided context is
73450// canceled.
73451func (c *NodeTemplatesDeleteCall) Context(ctx context.Context) *NodeTemplatesDeleteCall {
73452	c.ctx_ = ctx
73453	return c
73454}
73455
73456// Header returns an http.Header that can be modified by the caller to
73457// add HTTP headers to the request.
73458func (c *NodeTemplatesDeleteCall) Header() http.Header {
73459	if c.header_ == nil {
73460		c.header_ = make(http.Header)
73461	}
73462	return c.header_
73463}
73464
73465func (c *NodeTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
73466	reqHeaders := make(http.Header)
73467	for k, v := range c.header_ {
73468		reqHeaders[k] = v
73469	}
73470	reqHeaders.Set("User-Agent", c.s.userAgent())
73471	var body io.Reader = nil
73472	c.urlParams_.Set("alt", alt)
73473	c.urlParams_.Set("prettyPrint", "false")
73474	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
73475	urls += "?" + c.urlParams_.Encode()
73476	req, err := http.NewRequest("DELETE", urls, body)
73477	if err != nil {
73478		return nil, err
73479	}
73480	req.Header = reqHeaders
73481	googleapi.Expand(req.URL, map[string]string{
73482		"project":      c.project,
73483		"region":       c.region,
73484		"nodeTemplate": c.nodeTemplate,
73485	})
73486	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73487}
73488
73489// Do executes the "compute.nodeTemplates.delete" call.
73490// Exactly one of *Operation or error will be non-nil. Any non-2xx
73491// status code is an error. Response headers are in either
73492// *Operation.ServerResponse.Header or (if a response was returned at
73493// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73494// to check whether the returned error was because
73495// http.StatusNotModified was returned.
73496func (c *NodeTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73497	gensupport.SetOptions(c.urlParams_, opts...)
73498	res, err := c.doRequest("json")
73499	if res != nil && res.StatusCode == http.StatusNotModified {
73500		if res.Body != nil {
73501			res.Body.Close()
73502		}
73503		return nil, &googleapi.Error{
73504			Code:   res.StatusCode,
73505			Header: res.Header,
73506		}
73507	}
73508	if err != nil {
73509		return nil, err
73510	}
73511	defer googleapi.CloseBody(res)
73512	if err := googleapi.CheckResponse(res); err != nil {
73513		return nil, err
73514	}
73515	ret := &Operation{
73516		ServerResponse: googleapi.ServerResponse{
73517			Header:         res.Header,
73518			HTTPStatusCode: res.StatusCode,
73519		},
73520	}
73521	target := &ret
73522	if err := gensupport.DecodeResponse(target, res); err != nil {
73523		return nil, err
73524	}
73525	return ret, nil
73526	// {
73527	//   "description": "Deletes the specified NodeTemplate resource.",
73528	//   "httpMethod": "DELETE",
73529	//   "id": "compute.nodeTemplates.delete",
73530	//   "parameterOrder": [
73531	//     "project",
73532	//     "region",
73533	//     "nodeTemplate"
73534	//   ],
73535	//   "parameters": {
73536	//     "nodeTemplate": {
73537	//       "description": "Name of the NodeTemplate resource to delete.",
73538	//       "location": "path",
73539	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73540	//       "required": true,
73541	//       "type": "string"
73542	//     },
73543	//     "project": {
73544	//       "description": "Project ID for this request.",
73545	//       "location": "path",
73546	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73547	//       "required": true,
73548	//       "type": "string"
73549	//     },
73550	//     "region": {
73551	//       "description": "The name of the region for this request.",
73552	//       "location": "path",
73553	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73554	//       "required": true,
73555	//       "type": "string"
73556	//     },
73557	//     "requestId": {
73558	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73559	//       "location": "query",
73560	//       "type": "string"
73561	//     }
73562	//   },
73563	//   "path": "{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
73564	//   "response": {
73565	//     "$ref": "Operation"
73566	//   },
73567	//   "scopes": [
73568	//     "https://www.googleapis.com/auth/cloud-platform",
73569	//     "https://www.googleapis.com/auth/compute"
73570	//   ]
73571	// }
73572
73573}
73574
73575// method id "compute.nodeTemplates.get":
73576
73577type NodeTemplatesGetCall struct {
73578	s            *Service
73579	project      string
73580	region       string
73581	nodeTemplate string
73582	urlParams_   gensupport.URLParams
73583	ifNoneMatch_ string
73584	ctx_         context.Context
73585	header_      http.Header
73586}
73587
73588// Get: Returns the specified node template. Gets a list of available
73589// node templates by making a list() request.
73590func (r *NodeTemplatesService) Get(project string, region string, nodeTemplate string) *NodeTemplatesGetCall {
73591	c := &NodeTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73592	c.project = project
73593	c.region = region
73594	c.nodeTemplate = nodeTemplate
73595	return c
73596}
73597
73598// Fields allows partial responses to be retrieved. See
73599// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73600// for more information.
73601func (c *NodeTemplatesGetCall) Fields(s ...googleapi.Field) *NodeTemplatesGetCall {
73602	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73603	return c
73604}
73605
73606// IfNoneMatch sets the optional parameter which makes the operation
73607// fail if the object's ETag matches the given value. This is useful for
73608// getting updates only after the object has changed since the last
73609// request. Use googleapi.IsNotModified to check whether the response
73610// error from Do is the result of In-None-Match.
73611func (c *NodeTemplatesGetCall) IfNoneMatch(entityTag string) *NodeTemplatesGetCall {
73612	c.ifNoneMatch_ = entityTag
73613	return c
73614}
73615
73616// Context sets the context to be used in this call's Do method. Any
73617// pending HTTP request will be aborted if the provided context is
73618// canceled.
73619func (c *NodeTemplatesGetCall) Context(ctx context.Context) *NodeTemplatesGetCall {
73620	c.ctx_ = ctx
73621	return c
73622}
73623
73624// Header returns an http.Header that can be modified by the caller to
73625// add HTTP headers to the request.
73626func (c *NodeTemplatesGetCall) Header() http.Header {
73627	if c.header_ == nil {
73628		c.header_ = make(http.Header)
73629	}
73630	return c.header_
73631}
73632
73633func (c *NodeTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
73634	reqHeaders := make(http.Header)
73635	for k, v := range c.header_ {
73636		reqHeaders[k] = v
73637	}
73638	reqHeaders.Set("User-Agent", c.s.userAgent())
73639	if c.ifNoneMatch_ != "" {
73640		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73641	}
73642	var body io.Reader = nil
73643	c.urlParams_.Set("alt", alt)
73644	c.urlParams_.Set("prettyPrint", "false")
73645	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
73646	urls += "?" + c.urlParams_.Encode()
73647	req, err := http.NewRequest("GET", urls, body)
73648	if err != nil {
73649		return nil, err
73650	}
73651	req.Header = reqHeaders
73652	googleapi.Expand(req.URL, map[string]string{
73653		"project":      c.project,
73654		"region":       c.region,
73655		"nodeTemplate": c.nodeTemplate,
73656	})
73657	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73658}
73659
73660// Do executes the "compute.nodeTemplates.get" call.
73661// Exactly one of *NodeTemplate or error will be non-nil. Any non-2xx
73662// status code is an error. Response headers are in either
73663// *NodeTemplate.ServerResponse.Header or (if a response was returned at
73664// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73665// to check whether the returned error was because
73666// http.StatusNotModified was returned.
73667func (c *NodeTemplatesGetCall) Do(opts ...googleapi.CallOption) (*NodeTemplate, error) {
73668	gensupport.SetOptions(c.urlParams_, opts...)
73669	res, err := c.doRequest("json")
73670	if res != nil && res.StatusCode == http.StatusNotModified {
73671		if res.Body != nil {
73672			res.Body.Close()
73673		}
73674		return nil, &googleapi.Error{
73675			Code:   res.StatusCode,
73676			Header: res.Header,
73677		}
73678	}
73679	if err != nil {
73680		return nil, err
73681	}
73682	defer googleapi.CloseBody(res)
73683	if err := googleapi.CheckResponse(res); err != nil {
73684		return nil, err
73685	}
73686	ret := &NodeTemplate{
73687		ServerResponse: googleapi.ServerResponse{
73688			Header:         res.Header,
73689			HTTPStatusCode: res.StatusCode,
73690		},
73691	}
73692	target := &ret
73693	if err := gensupport.DecodeResponse(target, res); err != nil {
73694		return nil, err
73695	}
73696	return ret, nil
73697	// {
73698	//   "description": "Returns the specified node template. Gets a list of available node templates by making a list() request.",
73699	//   "httpMethod": "GET",
73700	//   "id": "compute.nodeTemplates.get",
73701	//   "parameterOrder": [
73702	//     "project",
73703	//     "region",
73704	//     "nodeTemplate"
73705	//   ],
73706	//   "parameters": {
73707	//     "nodeTemplate": {
73708	//       "description": "Name of the node template to return.",
73709	//       "location": "path",
73710	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73711	//       "required": true,
73712	//       "type": "string"
73713	//     },
73714	//     "project": {
73715	//       "description": "Project ID for this request.",
73716	//       "location": "path",
73717	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73718	//       "required": true,
73719	//       "type": "string"
73720	//     },
73721	//     "region": {
73722	//       "description": "The name of the region for this request.",
73723	//       "location": "path",
73724	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73725	//       "required": true,
73726	//       "type": "string"
73727	//     }
73728	//   },
73729	//   "path": "{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
73730	//   "response": {
73731	//     "$ref": "NodeTemplate"
73732	//   },
73733	//   "scopes": [
73734	//     "https://www.googleapis.com/auth/cloud-platform",
73735	//     "https://www.googleapis.com/auth/compute",
73736	//     "https://www.googleapis.com/auth/compute.readonly"
73737	//   ]
73738	// }
73739
73740}
73741
73742// method id "compute.nodeTemplates.getIamPolicy":
73743
73744type NodeTemplatesGetIamPolicyCall struct {
73745	s            *Service
73746	project      string
73747	region       string
73748	resource     string
73749	urlParams_   gensupport.URLParams
73750	ifNoneMatch_ string
73751	ctx_         context.Context
73752	header_      http.Header
73753}
73754
73755// GetIamPolicy: Gets the access control policy for a resource. May be
73756// empty if no such policy or resource exists.
73757func (r *NodeTemplatesService) GetIamPolicy(project string, region string, resource string) *NodeTemplatesGetIamPolicyCall {
73758	c := &NodeTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73759	c.project = project
73760	c.region = region
73761	c.resource = resource
73762	return c
73763}
73764
73765// Fields allows partial responses to be retrieved. See
73766// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73767// for more information.
73768func (c *NodeTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesGetIamPolicyCall {
73769	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73770	return c
73771}
73772
73773// IfNoneMatch sets the optional parameter which makes the operation
73774// fail if the object's ETag matches the given value. This is useful for
73775// getting updates only after the object has changed since the last
73776// request. Use googleapi.IsNotModified to check whether the response
73777// error from Do is the result of In-None-Match.
73778func (c *NodeTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeTemplatesGetIamPolicyCall {
73779	c.ifNoneMatch_ = entityTag
73780	return c
73781}
73782
73783// Context sets the context to be used in this call's Do method. Any
73784// pending HTTP request will be aborted if the provided context is
73785// canceled.
73786func (c *NodeTemplatesGetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesGetIamPolicyCall {
73787	c.ctx_ = ctx
73788	return c
73789}
73790
73791// Header returns an http.Header that can be modified by the caller to
73792// add HTTP headers to the request.
73793func (c *NodeTemplatesGetIamPolicyCall) Header() http.Header {
73794	if c.header_ == nil {
73795		c.header_ = make(http.Header)
73796	}
73797	return c.header_
73798}
73799
73800func (c *NodeTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
73801	reqHeaders := make(http.Header)
73802	for k, v := range c.header_ {
73803		reqHeaders[k] = v
73804	}
73805	reqHeaders.Set("User-Agent", c.s.userAgent())
73806	if c.ifNoneMatch_ != "" {
73807		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73808	}
73809	var body io.Reader = nil
73810	c.urlParams_.Set("alt", alt)
73811	c.urlParams_.Set("prettyPrint", "false")
73812	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy")
73813	urls += "?" + c.urlParams_.Encode()
73814	req, err := http.NewRequest("GET", urls, body)
73815	if err != nil {
73816		return nil, err
73817	}
73818	req.Header = reqHeaders
73819	googleapi.Expand(req.URL, map[string]string{
73820		"project":  c.project,
73821		"region":   c.region,
73822		"resource": c.resource,
73823	})
73824	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73825}
73826
73827// Do executes the "compute.nodeTemplates.getIamPolicy" call.
73828// Exactly one of *Policy or error will be non-nil. Any non-2xx status
73829// code is an error. Response headers are in either
73830// *Policy.ServerResponse.Header or (if a response was returned at all)
73831// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
73832// check whether the returned error was because http.StatusNotModified
73833// was returned.
73834func (c *NodeTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
73835	gensupport.SetOptions(c.urlParams_, opts...)
73836	res, err := c.doRequest("json")
73837	if res != nil && res.StatusCode == http.StatusNotModified {
73838		if res.Body != nil {
73839			res.Body.Close()
73840		}
73841		return nil, &googleapi.Error{
73842			Code:   res.StatusCode,
73843			Header: res.Header,
73844		}
73845	}
73846	if err != nil {
73847		return nil, err
73848	}
73849	defer googleapi.CloseBody(res)
73850	if err := googleapi.CheckResponse(res); err != nil {
73851		return nil, err
73852	}
73853	ret := &Policy{
73854		ServerResponse: googleapi.ServerResponse{
73855			Header:         res.Header,
73856			HTTPStatusCode: res.StatusCode,
73857		},
73858	}
73859	target := &ret
73860	if err := gensupport.DecodeResponse(target, res); err != nil {
73861		return nil, err
73862	}
73863	return ret, nil
73864	// {
73865	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
73866	//   "httpMethod": "GET",
73867	//   "id": "compute.nodeTemplates.getIamPolicy",
73868	//   "parameterOrder": [
73869	//     "project",
73870	//     "region",
73871	//     "resource"
73872	//   ],
73873	//   "parameters": {
73874	//     "project": {
73875	//       "description": "Project ID for this request.",
73876	//       "location": "path",
73877	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73878	//       "required": true,
73879	//       "type": "string"
73880	//     },
73881	//     "region": {
73882	//       "description": "The name of the region for this request.",
73883	//       "location": "path",
73884	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73885	//       "required": true,
73886	//       "type": "string"
73887	//     },
73888	//     "resource": {
73889	//       "description": "Name or id of the resource for this request.",
73890	//       "location": "path",
73891	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73892	//       "required": true,
73893	//       "type": "string"
73894	//     }
73895	//   },
73896	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy",
73897	//   "response": {
73898	//     "$ref": "Policy"
73899	//   },
73900	//   "scopes": [
73901	//     "https://www.googleapis.com/auth/cloud-platform",
73902	//     "https://www.googleapis.com/auth/compute",
73903	//     "https://www.googleapis.com/auth/compute.readonly"
73904	//   ]
73905	// }
73906
73907}
73908
73909// method id "compute.nodeTemplates.insert":
73910
73911type NodeTemplatesInsertCall struct {
73912	s            *Service
73913	project      string
73914	region       string
73915	nodetemplate *NodeTemplate
73916	urlParams_   gensupport.URLParams
73917	ctx_         context.Context
73918	header_      http.Header
73919}
73920
73921// Insert: Creates a NodeTemplate resource in the specified project
73922// using the data included in the request.
73923func (r *NodeTemplatesService) Insert(project string, region string, nodetemplate *NodeTemplate) *NodeTemplatesInsertCall {
73924	c := &NodeTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73925	c.project = project
73926	c.region = region
73927	c.nodetemplate = nodetemplate
73928	return c
73929}
73930
73931// RequestId sets the optional parameter "requestId": An optional
73932// request ID to identify requests. Specify a unique request ID so that
73933// if you must retry your request, the server will know to ignore the
73934// request if it has already been completed.
73935//
73936// For example, consider a situation where you make an initial request
73937// and the request times out. If you make the request again with the
73938// same request ID, the server can check if original operation with the
73939// same request ID was received, and if so, will ignore the second
73940// request. This prevents clients from accidentally creating duplicate
73941// commitments.
73942//
73943// The request ID must be a valid UUID with the exception that zero UUID
73944// is not supported (00000000-0000-0000-0000-000000000000).
73945func (c *NodeTemplatesInsertCall) RequestId(requestId string) *NodeTemplatesInsertCall {
73946	c.urlParams_.Set("requestId", requestId)
73947	return c
73948}
73949
73950// Fields allows partial responses to be retrieved. See
73951// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73952// for more information.
73953func (c *NodeTemplatesInsertCall) Fields(s ...googleapi.Field) *NodeTemplatesInsertCall {
73954	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73955	return c
73956}
73957
73958// Context sets the context to be used in this call's Do method. Any
73959// pending HTTP request will be aborted if the provided context is
73960// canceled.
73961func (c *NodeTemplatesInsertCall) Context(ctx context.Context) *NodeTemplatesInsertCall {
73962	c.ctx_ = ctx
73963	return c
73964}
73965
73966// Header returns an http.Header that can be modified by the caller to
73967// add HTTP headers to the request.
73968func (c *NodeTemplatesInsertCall) Header() http.Header {
73969	if c.header_ == nil {
73970		c.header_ = make(http.Header)
73971	}
73972	return c.header_
73973}
73974
73975func (c *NodeTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
73976	reqHeaders := make(http.Header)
73977	for k, v := range c.header_ {
73978		reqHeaders[k] = v
73979	}
73980	reqHeaders.Set("User-Agent", c.s.userAgent())
73981	var body io.Reader = nil
73982	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodetemplate)
73983	if err != nil {
73984		return nil, err
73985	}
73986	reqHeaders.Set("Content-Type", "application/json")
73987	c.urlParams_.Set("alt", alt)
73988	c.urlParams_.Set("prettyPrint", "false")
73989	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates")
73990	urls += "?" + c.urlParams_.Encode()
73991	req, err := http.NewRequest("POST", urls, body)
73992	if err != nil {
73993		return nil, err
73994	}
73995	req.Header = reqHeaders
73996	googleapi.Expand(req.URL, map[string]string{
73997		"project": c.project,
73998		"region":  c.region,
73999	})
74000	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74001}
74002
74003// Do executes the "compute.nodeTemplates.insert" call.
74004// Exactly one of *Operation or error will be non-nil. Any non-2xx
74005// status code is an error. Response headers are in either
74006// *Operation.ServerResponse.Header or (if a response was returned at
74007// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74008// to check whether the returned error was because
74009// http.StatusNotModified was returned.
74010func (c *NodeTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74011	gensupport.SetOptions(c.urlParams_, opts...)
74012	res, err := c.doRequest("json")
74013	if res != nil && res.StatusCode == http.StatusNotModified {
74014		if res.Body != nil {
74015			res.Body.Close()
74016		}
74017		return nil, &googleapi.Error{
74018			Code:   res.StatusCode,
74019			Header: res.Header,
74020		}
74021	}
74022	if err != nil {
74023		return nil, err
74024	}
74025	defer googleapi.CloseBody(res)
74026	if err := googleapi.CheckResponse(res); err != nil {
74027		return nil, err
74028	}
74029	ret := &Operation{
74030		ServerResponse: googleapi.ServerResponse{
74031			Header:         res.Header,
74032			HTTPStatusCode: res.StatusCode,
74033		},
74034	}
74035	target := &ret
74036	if err := gensupport.DecodeResponse(target, res); err != nil {
74037		return nil, err
74038	}
74039	return ret, nil
74040	// {
74041	//   "description": "Creates a NodeTemplate resource in the specified project using the data included in the request.",
74042	//   "httpMethod": "POST",
74043	//   "id": "compute.nodeTemplates.insert",
74044	//   "parameterOrder": [
74045	//     "project",
74046	//     "region"
74047	//   ],
74048	//   "parameters": {
74049	//     "project": {
74050	//       "description": "Project ID for this request.",
74051	//       "location": "path",
74052	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74053	//       "required": true,
74054	//       "type": "string"
74055	//     },
74056	//     "region": {
74057	//       "description": "The name of the region for this request.",
74058	//       "location": "path",
74059	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
74060	//       "required": true,
74061	//       "type": "string"
74062	//     },
74063	//     "requestId": {
74064	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74065	//       "location": "query",
74066	//       "type": "string"
74067	//     }
74068	//   },
74069	//   "path": "{project}/regions/{region}/nodeTemplates",
74070	//   "request": {
74071	//     "$ref": "NodeTemplate"
74072	//   },
74073	//   "response": {
74074	//     "$ref": "Operation"
74075	//   },
74076	//   "scopes": [
74077	//     "https://www.googleapis.com/auth/cloud-platform",
74078	//     "https://www.googleapis.com/auth/compute"
74079	//   ]
74080	// }
74081
74082}
74083
74084// method id "compute.nodeTemplates.list":
74085
74086type NodeTemplatesListCall struct {
74087	s            *Service
74088	project      string
74089	region       string
74090	urlParams_   gensupport.URLParams
74091	ifNoneMatch_ string
74092	ctx_         context.Context
74093	header_      http.Header
74094}
74095
74096// List: Retrieves a list of node templates available to the specified
74097// project.
74098func (r *NodeTemplatesService) List(project string, region string) *NodeTemplatesListCall {
74099	c := &NodeTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74100	c.project = project
74101	c.region = region
74102	return c
74103}
74104
74105// Filter sets the optional parameter "filter": A filter expression that
74106// filters resources listed in the response. The expression must specify
74107// the field name, a comparison operator, and the value that you want to
74108// use for filtering. The value must be a string, a number, or a
74109// boolean. The comparison operator must be either =, !=, >, or <.
74110//
74111// For example, if you are filtering Compute Engine instances, you can
74112// exclude instances named example-instance by specifying name !=
74113// example-instance.
74114//
74115// You can also filter nested fields. For example, you could specify
74116// scheduling.automaticRestart = false to include instances only if they
74117// are not scheduled for automatic restarts. You can use filtering on
74118// nested fields to filter based on resource labels.
74119//
74120// To filter on multiple expressions, provide each separate expression
74121// within parentheses. For example, (scheduling.automaticRestart = true)
74122// (cpuPlatform = "Intel Skylake"). By default, each expression is an
74123// AND expression. However, you can include AND and OR expressions
74124// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
74125// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
74126// true).
74127func (c *NodeTemplatesListCall) Filter(filter string) *NodeTemplatesListCall {
74128	c.urlParams_.Set("filter", filter)
74129	return c
74130}
74131
74132// MaxResults sets the optional parameter "maxResults": The maximum
74133// number of results per page that should be returned. If the number of
74134// available results is larger than maxResults, Compute Engine returns a
74135// nextPageToken that can be used to get the next page of results in
74136// subsequent list requests. Acceptable values are 0 to 500, inclusive.
74137// (Default: 500)
74138func (c *NodeTemplatesListCall) MaxResults(maxResults int64) *NodeTemplatesListCall {
74139	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
74140	return c
74141}
74142
74143// OrderBy sets the optional parameter "orderBy": Sorts list results by
74144// a certain order. By default, results are returned in alphanumerical
74145// order based on the resource name.
74146//
74147// You can also sort results in descending order based on the creation
74148// timestamp using orderBy="creationTimestamp desc". This sorts results
74149// based on the creationTimestamp field in reverse chronological order
74150// (newest result first). Use this to sort resources like operations so
74151// that the newest operation is returned first.
74152//
74153// Currently, only sorting by name or creationTimestamp desc is
74154// supported.
74155func (c *NodeTemplatesListCall) OrderBy(orderBy string) *NodeTemplatesListCall {
74156	c.urlParams_.Set("orderBy", orderBy)
74157	return c
74158}
74159
74160// PageToken sets the optional parameter "pageToken": Specifies a page
74161// token to use. Set pageToken to the nextPageToken returned by a
74162// previous list request to get the next page of results.
74163func (c *NodeTemplatesListCall) PageToken(pageToken string) *NodeTemplatesListCall {
74164	c.urlParams_.Set("pageToken", pageToken)
74165	return c
74166}
74167
74168// Fields allows partial responses to be retrieved. See
74169// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74170// for more information.
74171func (c *NodeTemplatesListCall) Fields(s ...googleapi.Field) *NodeTemplatesListCall {
74172	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74173	return c
74174}
74175
74176// IfNoneMatch sets the optional parameter which makes the operation
74177// fail if the object's ETag matches the given value. This is useful for
74178// getting updates only after the object has changed since the last
74179// request. Use googleapi.IsNotModified to check whether the response
74180// error from Do is the result of In-None-Match.
74181func (c *NodeTemplatesListCall) IfNoneMatch(entityTag string) *NodeTemplatesListCall {
74182	c.ifNoneMatch_ = entityTag
74183	return c
74184}
74185
74186// Context sets the context to be used in this call's Do method. Any
74187// pending HTTP request will be aborted if the provided context is
74188// canceled.
74189func (c *NodeTemplatesListCall) Context(ctx context.Context) *NodeTemplatesListCall {
74190	c.ctx_ = ctx
74191	return c
74192}
74193
74194// Header returns an http.Header that can be modified by the caller to
74195// add HTTP headers to the request.
74196func (c *NodeTemplatesListCall) Header() http.Header {
74197	if c.header_ == nil {
74198		c.header_ = make(http.Header)
74199	}
74200	return c.header_
74201}
74202
74203func (c *NodeTemplatesListCall) doRequest(alt string) (*http.Response, error) {
74204	reqHeaders := make(http.Header)
74205	for k, v := range c.header_ {
74206		reqHeaders[k] = v
74207	}
74208	reqHeaders.Set("User-Agent", c.s.userAgent())
74209	if c.ifNoneMatch_ != "" {
74210		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74211	}
74212	var body io.Reader = nil
74213	c.urlParams_.Set("alt", alt)
74214	c.urlParams_.Set("prettyPrint", "false")
74215	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates")
74216	urls += "?" + c.urlParams_.Encode()
74217	req, err := http.NewRequest("GET", urls, body)
74218	if err != nil {
74219		return nil, err
74220	}
74221	req.Header = reqHeaders
74222	googleapi.Expand(req.URL, map[string]string{
74223		"project": c.project,
74224		"region":  c.region,
74225	})
74226	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74227}
74228
74229// Do executes the "compute.nodeTemplates.list" call.
74230// Exactly one of *NodeTemplateList or error will be non-nil. Any
74231// non-2xx status code is an error. Response headers are in either
74232// *NodeTemplateList.ServerResponse.Header or (if a response was
74233// returned at all) in error.(*googleapi.Error).Header. Use
74234// googleapi.IsNotModified to check whether the returned error was
74235// because http.StatusNotModified was returned.
74236func (c *NodeTemplatesListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateList, error) {
74237	gensupport.SetOptions(c.urlParams_, opts...)
74238	res, err := c.doRequest("json")
74239	if res != nil && res.StatusCode == http.StatusNotModified {
74240		if res.Body != nil {
74241			res.Body.Close()
74242		}
74243		return nil, &googleapi.Error{
74244			Code:   res.StatusCode,
74245			Header: res.Header,
74246		}
74247	}
74248	if err != nil {
74249		return nil, err
74250	}
74251	defer googleapi.CloseBody(res)
74252	if err := googleapi.CheckResponse(res); err != nil {
74253		return nil, err
74254	}
74255	ret := &NodeTemplateList{
74256		ServerResponse: googleapi.ServerResponse{
74257			Header:         res.Header,
74258			HTTPStatusCode: res.StatusCode,
74259		},
74260	}
74261	target := &ret
74262	if err := gensupport.DecodeResponse(target, res); err != nil {
74263		return nil, err
74264	}
74265	return ret, nil
74266	// {
74267	//   "description": "Retrieves a list of node templates available to the specified project.",
74268	//   "httpMethod": "GET",
74269	//   "id": "compute.nodeTemplates.list",
74270	//   "parameterOrder": [
74271	//     "project",
74272	//     "region"
74273	//   ],
74274	//   "parameters": {
74275	//     "filter": {
74276	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
74277	//       "location": "query",
74278	//       "type": "string"
74279	//     },
74280	//     "maxResults": {
74281	//       "default": "500",
74282	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
74283	//       "format": "uint32",
74284	//       "location": "query",
74285	//       "minimum": "0",
74286	//       "type": "integer"
74287	//     },
74288	//     "orderBy": {
74289	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
74290	//       "location": "query",
74291	//       "type": "string"
74292	//     },
74293	//     "pageToken": {
74294	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
74295	//       "location": "query",
74296	//       "type": "string"
74297	//     },
74298	//     "project": {
74299	//       "description": "Project ID for this request.",
74300	//       "location": "path",
74301	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74302	//       "required": true,
74303	//       "type": "string"
74304	//     },
74305	//     "region": {
74306	//       "description": "The name of the region for this request.",
74307	//       "location": "path",
74308	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
74309	//       "required": true,
74310	//       "type": "string"
74311	//     }
74312	//   },
74313	//   "path": "{project}/regions/{region}/nodeTemplates",
74314	//   "response": {
74315	//     "$ref": "NodeTemplateList"
74316	//   },
74317	//   "scopes": [
74318	//     "https://www.googleapis.com/auth/cloud-platform",
74319	//     "https://www.googleapis.com/auth/compute",
74320	//     "https://www.googleapis.com/auth/compute.readonly"
74321	//   ]
74322	// }
74323
74324}
74325
74326// Pages invokes f for each page of results.
74327// A non-nil error returned from f will halt the iteration.
74328// The provided context supersedes any context provided to the Context method.
74329func (c *NodeTemplatesListCall) Pages(ctx context.Context, f func(*NodeTemplateList) error) error {
74330	c.ctx_ = ctx
74331	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
74332	for {
74333		x, err := c.Do()
74334		if err != nil {
74335			return err
74336		}
74337		if err := f(x); err != nil {
74338			return err
74339		}
74340		if x.NextPageToken == "" {
74341			return nil
74342		}
74343		c.PageToken(x.NextPageToken)
74344	}
74345}
74346
74347// method id "compute.nodeTemplates.setIamPolicy":
74348
74349type NodeTemplatesSetIamPolicyCall struct {
74350	s                      *Service
74351	project                string
74352	region                 string
74353	resource               string
74354	regionsetpolicyrequest *RegionSetPolicyRequest
74355	urlParams_             gensupport.URLParams
74356	ctx_                   context.Context
74357	header_                http.Header
74358}
74359
74360// SetIamPolicy: Sets the access control policy on the specified
74361// resource. Replaces any existing policy.
74362func (r *NodeTemplatesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *NodeTemplatesSetIamPolicyCall {
74363	c := &NodeTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74364	c.project = project
74365	c.region = region
74366	c.resource = resource
74367	c.regionsetpolicyrequest = regionsetpolicyrequest
74368	return c
74369}
74370
74371// Fields allows partial responses to be retrieved. See
74372// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74373// for more information.
74374func (c *NodeTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesSetIamPolicyCall {
74375	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74376	return c
74377}
74378
74379// Context sets the context to be used in this call's Do method. Any
74380// pending HTTP request will be aborted if the provided context is
74381// canceled.
74382func (c *NodeTemplatesSetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesSetIamPolicyCall {
74383	c.ctx_ = ctx
74384	return c
74385}
74386
74387// Header returns an http.Header that can be modified by the caller to
74388// add HTTP headers to the request.
74389func (c *NodeTemplatesSetIamPolicyCall) Header() http.Header {
74390	if c.header_ == nil {
74391		c.header_ = make(http.Header)
74392	}
74393	return c.header_
74394}
74395
74396func (c *NodeTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
74397	reqHeaders := make(http.Header)
74398	for k, v := range c.header_ {
74399		reqHeaders[k] = v
74400	}
74401	reqHeaders.Set("User-Agent", c.s.userAgent())
74402	var body io.Reader = nil
74403	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
74404	if err != nil {
74405		return nil, err
74406	}
74407	reqHeaders.Set("Content-Type", "application/json")
74408	c.urlParams_.Set("alt", alt)
74409	c.urlParams_.Set("prettyPrint", "false")
74410	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy")
74411	urls += "?" + c.urlParams_.Encode()
74412	req, err := http.NewRequest("POST", urls, body)
74413	if err != nil {
74414		return nil, err
74415	}
74416	req.Header = reqHeaders
74417	googleapi.Expand(req.URL, map[string]string{
74418		"project":  c.project,
74419		"region":   c.region,
74420		"resource": c.resource,
74421	})
74422	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74423}
74424
74425// Do executes the "compute.nodeTemplates.setIamPolicy" call.
74426// Exactly one of *Policy or error will be non-nil. Any non-2xx status
74427// code is an error. Response headers are in either
74428// *Policy.ServerResponse.Header or (if a response was returned at all)
74429// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
74430// check whether the returned error was because http.StatusNotModified
74431// was returned.
74432func (c *NodeTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
74433	gensupport.SetOptions(c.urlParams_, opts...)
74434	res, err := c.doRequest("json")
74435	if res != nil && res.StatusCode == http.StatusNotModified {
74436		if res.Body != nil {
74437			res.Body.Close()
74438		}
74439		return nil, &googleapi.Error{
74440			Code:   res.StatusCode,
74441			Header: res.Header,
74442		}
74443	}
74444	if err != nil {
74445		return nil, err
74446	}
74447	defer googleapi.CloseBody(res)
74448	if err := googleapi.CheckResponse(res); err != nil {
74449		return nil, err
74450	}
74451	ret := &Policy{
74452		ServerResponse: googleapi.ServerResponse{
74453			Header:         res.Header,
74454			HTTPStatusCode: res.StatusCode,
74455		},
74456	}
74457	target := &ret
74458	if err := gensupport.DecodeResponse(target, res); err != nil {
74459		return nil, err
74460	}
74461	return ret, nil
74462	// {
74463	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
74464	//   "httpMethod": "POST",
74465	//   "id": "compute.nodeTemplates.setIamPolicy",
74466	//   "parameterOrder": [
74467	//     "project",
74468	//     "region",
74469	//     "resource"
74470	//   ],
74471	//   "parameters": {
74472	//     "project": {
74473	//       "description": "Project ID for this request.",
74474	//       "location": "path",
74475	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74476	//       "required": true,
74477	//       "type": "string"
74478	//     },
74479	//     "region": {
74480	//       "description": "The name of the region for this request.",
74481	//       "location": "path",
74482	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
74483	//       "required": true,
74484	//       "type": "string"
74485	//     },
74486	//     "resource": {
74487	//       "description": "Name or id of the resource for this request.",
74488	//       "location": "path",
74489	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74490	//       "required": true,
74491	//       "type": "string"
74492	//     }
74493	//   },
74494	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy",
74495	//   "request": {
74496	//     "$ref": "RegionSetPolicyRequest"
74497	//   },
74498	//   "response": {
74499	//     "$ref": "Policy"
74500	//   },
74501	//   "scopes": [
74502	//     "https://www.googleapis.com/auth/cloud-platform",
74503	//     "https://www.googleapis.com/auth/compute"
74504	//   ]
74505	// }
74506
74507}
74508
74509// method id "compute.nodeTemplates.testIamPermissions":
74510
74511type NodeTemplatesTestIamPermissionsCall struct {
74512	s                      *Service
74513	project                string
74514	region                 string
74515	resource               string
74516	testpermissionsrequest *TestPermissionsRequest
74517	urlParams_             gensupport.URLParams
74518	ctx_                   context.Context
74519	header_                http.Header
74520}
74521
74522// TestIamPermissions: Returns permissions that a caller has on the
74523// specified resource.
74524func (r *NodeTemplatesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeTemplatesTestIamPermissionsCall {
74525	c := &NodeTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74526	c.project = project
74527	c.region = region
74528	c.resource = resource
74529	c.testpermissionsrequest = testpermissionsrequest
74530	return c
74531}
74532
74533// Fields allows partial responses to be retrieved. See
74534// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74535// for more information.
74536func (c *NodeTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeTemplatesTestIamPermissionsCall {
74537	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74538	return c
74539}
74540
74541// Context sets the context to be used in this call's Do method. Any
74542// pending HTTP request will be aborted if the provided context is
74543// canceled.
74544func (c *NodeTemplatesTestIamPermissionsCall) Context(ctx context.Context) *NodeTemplatesTestIamPermissionsCall {
74545	c.ctx_ = ctx
74546	return c
74547}
74548
74549// Header returns an http.Header that can be modified by the caller to
74550// add HTTP headers to the request.
74551func (c *NodeTemplatesTestIamPermissionsCall) Header() http.Header {
74552	if c.header_ == nil {
74553		c.header_ = make(http.Header)
74554	}
74555	return c.header_
74556}
74557
74558func (c *NodeTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
74559	reqHeaders := make(http.Header)
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.testpermissionsrequest)
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}/regions/{region}/nodeTemplates/{resource}/testIamPermissions")
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		"region":   c.region,
74582		"resource": c.resource,
74583	})
74584	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74585}
74586
74587// Do executes the "compute.nodeTemplates.testIamPermissions" call.
74588// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
74589// non-2xx status code is an error. Response headers are in either
74590// *TestPermissionsResponse.ServerResponse.Header or (if a response was
74591// returned at all) in error.(*googleapi.Error).Header. Use
74592// googleapi.IsNotModified to check whether the returned error was
74593// because http.StatusNotModified was returned.
74594func (c *NodeTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
74595	gensupport.SetOptions(c.urlParams_, opts...)
74596	res, err := c.doRequest("json")
74597	if res != nil && res.StatusCode == http.StatusNotModified {
74598		if res.Body != nil {
74599			res.Body.Close()
74600		}
74601		return nil, &googleapi.Error{
74602			Code:   res.StatusCode,
74603			Header: res.Header,
74604		}
74605	}
74606	if err != nil {
74607		return nil, err
74608	}
74609	defer googleapi.CloseBody(res)
74610	if err := googleapi.CheckResponse(res); err != nil {
74611		return nil, err
74612	}
74613	ret := &TestPermissionsResponse{
74614		ServerResponse: googleapi.ServerResponse{
74615			Header:         res.Header,
74616			HTTPStatusCode: res.StatusCode,
74617		},
74618	}
74619	target := &ret
74620	if err := gensupport.DecodeResponse(target, res); err != nil {
74621		return nil, err
74622	}
74623	return ret, nil
74624	// {
74625	//   "description": "Returns permissions that a caller has on the specified resource.",
74626	//   "httpMethod": "POST",
74627	//   "id": "compute.nodeTemplates.testIamPermissions",
74628	//   "parameterOrder": [
74629	//     "project",
74630	//     "region",
74631	//     "resource"
74632	//   ],
74633	//   "parameters": {
74634	//     "project": {
74635	//       "description": "Project ID for this request.",
74636	//       "location": "path",
74637	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74638	//       "required": true,
74639	//       "type": "string"
74640	//     },
74641	//     "region": {
74642	//       "description": "The name of the region for this request.",
74643	//       "location": "path",
74644	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
74645	//       "required": true,
74646	//       "type": "string"
74647	//     },
74648	//     "resource": {
74649	//       "description": "Name or id of the resource for this request.",
74650	//       "location": "path",
74651	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74652	//       "required": true,
74653	//       "type": "string"
74654	//     }
74655	//   },
74656	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions",
74657	//   "request": {
74658	//     "$ref": "TestPermissionsRequest"
74659	//   },
74660	//   "response": {
74661	//     "$ref": "TestPermissionsResponse"
74662	//   },
74663	//   "scopes": [
74664	//     "https://www.googleapis.com/auth/cloud-platform",
74665	//     "https://www.googleapis.com/auth/compute",
74666	//     "https://www.googleapis.com/auth/compute.readonly"
74667	//   ]
74668	// }
74669
74670}
74671
74672// method id "compute.nodeTypes.aggregatedList":
74673
74674type NodeTypesAggregatedListCall struct {
74675	s            *Service
74676	project      string
74677	urlParams_   gensupport.URLParams
74678	ifNoneMatch_ string
74679	ctx_         context.Context
74680	header_      http.Header
74681}
74682
74683// AggregatedList: Retrieves an aggregated list of node types.
74684func (r *NodeTypesService) AggregatedList(project string) *NodeTypesAggregatedListCall {
74685	c := &NodeTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74686	c.project = project
74687	return c
74688}
74689
74690// Filter sets the optional parameter "filter": A filter expression that
74691// filters resources listed in the response. The expression must specify
74692// the field name, a comparison operator, and the value that you want to
74693// use for filtering. The value must be a string, a number, or a
74694// boolean. The comparison operator must be either =, !=, >, or <.
74695//
74696// For example, if you are filtering Compute Engine instances, you can
74697// exclude instances named example-instance by specifying name !=
74698// example-instance.
74699//
74700// You can also filter nested fields. For example, you could specify
74701// scheduling.automaticRestart = false to include instances only if they
74702// are not scheduled for automatic restarts. You can use filtering on
74703// nested fields to filter based on resource labels.
74704//
74705// To filter on multiple expressions, provide each separate expression
74706// within parentheses. For example, (scheduling.automaticRestart = true)
74707// (cpuPlatform = "Intel Skylake"). By default, each expression is an
74708// AND expression. However, you can include AND and OR expressions
74709// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
74710// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
74711// true).
74712func (c *NodeTypesAggregatedListCall) Filter(filter string) *NodeTypesAggregatedListCall {
74713	c.urlParams_.Set("filter", filter)
74714	return c
74715}
74716
74717// MaxResults sets the optional parameter "maxResults": The maximum
74718// number of results per page that should be returned. If the number of
74719// available results is larger than maxResults, Compute Engine returns a
74720// nextPageToken that can be used to get the next page of results in
74721// subsequent list requests. Acceptable values are 0 to 500, inclusive.
74722// (Default: 500)
74723func (c *NodeTypesAggregatedListCall) MaxResults(maxResults int64) *NodeTypesAggregatedListCall {
74724	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
74725	return c
74726}
74727
74728// OrderBy sets the optional parameter "orderBy": Sorts list results by
74729// a certain order. By default, results are returned in alphanumerical
74730// order based on the resource name.
74731//
74732// You can also sort results in descending order based on the creation
74733// timestamp using orderBy="creationTimestamp desc". This sorts results
74734// based on the creationTimestamp field in reverse chronological order
74735// (newest result first). Use this to sort resources like operations so
74736// that the newest operation is returned first.
74737//
74738// Currently, only sorting by name or creationTimestamp desc is
74739// supported.
74740func (c *NodeTypesAggregatedListCall) OrderBy(orderBy string) *NodeTypesAggregatedListCall {
74741	c.urlParams_.Set("orderBy", orderBy)
74742	return c
74743}
74744
74745// PageToken sets the optional parameter "pageToken": Specifies a page
74746// token to use. Set pageToken to the nextPageToken returned by a
74747// previous list request to get the next page of results.
74748func (c *NodeTypesAggregatedListCall) PageToken(pageToken string) *NodeTypesAggregatedListCall {
74749	c.urlParams_.Set("pageToken", pageToken)
74750	return c
74751}
74752
74753// Fields allows partial responses to be retrieved. See
74754// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74755// for more information.
74756func (c *NodeTypesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTypesAggregatedListCall {
74757	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74758	return c
74759}
74760
74761// IfNoneMatch sets the optional parameter which makes the operation
74762// fail if the object's ETag matches the given value. This is useful for
74763// getting updates only after the object has changed since the last
74764// request. Use googleapi.IsNotModified to check whether the response
74765// error from Do is the result of In-None-Match.
74766func (c *NodeTypesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTypesAggregatedListCall {
74767	c.ifNoneMatch_ = entityTag
74768	return c
74769}
74770
74771// Context sets the context to be used in this call's Do method. Any
74772// pending HTTP request will be aborted if the provided context is
74773// canceled.
74774func (c *NodeTypesAggregatedListCall) Context(ctx context.Context) *NodeTypesAggregatedListCall {
74775	c.ctx_ = ctx
74776	return c
74777}
74778
74779// Header returns an http.Header that can be modified by the caller to
74780// add HTTP headers to the request.
74781func (c *NodeTypesAggregatedListCall) Header() http.Header {
74782	if c.header_ == nil {
74783		c.header_ = make(http.Header)
74784	}
74785	return c.header_
74786}
74787
74788func (c *NodeTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
74789	reqHeaders := make(http.Header)
74790	for k, v := range c.header_ {
74791		reqHeaders[k] = v
74792	}
74793	reqHeaders.Set("User-Agent", c.s.userAgent())
74794	if c.ifNoneMatch_ != "" {
74795		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74796	}
74797	var body io.Reader = nil
74798	c.urlParams_.Set("alt", alt)
74799	c.urlParams_.Set("prettyPrint", "false")
74800	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeTypes")
74801	urls += "?" + c.urlParams_.Encode()
74802	req, err := http.NewRequest("GET", urls, body)
74803	if err != nil {
74804		return nil, err
74805	}
74806	req.Header = reqHeaders
74807	googleapi.Expand(req.URL, map[string]string{
74808		"project": c.project,
74809	})
74810	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74811}
74812
74813// Do executes the "compute.nodeTypes.aggregatedList" call.
74814// Exactly one of *NodeTypeAggregatedList or error will be non-nil. Any
74815// non-2xx status code is an error. Response headers are in either
74816// *NodeTypeAggregatedList.ServerResponse.Header or (if a response was
74817// returned at all) in error.(*googleapi.Error).Header. Use
74818// googleapi.IsNotModified to check whether the returned error was
74819// because http.StatusNotModified was returned.
74820func (c *NodeTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTypeAggregatedList, error) {
74821	gensupport.SetOptions(c.urlParams_, opts...)
74822	res, err := c.doRequest("json")
74823	if res != nil && res.StatusCode == http.StatusNotModified {
74824		if res.Body != nil {
74825			res.Body.Close()
74826		}
74827		return nil, &googleapi.Error{
74828			Code:   res.StatusCode,
74829			Header: res.Header,
74830		}
74831	}
74832	if err != nil {
74833		return nil, err
74834	}
74835	defer googleapi.CloseBody(res)
74836	if err := googleapi.CheckResponse(res); err != nil {
74837		return nil, err
74838	}
74839	ret := &NodeTypeAggregatedList{
74840		ServerResponse: googleapi.ServerResponse{
74841			Header:         res.Header,
74842			HTTPStatusCode: res.StatusCode,
74843		},
74844	}
74845	target := &ret
74846	if err := gensupport.DecodeResponse(target, res); err != nil {
74847		return nil, err
74848	}
74849	return ret, nil
74850	// {
74851	//   "description": "Retrieves an aggregated list of node types.",
74852	//   "httpMethod": "GET",
74853	//   "id": "compute.nodeTypes.aggregatedList",
74854	//   "parameterOrder": [
74855	//     "project"
74856	//   ],
74857	//   "parameters": {
74858	//     "filter": {
74859	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
74860	//       "location": "query",
74861	//       "type": "string"
74862	//     },
74863	//     "maxResults": {
74864	//       "default": "500",
74865	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
74866	//       "format": "uint32",
74867	//       "location": "query",
74868	//       "minimum": "0",
74869	//       "type": "integer"
74870	//     },
74871	//     "orderBy": {
74872	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
74873	//       "location": "query",
74874	//       "type": "string"
74875	//     },
74876	//     "pageToken": {
74877	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
74878	//       "location": "query",
74879	//       "type": "string"
74880	//     },
74881	//     "project": {
74882	//       "description": "Project ID for this request.",
74883	//       "location": "path",
74884	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74885	//       "required": true,
74886	//       "type": "string"
74887	//     }
74888	//   },
74889	//   "path": "{project}/aggregated/nodeTypes",
74890	//   "response": {
74891	//     "$ref": "NodeTypeAggregatedList"
74892	//   },
74893	//   "scopes": [
74894	//     "https://www.googleapis.com/auth/cloud-platform",
74895	//     "https://www.googleapis.com/auth/compute",
74896	//     "https://www.googleapis.com/auth/compute.readonly"
74897	//   ]
74898	// }
74899
74900}
74901
74902// Pages invokes f for each page of results.
74903// A non-nil error returned from f will halt the iteration.
74904// The provided context supersedes any context provided to the Context method.
74905func (c *NodeTypesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTypeAggregatedList) error) error {
74906	c.ctx_ = ctx
74907	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
74908	for {
74909		x, err := c.Do()
74910		if err != nil {
74911			return err
74912		}
74913		if err := f(x); err != nil {
74914			return err
74915		}
74916		if x.NextPageToken == "" {
74917			return nil
74918		}
74919		c.PageToken(x.NextPageToken)
74920	}
74921}
74922
74923// method id "compute.nodeTypes.get":
74924
74925type NodeTypesGetCall struct {
74926	s            *Service
74927	project      string
74928	zone         string
74929	nodeType     string
74930	urlParams_   gensupport.URLParams
74931	ifNoneMatch_ string
74932	ctx_         context.Context
74933	header_      http.Header
74934}
74935
74936// Get: Returns the specified node type. Gets a list of available node
74937// types by making a list() request.
74938func (r *NodeTypesService) Get(project string, zone string, nodeType string) *NodeTypesGetCall {
74939	c := &NodeTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74940	c.project = project
74941	c.zone = zone
74942	c.nodeType = nodeType
74943	return c
74944}
74945
74946// Fields allows partial responses to be retrieved. See
74947// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74948// for more information.
74949func (c *NodeTypesGetCall) Fields(s ...googleapi.Field) *NodeTypesGetCall {
74950	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74951	return c
74952}
74953
74954// IfNoneMatch sets the optional parameter which makes the operation
74955// fail if the object's ETag matches the given value. This is useful for
74956// getting updates only after the object has changed since the last
74957// request. Use googleapi.IsNotModified to check whether the response
74958// error from Do is the result of In-None-Match.
74959func (c *NodeTypesGetCall) IfNoneMatch(entityTag string) *NodeTypesGetCall {
74960	c.ifNoneMatch_ = entityTag
74961	return c
74962}
74963
74964// Context sets the context to be used in this call's Do method. Any
74965// pending HTTP request will be aborted if the provided context is
74966// canceled.
74967func (c *NodeTypesGetCall) Context(ctx context.Context) *NodeTypesGetCall {
74968	c.ctx_ = ctx
74969	return c
74970}
74971
74972// Header returns an http.Header that can be modified by the caller to
74973// add HTTP headers to the request.
74974func (c *NodeTypesGetCall) Header() http.Header {
74975	if c.header_ == nil {
74976		c.header_ = make(http.Header)
74977	}
74978	return c.header_
74979}
74980
74981func (c *NodeTypesGetCall) doRequest(alt string) (*http.Response, error) {
74982	reqHeaders := make(http.Header)
74983	for k, v := range c.header_ {
74984		reqHeaders[k] = v
74985	}
74986	reqHeaders.Set("User-Agent", c.s.userAgent())
74987	if c.ifNoneMatch_ != "" {
74988		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74989	}
74990	var body io.Reader = nil
74991	c.urlParams_.Set("alt", alt)
74992	c.urlParams_.Set("prettyPrint", "false")
74993	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeTypes/{nodeType}")
74994	urls += "?" + c.urlParams_.Encode()
74995	req, err := http.NewRequest("GET", urls, body)
74996	if err != nil {
74997		return nil, err
74998	}
74999	req.Header = reqHeaders
75000	googleapi.Expand(req.URL, map[string]string{
75001		"project":  c.project,
75002		"zone":     c.zone,
75003		"nodeType": c.nodeType,
75004	})
75005	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75006}
75007
75008// Do executes the "compute.nodeTypes.get" call.
75009// Exactly one of *NodeType or error will be non-nil. Any non-2xx status
75010// code is an error. Response headers are in either
75011// *NodeType.ServerResponse.Header or (if a response was returned at
75012// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75013// to check whether the returned error was because
75014// http.StatusNotModified was returned.
75015func (c *NodeTypesGetCall) Do(opts ...googleapi.CallOption) (*NodeType, error) {
75016	gensupport.SetOptions(c.urlParams_, opts...)
75017	res, err := c.doRequest("json")
75018	if res != nil && res.StatusCode == http.StatusNotModified {
75019		if res.Body != nil {
75020			res.Body.Close()
75021		}
75022		return nil, &googleapi.Error{
75023			Code:   res.StatusCode,
75024			Header: res.Header,
75025		}
75026	}
75027	if err != nil {
75028		return nil, err
75029	}
75030	defer googleapi.CloseBody(res)
75031	if err := googleapi.CheckResponse(res); err != nil {
75032		return nil, err
75033	}
75034	ret := &NodeType{
75035		ServerResponse: googleapi.ServerResponse{
75036			Header:         res.Header,
75037			HTTPStatusCode: res.StatusCode,
75038		},
75039	}
75040	target := &ret
75041	if err := gensupport.DecodeResponse(target, res); err != nil {
75042		return nil, err
75043	}
75044	return ret, nil
75045	// {
75046	//   "description": "Returns the specified node type. Gets a list of available node types by making a list() request.",
75047	//   "httpMethod": "GET",
75048	//   "id": "compute.nodeTypes.get",
75049	//   "parameterOrder": [
75050	//     "project",
75051	//     "zone",
75052	//     "nodeType"
75053	//   ],
75054	//   "parameters": {
75055	//     "nodeType": {
75056	//       "description": "Name of the node type to return.",
75057	//       "location": "path",
75058	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75059	//       "required": true,
75060	//       "type": "string"
75061	//     },
75062	//     "project": {
75063	//       "description": "Project ID for this request.",
75064	//       "location": "path",
75065	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75066	//       "required": true,
75067	//       "type": "string"
75068	//     },
75069	//     "zone": {
75070	//       "description": "The name of the zone for this request.",
75071	//       "location": "path",
75072	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
75073	//       "required": true,
75074	//       "type": "string"
75075	//     }
75076	//   },
75077	//   "path": "{project}/zones/{zone}/nodeTypes/{nodeType}",
75078	//   "response": {
75079	//     "$ref": "NodeType"
75080	//   },
75081	//   "scopes": [
75082	//     "https://www.googleapis.com/auth/cloud-platform",
75083	//     "https://www.googleapis.com/auth/compute",
75084	//     "https://www.googleapis.com/auth/compute.readonly"
75085	//   ]
75086	// }
75087
75088}
75089
75090// method id "compute.nodeTypes.list":
75091
75092type NodeTypesListCall struct {
75093	s            *Service
75094	project      string
75095	zone         string
75096	urlParams_   gensupport.URLParams
75097	ifNoneMatch_ string
75098	ctx_         context.Context
75099	header_      http.Header
75100}
75101
75102// List: Retrieves a list of node types available to the specified
75103// project.
75104func (r *NodeTypesService) List(project string, zone string) *NodeTypesListCall {
75105	c := &NodeTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75106	c.project = project
75107	c.zone = zone
75108	return c
75109}
75110
75111// Filter sets the optional parameter "filter": A filter expression that
75112// filters resources listed in the response. The expression must specify
75113// the field name, a comparison operator, and the value that you want to
75114// use for filtering. The value must be a string, a number, or a
75115// boolean. The comparison operator must be either =, !=, >, or <.
75116//
75117// For example, if you are filtering Compute Engine instances, you can
75118// exclude instances named example-instance by specifying name !=
75119// example-instance.
75120//
75121// You can also filter nested fields. For example, you could specify
75122// scheduling.automaticRestart = false to include instances only if they
75123// are not scheduled for automatic restarts. You can use filtering on
75124// nested fields to filter based on resource labels.
75125//
75126// To filter on multiple expressions, provide each separate expression
75127// within parentheses. For example, (scheduling.automaticRestart = true)
75128// (cpuPlatform = "Intel Skylake"). By default, each expression is an
75129// AND expression. However, you can include AND and OR expressions
75130// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
75131// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
75132// true).
75133func (c *NodeTypesListCall) Filter(filter string) *NodeTypesListCall {
75134	c.urlParams_.Set("filter", filter)
75135	return c
75136}
75137
75138// MaxResults sets the optional parameter "maxResults": The maximum
75139// number of results per page that should be returned. If the number of
75140// available results is larger than maxResults, Compute Engine returns a
75141// nextPageToken that can be used to get the next page of results in
75142// subsequent list requests. Acceptable values are 0 to 500, inclusive.
75143// (Default: 500)
75144func (c *NodeTypesListCall) MaxResults(maxResults int64) *NodeTypesListCall {
75145	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
75146	return c
75147}
75148
75149// OrderBy sets the optional parameter "orderBy": Sorts list results by
75150// a certain order. By default, results are returned in alphanumerical
75151// order based on the resource name.
75152//
75153// You can also sort results in descending order based on the creation
75154// timestamp using orderBy="creationTimestamp desc". This sorts results
75155// based on the creationTimestamp field in reverse chronological order
75156// (newest result first). Use this to sort resources like operations so
75157// that the newest operation is returned first.
75158//
75159// Currently, only sorting by name or creationTimestamp desc is
75160// supported.
75161func (c *NodeTypesListCall) OrderBy(orderBy string) *NodeTypesListCall {
75162	c.urlParams_.Set("orderBy", orderBy)
75163	return c
75164}
75165
75166// PageToken sets the optional parameter "pageToken": Specifies a page
75167// token to use. Set pageToken to the nextPageToken returned by a
75168// previous list request to get the next page of results.
75169func (c *NodeTypesListCall) PageToken(pageToken string) *NodeTypesListCall {
75170	c.urlParams_.Set("pageToken", pageToken)
75171	return c
75172}
75173
75174// Fields allows partial responses to be retrieved. See
75175// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75176// for more information.
75177func (c *NodeTypesListCall) Fields(s ...googleapi.Field) *NodeTypesListCall {
75178	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75179	return c
75180}
75181
75182// IfNoneMatch sets the optional parameter which makes the operation
75183// fail if the object's ETag matches the given value. This is useful for
75184// getting updates only after the object has changed since the last
75185// request. Use googleapi.IsNotModified to check whether the response
75186// error from Do is the result of In-None-Match.
75187func (c *NodeTypesListCall) IfNoneMatch(entityTag string) *NodeTypesListCall {
75188	c.ifNoneMatch_ = entityTag
75189	return c
75190}
75191
75192// Context sets the context to be used in this call's Do method. Any
75193// pending HTTP request will be aborted if the provided context is
75194// canceled.
75195func (c *NodeTypesListCall) Context(ctx context.Context) *NodeTypesListCall {
75196	c.ctx_ = ctx
75197	return c
75198}
75199
75200// Header returns an http.Header that can be modified by the caller to
75201// add HTTP headers to the request.
75202func (c *NodeTypesListCall) Header() http.Header {
75203	if c.header_ == nil {
75204		c.header_ = make(http.Header)
75205	}
75206	return c.header_
75207}
75208
75209func (c *NodeTypesListCall) doRequest(alt string) (*http.Response, error) {
75210	reqHeaders := make(http.Header)
75211	for k, v := range c.header_ {
75212		reqHeaders[k] = v
75213	}
75214	reqHeaders.Set("User-Agent", c.s.userAgent())
75215	if c.ifNoneMatch_ != "" {
75216		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
75217	}
75218	var body io.Reader = nil
75219	c.urlParams_.Set("alt", alt)
75220	c.urlParams_.Set("prettyPrint", "false")
75221	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeTypes")
75222	urls += "?" + c.urlParams_.Encode()
75223	req, err := http.NewRequest("GET", urls, body)
75224	if err != nil {
75225		return nil, err
75226	}
75227	req.Header = reqHeaders
75228	googleapi.Expand(req.URL, map[string]string{
75229		"project": c.project,
75230		"zone":    c.zone,
75231	})
75232	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75233}
75234
75235// Do executes the "compute.nodeTypes.list" call.
75236// Exactly one of *NodeTypeList or error will be non-nil. Any non-2xx
75237// status code is an error. Response headers are in either
75238// *NodeTypeList.ServerResponse.Header or (if a response was returned at
75239// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75240// to check whether the returned error was because
75241// http.StatusNotModified was returned.
75242func (c *NodeTypesListCall) Do(opts ...googleapi.CallOption) (*NodeTypeList, error) {
75243	gensupport.SetOptions(c.urlParams_, opts...)
75244	res, err := c.doRequest("json")
75245	if res != nil && res.StatusCode == http.StatusNotModified {
75246		if res.Body != nil {
75247			res.Body.Close()
75248		}
75249		return nil, &googleapi.Error{
75250			Code:   res.StatusCode,
75251			Header: res.Header,
75252		}
75253	}
75254	if err != nil {
75255		return nil, err
75256	}
75257	defer googleapi.CloseBody(res)
75258	if err := googleapi.CheckResponse(res); err != nil {
75259		return nil, err
75260	}
75261	ret := &NodeTypeList{
75262		ServerResponse: googleapi.ServerResponse{
75263			Header:         res.Header,
75264			HTTPStatusCode: res.StatusCode,
75265		},
75266	}
75267	target := &ret
75268	if err := gensupport.DecodeResponse(target, res); err != nil {
75269		return nil, err
75270	}
75271	return ret, nil
75272	// {
75273	//   "description": "Retrieves a list of node types available to the specified project.",
75274	//   "httpMethod": "GET",
75275	//   "id": "compute.nodeTypes.list",
75276	//   "parameterOrder": [
75277	//     "project",
75278	//     "zone"
75279	//   ],
75280	//   "parameters": {
75281	//     "filter": {
75282	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
75283	//       "location": "query",
75284	//       "type": "string"
75285	//     },
75286	//     "maxResults": {
75287	//       "default": "500",
75288	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
75289	//       "format": "uint32",
75290	//       "location": "query",
75291	//       "minimum": "0",
75292	//       "type": "integer"
75293	//     },
75294	//     "orderBy": {
75295	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
75296	//       "location": "query",
75297	//       "type": "string"
75298	//     },
75299	//     "pageToken": {
75300	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
75301	//       "location": "query",
75302	//       "type": "string"
75303	//     },
75304	//     "project": {
75305	//       "description": "Project ID for this request.",
75306	//       "location": "path",
75307	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75308	//       "required": true,
75309	//       "type": "string"
75310	//     },
75311	//     "zone": {
75312	//       "description": "The name of the zone for this request.",
75313	//       "location": "path",
75314	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
75315	//       "required": true,
75316	//       "type": "string"
75317	//     }
75318	//   },
75319	//   "path": "{project}/zones/{zone}/nodeTypes",
75320	//   "response": {
75321	//     "$ref": "NodeTypeList"
75322	//   },
75323	//   "scopes": [
75324	//     "https://www.googleapis.com/auth/cloud-platform",
75325	//     "https://www.googleapis.com/auth/compute",
75326	//     "https://www.googleapis.com/auth/compute.readonly"
75327	//   ]
75328	// }
75329
75330}
75331
75332// Pages invokes f for each page of results.
75333// A non-nil error returned from f will halt the iteration.
75334// The provided context supersedes any context provided to the Context method.
75335func (c *NodeTypesListCall) Pages(ctx context.Context, f func(*NodeTypeList) error) error {
75336	c.ctx_ = ctx
75337	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
75338	for {
75339		x, err := c.Do()
75340		if err != nil {
75341			return err
75342		}
75343		if err := f(x); err != nil {
75344			return err
75345		}
75346		if x.NextPageToken == "" {
75347			return nil
75348		}
75349		c.PageToken(x.NextPageToken)
75350	}
75351}
75352
75353// method id "compute.projects.disableXpnHost":
75354
75355type ProjectsDisableXpnHostCall struct {
75356	s          *Service
75357	project    string
75358	urlParams_ gensupport.URLParams
75359	ctx_       context.Context
75360	header_    http.Header
75361}
75362
75363// DisableXpnHost: Disable this project as a shared VPC host project.
75364func (r *ProjectsService) DisableXpnHost(project string) *ProjectsDisableXpnHostCall {
75365	c := &ProjectsDisableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75366	c.project = project
75367	return c
75368}
75369
75370// RequestId sets the optional parameter "requestId": An optional
75371// request ID to identify requests. Specify a unique request ID so that
75372// if you must retry your request, the server will know to ignore the
75373// request if it has already been completed.
75374//
75375// For example, consider a situation where you make an initial request
75376// and the request times out. If you make the request again with the
75377// same request ID, the server can check if original operation with the
75378// same request ID was received, and if so, will ignore the second
75379// request. This prevents clients from accidentally creating duplicate
75380// commitments.
75381//
75382// The request ID must be a valid UUID with the exception that zero UUID
75383// is not supported (00000000-0000-0000-0000-000000000000).
75384func (c *ProjectsDisableXpnHostCall) RequestId(requestId string) *ProjectsDisableXpnHostCall {
75385	c.urlParams_.Set("requestId", requestId)
75386	return c
75387}
75388
75389// Fields allows partial responses to be retrieved. See
75390// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75391// for more information.
75392func (c *ProjectsDisableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnHostCall {
75393	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75394	return c
75395}
75396
75397// Context sets the context to be used in this call's Do method. Any
75398// pending HTTP request will be aborted if the provided context is
75399// canceled.
75400func (c *ProjectsDisableXpnHostCall) Context(ctx context.Context) *ProjectsDisableXpnHostCall {
75401	c.ctx_ = ctx
75402	return c
75403}
75404
75405// Header returns an http.Header that can be modified by the caller to
75406// add HTTP headers to the request.
75407func (c *ProjectsDisableXpnHostCall) Header() http.Header {
75408	if c.header_ == nil {
75409		c.header_ = make(http.Header)
75410	}
75411	return c.header_
75412}
75413
75414func (c *ProjectsDisableXpnHostCall) doRequest(alt string) (*http.Response, error) {
75415	reqHeaders := make(http.Header)
75416	for k, v := range c.header_ {
75417		reqHeaders[k] = v
75418	}
75419	reqHeaders.Set("User-Agent", c.s.userAgent())
75420	var body io.Reader = nil
75421	c.urlParams_.Set("alt", alt)
75422	c.urlParams_.Set("prettyPrint", "false")
75423	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/disableXpnHost")
75424	urls += "?" + c.urlParams_.Encode()
75425	req, err := http.NewRequest("POST", urls, body)
75426	if err != nil {
75427		return nil, err
75428	}
75429	req.Header = reqHeaders
75430	googleapi.Expand(req.URL, map[string]string{
75431		"project": c.project,
75432	})
75433	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75434}
75435
75436// Do executes the "compute.projects.disableXpnHost" call.
75437// Exactly one of *Operation or error will be non-nil. Any non-2xx
75438// status code is an error. Response headers are in either
75439// *Operation.ServerResponse.Header or (if a response was returned at
75440// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75441// to check whether the returned error was because
75442// http.StatusNotModified was returned.
75443func (c *ProjectsDisableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75444	gensupport.SetOptions(c.urlParams_, opts...)
75445	res, err := c.doRequest("json")
75446	if res != nil && res.StatusCode == http.StatusNotModified {
75447		if res.Body != nil {
75448			res.Body.Close()
75449		}
75450		return nil, &googleapi.Error{
75451			Code:   res.StatusCode,
75452			Header: res.Header,
75453		}
75454	}
75455	if err != nil {
75456		return nil, err
75457	}
75458	defer googleapi.CloseBody(res)
75459	if err := googleapi.CheckResponse(res); err != nil {
75460		return nil, err
75461	}
75462	ret := &Operation{
75463		ServerResponse: googleapi.ServerResponse{
75464			Header:         res.Header,
75465			HTTPStatusCode: res.StatusCode,
75466		},
75467	}
75468	target := &ret
75469	if err := gensupport.DecodeResponse(target, res); err != nil {
75470		return nil, err
75471	}
75472	return ret, nil
75473	// {
75474	//   "description": "Disable this project as a shared VPC host project.",
75475	//   "httpMethod": "POST",
75476	//   "id": "compute.projects.disableXpnHost",
75477	//   "parameterOrder": [
75478	//     "project"
75479	//   ],
75480	//   "parameters": {
75481	//     "project": {
75482	//       "description": "Project ID for this request.",
75483	//       "location": "path",
75484	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75485	//       "required": true,
75486	//       "type": "string"
75487	//     },
75488	//     "requestId": {
75489	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75490	//       "location": "query",
75491	//       "type": "string"
75492	//     }
75493	//   },
75494	//   "path": "{project}/disableXpnHost",
75495	//   "response": {
75496	//     "$ref": "Operation"
75497	//   },
75498	//   "scopes": [
75499	//     "https://www.googleapis.com/auth/cloud-platform",
75500	//     "https://www.googleapis.com/auth/compute"
75501	//   ]
75502	// }
75503
75504}
75505
75506// method id "compute.projects.disableXpnResource":
75507
75508type ProjectsDisableXpnResourceCall struct {
75509	s                                 *Service
75510	project                           string
75511	projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest
75512	urlParams_                        gensupport.URLParams
75513	ctx_                              context.Context
75514	header_                           http.Header
75515}
75516
75517// DisableXpnResource: Disable a serivce resource (a.k.a service
75518// project) associated with this host project.
75519func (r *ProjectsService) DisableXpnResource(project string, projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest) *ProjectsDisableXpnResourceCall {
75520	c := &ProjectsDisableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75521	c.project = project
75522	c.projectsdisablexpnresourcerequest = projectsdisablexpnresourcerequest
75523	return c
75524}
75525
75526// RequestId sets the optional parameter "requestId": An optional
75527// request ID to identify requests. Specify a unique request ID so that
75528// if you must retry your request, the server will know to ignore the
75529// request if it has already been completed.
75530//
75531// For example, consider a situation where you make an initial request
75532// and the request times out. If you make the request again with the
75533// same request ID, the server can check if original operation with the
75534// same request ID was received, and if so, will ignore the second
75535// request. This prevents clients from accidentally creating duplicate
75536// commitments.
75537//
75538// The request ID must be a valid UUID with the exception that zero UUID
75539// is not supported (00000000-0000-0000-0000-000000000000).
75540func (c *ProjectsDisableXpnResourceCall) RequestId(requestId string) *ProjectsDisableXpnResourceCall {
75541	c.urlParams_.Set("requestId", requestId)
75542	return c
75543}
75544
75545// Fields allows partial responses to be retrieved. See
75546// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75547// for more information.
75548func (c *ProjectsDisableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnResourceCall {
75549	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75550	return c
75551}
75552
75553// Context sets the context to be used in this call's Do method. Any
75554// pending HTTP request will be aborted if the provided context is
75555// canceled.
75556func (c *ProjectsDisableXpnResourceCall) Context(ctx context.Context) *ProjectsDisableXpnResourceCall {
75557	c.ctx_ = ctx
75558	return c
75559}
75560
75561// Header returns an http.Header that can be modified by the caller to
75562// add HTTP headers to the request.
75563func (c *ProjectsDisableXpnResourceCall) Header() http.Header {
75564	if c.header_ == nil {
75565		c.header_ = make(http.Header)
75566	}
75567	return c.header_
75568}
75569
75570func (c *ProjectsDisableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
75571	reqHeaders := make(http.Header)
75572	for k, v := range c.header_ {
75573		reqHeaders[k] = v
75574	}
75575	reqHeaders.Set("User-Agent", c.s.userAgent())
75576	var body io.Reader = nil
75577	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsdisablexpnresourcerequest)
75578	if err != nil {
75579		return nil, err
75580	}
75581	reqHeaders.Set("Content-Type", "application/json")
75582	c.urlParams_.Set("alt", alt)
75583	c.urlParams_.Set("prettyPrint", "false")
75584	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/disableXpnResource")
75585	urls += "?" + c.urlParams_.Encode()
75586	req, err := http.NewRequest("POST", urls, body)
75587	if err != nil {
75588		return nil, err
75589	}
75590	req.Header = reqHeaders
75591	googleapi.Expand(req.URL, map[string]string{
75592		"project": c.project,
75593	})
75594	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75595}
75596
75597// Do executes the "compute.projects.disableXpnResource" call.
75598// Exactly one of *Operation or error will be non-nil. Any non-2xx
75599// status code is an error. Response headers are in either
75600// *Operation.ServerResponse.Header or (if a response was returned at
75601// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75602// to check whether the returned error was because
75603// http.StatusNotModified was returned.
75604func (c *ProjectsDisableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75605	gensupport.SetOptions(c.urlParams_, opts...)
75606	res, err := c.doRequest("json")
75607	if res != nil && res.StatusCode == http.StatusNotModified {
75608		if res.Body != nil {
75609			res.Body.Close()
75610		}
75611		return nil, &googleapi.Error{
75612			Code:   res.StatusCode,
75613			Header: res.Header,
75614		}
75615	}
75616	if err != nil {
75617		return nil, err
75618	}
75619	defer googleapi.CloseBody(res)
75620	if err := googleapi.CheckResponse(res); err != nil {
75621		return nil, err
75622	}
75623	ret := &Operation{
75624		ServerResponse: googleapi.ServerResponse{
75625			Header:         res.Header,
75626			HTTPStatusCode: res.StatusCode,
75627		},
75628	}
75629	target := &ret
75630	if err := gensupport.DecodeResponse(target, res); err != nil {
75631		return nil, err
75632	}
75633	return ret, nil
75634	// {
75635	//   "description": "Disable a serivce resource (a.k.a service project) associated with this host project.",
75636	//   "httpMethod": "POST",
75637	//   "id": "compute.projects.disableXpnResource",
75638	//   "parameterOrder": [
75639	//     "project"
75640	//   ],
75641	//   "parameters": {
75642	//     "project": {
75643	//       "description": "Project ID for this request.",
75644	//       "location": "path",
75645	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75646	//       "required": true,
75647	//       "type": "string"
75648	//     },
75649	//     "requestId": {
75650	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75651	//       "location": "query",
75652	//       "type": "string"
75653	//     }
75654	//   },
75655	//   "path": "{project}/disableXpnResource",
75656	//   "request": {
75657	//     "$ref": "ProjectsDisableXpnResourceRequest"
75658	//   },
75659	//   "response": {
75660	//     "$ref": "Operation"
75661	//   },
75662	//   "scopes": [
75663	//     "https://www.googleapis.com/auth/cloud-platform",
75664	//     "https://www.googleapis.com/auth/compute"
75665	//   ]
75666	// }
75667
75668}
75669
75670// method id "compute.projects.enableXpnHost":
75671
75672type ProjectsEnableXpnHostCall struct {
75673	s          *Service
75674	project    string
75675	urlParams_ gensupport.URLParams
75676	ctx_       context.Context
75677	header_    http.Header
75678}
75679
75680// EnableXpnHost: Enable this project as a shared VPC host project.
75681func (r *ProjectsService) EnableXpnHost(project string) *ProjectsEnableXpnHostCall {
75682	c := &ProjectsEnableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75683	c.project = project
75684	return c
75685}
75686
75687// RequestId sets the optional parameter "requestId": An optional
75688// request ID to identify requests. Specify a unique request ID so that
75689// if you must retry your request, the server will know to ignore the
75690// request if it has already been completed.
75691//
75692// For example, consider a situation where you make an initial request
75693// and the request times out. If you make the request again with the
75694// same request ID, the server can check if original operation with the
75695// same request ID was received, and if so, will ignore the second
75696// request. This prevents clients from accidentally creating duplicate
75697// commitments.
75698//
75699// The request ID must be a valid UUID with the exception that zero UUID
75700// is not supported (00000000-0000-0000-0000-000000000000).
75701func (c *ProjectsEnableXpnHostCall) RequestId(requestId string) *ProjectsEnableXpnHostCall {
75702	c.urlParams_.Set("requestId", requestId)
75703	return c
75704}
75705
75706// Fields allows partial responses to be retrieved. See
75707// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75708// for more information.
75709func (c *ProjectsEnableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnHostCall {
75710	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75711	return c
75712}
75713
75714// Context sets the context to be used in this call's Do method. Any
75715// pending HTTP request will be aborted if the provided context is
75716// canceled.
75717func (c *ProjectsEnableXpnHostCall) Context(ctx context.Context) *ProjectsEnableXpnHostCall {
75718	c.ctx_ = ctx
75719	return c
75720}
75721
75722// Header returns an http.Header that can be modified by the caller to
75723// add HTTP headers to the request.
75724func (c *ProjectsEnableXpnHostCall) Header() http.Header {
75725	if c.header_ == nil {
75726		c.header_ = make(http.Header)
75727	}
75728	return c.header_
75729}
75730
75731func (c *ProjectsEnableXpnHostCall) doRequest(alt string) (*http.Response, error) {
75732	reqHeaders := make(http.Header)
75733	for k, v := range c.header_ {
75734		reqHeaders[k] = v
75735	}
75736	reqHeaders.Set("User-Agent", c.s.userAgent())
75737	var body io.Reader = nil
75738	c.urlParams_.Set("alt", alt)
75739	c.urlParams_.Set("prettyPrint", "false")
75740	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/enableXpnHost")
75741	urls += "?" + c.urlParams_.Encode()
75742	req, err := http.NewRequest("POST", urls, body)
75743	if err != nil {
75744		return nil, err
75745	}
75746	req.Header = reqHeaders
75747	googleapi.Expand(req.URL, map[string]string{
75748		"project": c.project,
75749	})
75750	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75751}
75752
75753// Do executes the "compute.projects.enableXpnHost" call.
75754// Exactly one of *Operation or error will be non-nil. Any non-2xx
75755// status code is an error. Response headers are in either
75756// *Operation.ServerResponse.Header or (if a response was returned at
75757// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75758// to check whether the returned error was because
75759// http.StatusNotModified was returned.
75760func (c *ProjectsEnableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75761	gensupport.SetOptions(c.urlParams_, opts...)
75762	res, err := c.doRequest("json")
75763	if res != nil && res.StatusCode == http.StatusNotModified {
75764		if res.Body != nil {
75765			res.Body.Close()
75766		}
75767		return nil, &googleapi.Error{
75768			Code:   res.StatusCode,
75769			Header: res.Header,
75770		}
75771	}
75772	if err != nil {
75773		return nil, err
75774	}
75775	defer googleapi.CloseBody(res)
75776	if err := googleapi.CheckResponse(res); err != nil {
75777		return nil, err
75778	}
75779	ret := &Operation{
75780		ServerResponse: googleapi.ServerResponse{
75781			Header:         res.Header,
75782			HTTPStatusCode: res.StatusCode,
75783		},
75784	}
75785	target := &ret
75786	if err := gensupport.DecodeResponse(target, res); err != nil {
75787		return nil, err
75788	}
75789	return ret, nil
75790	// {
75791	//   "description": "Enable this project as a shared VPC host project.",
75792	//   "httpMethod": "POST",
75793	//   "id": "compute.projects.enableXpnHost",
75794	//   "parameterOrder": [
75795	//     "project"
75796	//   ],
75797	//   "parameters": {
75798	//     "project": {
75799	//       "description": "Project ID for this request.",
75800	//       "location": "path",
75801	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75802	//       "required": true,
75803	//       "type": "string"
75804	//     },
75805	//     "requestId": {
75806	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75807	//       "location": "query",
75808	//       "type": "string"
75809	//     }
75810	//   },
75811	//   "path": "{project}/enableXpnHost",
75812	//   "response": {
75813	//     "$ref": "Operation"
75814	//   },
75815	//   "scopes": [
75816	//     "https://www.googleapis.com/auth/cloud-platform",
75817	//     "https://www.googleapis.com/auth/compute"
75818	//   ]
75819	// }
75820
75821}
75822
75823// method id "compute.projects.enableXpnResource":
75824
75825type ProjectsEnableXpnResourceCall struct {
75826	s                                *Service
75827	project                          string
75828	projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest
75829	urlParams_                       gensupport.URLParams
75830	ctx_                             context.Context
75831	header_                          http.Header
75832}
75833
75834// EnableXpnResource: Enable service resource (a.k.a service project)
75835// for a host project, so that subnets in the host project can be used
75836// by instances in the service project.
75837func (r *ProjectsService) EnableXpnResource(project string, projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest) *ProjectsEnableXpnResourceCall {
75838	c := &ProjectsEnableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75839	c.project = project
75840	c.projectsenablexpnresourcerequest = projectsenablexpnresourcerequest
75841	return c
75842}
75843
75844// RequestId sets the optional parameter "requestId": An optional
75845// request ID to identify requests. Specify a unique request ID so that
75846// if you must retry your request, the server will know to ignore the
75847// request if it has already been completed.
75848//
75849// For example, consider a situation where you make an initial request
75850// and the request times out. If you make the request again with the
75851// same request ID, the server can check if original operation with the
75852// same request ID was received, and if so, will ignore the second
75853// request. This prevents clients from accidentally creating duplicate
75854// commitments.
75855//
75856// The request ID must be a valid UUID with the exception that zero UUID
75857// is not supported (00000000-0000-0000-0000-000000000000).
75858func (c *ProjectsEnableXpnResourceCall) RequestId(requestId string) *ProjectsEnableXpnResourceCall {
75859	c.urlParams_.Set("requestId", requestId)
75860	return c
75861}
75862
75863// Fields allows partial responses to be retrieved. See
75864// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75865// for more information.
75866func (c *ProjectsEnableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnResourceCall {
75867	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75868	return c
75869}
75870
75871// Context sets the context to be used in this call's Do method. Any
75872// pending HTTP request will be aborted if the provided context is
75873// canceled.
75874func (c *ProjectsEnableXpnResourceCall) Context(ctx context.Context) *ProjectsEnableXpnResourceCall {
75875	c.ctx_ = ctx
75876	return c
75877}
75878
75879// Header returns an http.Header that can be modified by the caller to
75880// add HTTP headers to the request.
75881func (c *ProjectsEnableXpnResourceCall) Header() http.Header {
75882	if c.header_ == nil {
75883		c.header_ = make(http.Header)
75884	}
75885	return c.header_
75886}
75887
75888func (c *ProjectsEnableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
75889	reqHeaders := make(http.Header)
75890	for k, v := range c.header_ {
75891		reqHeaders[k] = v
75892	}
75893	reqHeaders.Set("User-Agent", c.s.userAgent())
75894	var body io.Reader = nil
75895	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsenablexpnresourcerequest)
75896	if err != nil {
75897		return nil, err
75898	}
75899	reqHeaders.Set("Content-Type", "application/json")
75900	c.urlParams_.Set("alt", alt)
75901	c.urlParams_.Set("prettyPrint", "false")
75902	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/enableXpnResource")
75903	urls += "?" + c.urlParams_.Encode()
75904	req, err := http.NewRequest("POST", urls, body)
75905	if err != nil {
75906		return nil, err
75907	}
75908	req.Header = reqHeaders
75909	googleapi.Expand(req.URL, map[string]string{
75910		"project": c.project,
75911	})
75912	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75913}
75914
75915// Do executes the "compute.projects.enableXpnResource" call.
75916// Exactly one of *Operation or error will be non-nil. Any non-2xx
75917// status code is an error. Response headers are in either
75918// *Operation.ServerResponse.Header or (if a response was returned at
75919// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75920// to check whether the returned error was because
75921// http.StatusNotModified was returned.
75922func (c *ProjectsEnableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75923	gensupport.SetOptions(c.urlParams_, opts...)
75924	res, err := c.doRequest("json")
75925	if res != nil && res.StatusCode == http.StatusNotModified {
75926		if res.Body != nil {
75927			res.Body.Close()
75928		}
75929		return nil, &googleapi.Error{
75930			Code:   res.StatusCode,
75931			Header: res.Header,
75932		}
75933	}
75934	if err != nil {
75935		return nil, err
75936	}
75937	defer googleapi.CloseBody(res)
75938	if err := googleapi.CheckResponse(res); err != nil {
75939		return nil, err
75940	}
75941	ret := &Operation{
75942		ServerResponse: googleapi.ServerResponse{
75943			Header:         res.Header,
75944			HTTPStatusCode: res.StatusCode,
75945		},
75946	}
75947	target := &ret
75948	if err := gensupport.DecodeResponse(target, res); err != nil {
75949		return nil, err
75950	}
75951	return ret, nil
75952	// {
75953	//   "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.",
75954	//   "httpMethod": "POST",
75955	//   "id": "compute.projects.enableXpnResource",
75956	//   "parameterOrder": [
75957	//     "project"
75958	//   ],
75959	//   "parameters": {
75960	//     "project": {
75961	//       "description": "Project ID for this request.",
75962	//       "location": "path",
75963	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75964	//       "required": true,
75965	//       "type": "string"
75966	//     },
75967	//     "requestId": {
75968	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75969	//       "location": "query",
75970	//       "type": "string"
75971	//     }
75972	//   },
75973	//   "path": "{project}/enableXpnResource",
75974	//   "request": {
75975	//     "$ref": "ProjectsEnableXpnResourceRequest"
75976	//   },
75977	//   "response": {
75978	//     "$ref": "Operation"
75979	//   },
75980	//   "scopes": [
75981	//     "https://www.googleapis.com/auth/cloud-platform",
75982	//     "https://www.googleapis.com/auth/compute"
75983	//   ]
75984	// }
75985
75986}
75987
75988// method id "compute.projects.get":
75989
75990type ProjectsGetCall struct {
75991	s            *Service
75992	project      string
75993	urlParams_   gensupport.URLParams
75994	ifNoneMatch_ string
75995	ctx_         context.Context
75996	header_      http.Header
75997}
75998
75999// Get: Returns the specified Project resource.
76000// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/get
76001func (r *ProjectsService) Get(project string) *ProjectsGetCall {
76002	c := &ProjectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76003	c.project = project
76004	return c
76005}
76006
76007// Fields allows partial responses to be retrieved. See
76008// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76009// for more information.
76010func (c *ProjectsGetCall) Fields(s ...googleapi.Field) *ProjectsGetCall {
76011	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76012	return c
76013}
76014
76015// IfNoneMatch sets the optional parameter which makes the operation
76016// fail if the object's ETag matches the given value. This is useful for
76017// getting updates only after the object has changed since the last
76018// request. Use googleapi.IsNotModified to check whether the response
76019// error from Do is the result of In-None-Match.
76020func (c *ProjectsGetCall) IfNoneMatch(entityTag string) *ProjectsGetCall {
76021	c.ifNoneMatch_ = entityTag
76022	return c
76023}
76024
76025// Context sets the context to be used in this call's Do method. Any
76026// pending HTTP request will be aborted if the provided context is
76027// canceled.
76028func (c *ProjectsGetCall) Context(ctx context.Context) *ProjectsGetCall {
76029	c.ctx_ = ctx
76030	return c
76031}
76032
76033// Header returns an http.Header that can be modified by the caller to
76034// add HTTP headers to the request.
76035func (c *ProjectsGetCall) Header() http.Header {
76036	if c.header_ == nil {
76037		c.header_ = make(http.Header)
76038	}
76039	return c.header_
76040}
76041
76042func (c *ProjectsGetCall) doRequest(alt string) (*http.Response, error) {
76043	reqHeaders := make(http.Header)
76044	for k, v := range c.header_ {
76045		reqHeaders[k] = v
76046	}
76047	reqHeaders.Set("User-Agent", c.s.userAgent())
76048	if c.ifNoneMatch_ != "" {
76049		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76050	}
76051	var body io.Reader = nil
76052	c.urlParams_.Set("alt", alt)
76053	c.urlParams_.Set("prettyPrint", "false")
76054	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}")
76055	urls += "?" + c.urlParams_.Encode()
76056	req, err := http.NewRequest("GET", urls, body)
76057	if err != nil {
76058		return nil, err
76059	}
76060	req.Header = reqHeaders
76061	googleapi.Expand(req.URL, map[string]string{
76062		"project": c.project,
76063	})
76064	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76065}
76066
76067// Do executes the "compute.projects.get" call.
76068// Exactly one of *Project or error will be non-nil. Any non-2xx status
76069// code is an error. Response headers are in either
76070// *Project.ServerResponse.Header or (if a response was returned at all)
76071// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
76072// check whether the returned error was because http.StatusNotModified
76073// was returned.
76074func (c *ProjectsGetCall) Do(opts ...googleapi.CallOption) (*Project, error) {
76075	gensupport.SetOptions(c.urlParams_, opts...)
76076	res, err := c.doRequest("json")
76077	if res != nil && res.StatusCode == http.StatusNotModified {
76078		if res.Body != nil {
76079			res.Body.Close()
76080		}
76081		return nil, &googleapi.Error{
76082			Code:   res.StatusCode,
76083			Header: res.Header,
76084		}
76085	}
76086	if err != nil {
76087		return nil, err
76088	}
76089	defer googleapi.CloseBody(res)
76090	if err := googleapi.CheckResponse(res); err != nil {
76091		return nil, err
76092	}
76093	ret := &Project{
76094		ServerResponse: googleapi.ServerResponse{
76095			Header:         res.Header,
76096			HTTPStatusCode: res.StatusCode,
76097		},
76098	}
76099	target := &ret
76100	if err := gensupport.DecodeResponse(target, res); err != nil {
76101		return nil, err
76102	}
76103	return ret, nil
76104	// {
76105	//   "description": "Returns the specified Project resource.",
76106	//   "httpMethod": "GET",
76107	//   "id": "compute.projects.get",
76108	//   "parameterOrder": [
76109	//     "project"
76110	//   ],
76111	//   "parameters": {
76112	//     "project": {
76113	//       "description": "Project ID for this request.",
76114	//       "location": "path",
76115	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76116	//       "required": true,
76117	//       "type": "string"
76118	//     }
76119	//   },
76120	//   "path": "{project}",
76121	//   "response": {
76122	//     "$ref": "Project"
76123	//   },
76124	//   "scopes": [
76125	//     "https://www.googleapis.com/auth/cloud-platform",
76126	//     "https://www.googleapis.com/auth/compute",
76127	//     "https://www.googleapis.com/auth/compute.readonly"
76128	//   ]
76129	// }
76130
76131}
76132
76133// method id "compute.projects.getXpnHost":
76134
76135type ProjectsGetXpnHostCall struct {
76136	s            *Service
76137	project      string
76138	urlParams_   gensupport.URLParams
76139	ifNoneMatch_ string
76140	ctx_         context.Context
76141	header_      http.Header
76142}
76143
76144// GetXpnHost: Gets the shared VPC host project that this project links
76145// to. May be empty if no link exists.
76146func (r *ProjectsService) GetXpnHost(project string) *ProjectsGetXpnHostCall {
76147	c := &ProjectsGetXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76148	c.project = project
76149	return c
76150}
76151
76152// Fields allows partial responses to be retrieved. See
76153// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76154// for more information.
76155func (c *ProjectsGetXpnHostCall) Fields(s ...googleapi.Field) *ProjectsGetXpnHostCall {
76156	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76157	return c
76158}
76159
76160// IfNoneMatch sets the optional parameter which makes the operation
76161// fail if the object's ETag matches the given value. This is useful for
76162// getting updates only after the object has changed since the last
76163// request. Use googleapi.IsNotModified to check whether the response
76164// error from Do is the result of In-None-Match.
76165func (c *ProjectsGetXpnHostCall) IfNoneMatch(entityTag string) *ProjectsGetXpnHostCall {
76166	c.ifNoneMatch_ = entityTag
76167	return c
76168}
76169
76170// Context sets the context to be used in this call's Do method. Any
76171// pending HTTP request will be aborted if the provided context is
76172// canceled.
76173func (c *ProjectsGetXpnHostCall) Context(ctx context.Context) *ProjectsGetXpnHostCall {
76174	c.ctx_ = ctx
76175	return c
76176}
76177
76178// Header returns an http.Header that can be modified by the caller to
76179// add HTTP headers to the request.
76180func (c *ProjectsGetXpnHostCall) Header() http.Header {
76181	if c.header_ == nil {
76182		c.header_ = make(http.Header)
76183	}
76184	return c.header_
76185}
76186
76187func (c *ProjectsGetXpnHostCall) doRequest(alt string) (*http.Response, error) {
76188	reqHeaders := make(http.Header)
76189	for k, v := range c.header_ {
76190		reqHeaders[k] = v
76191	}
76192	reqHeaders.Set("User-Agent", c.s.userAgent())
76193	if c.ifNoneMatch_ != "" {
76194		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76195	}
76196	var body io.Reader = nil
76197	c.urlParams_.Set("alt", alt)
76198	c.urlParams_.Set("prettyPrint", "false")
76199	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/getXpnHost")
76200	urls += "?" + c.urlParams_.Encode()
76201	req, err := http.NewRequest("GET", urls, body)
76202	if err != nil {
76203		return nil, err
76204	}
76205	req.Header = reqHeaders
76206	googleapi.Expand(req.URL, map[string]string{
76207		"project": c.project,
76208	})
76209	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76210}
76211
76212// Do executes the "compute.projects.getXpnHost" call.
76213// Exactly one of *Project or error will be non-nil. Any non-2xx status
76214// code is an error. Response headers are in either
76215// *Project.ServerResponse.Header or (if a response was returned at all)
76216// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
76217// check whether the returned error was because http.StatusNotModified
76218// was returned.
76219func (c *ProjectsGetXpnHostCall) Do(opts ...googleapi.CallOption) (*Project, error) {
76220	gensupport.SetOptions(c.urlParams_, opts...)
76221	res, err := c.doRequest("json")
76222	if res != nil && res.StatusCode == http.StatusNotModified {
76223		if res.Body != nil {
76224			res.Body.Close()
76225		}
76226		return nil, &googleapi.Error{
76227			Code:   res.StatusCode,
76228			Header: res.Header,
76229		}
76230	}
76231	if err != nil {
76232		return nil, err
76233	}
76234	defer googleapi.CloseBody(res)
76235	if err := googleapi.CheckResponse(res); err != nil {
76236		return nil, err
76237	}
76238	ret := &Project{
76239		ServerResponse: googleapi.ServerResponse{
76240			Header:         res.Header,
76241			HTTPStatusCode: res.StatusCode,
76242		},
76243	}
76244	target := &ret
76245	if err := gensupport.DecodeResponse(target, res); err != nil {
76246		return nil, err
76247	}
76248	return ret, nil
76249	// {
76250	//   "description": "Gets the shared VPC host project that this project links to. May be empty if no link exists.",
76251	//   "httpMethod": "GET",
76252	//   "id": "compute.projects.getXpnHost",
76253	//   "parameterOrder": [
76254	//     "project"
76255	//   ],
76256	//   "parameters": {
76257	//     "project": {
76258	//       "description": "Project ID for this request.",
76259	//       "location": "path",
76260	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76261	//       "required": true,
76262	//       "type": "string"
76263	//     }
76264	//   },
76265	//   "path": "{project}/getXpnHost",
76266	//   "response": {
76267	//     "$ref": "Project"
76268	//   },
76269	//   "scopes": [
76270	//     "https://www.googleapis.com/auth/cloud-platform",
76271	//     "https://www.googleapis.com/auth/compute"
76272	//   ]
76273	// }
76274
76275}
76276
76277// method id "compute.projects.getXpnResources":
76278
76279type ProjectsGetXpnResourcesCall struct {
76280	s            *Service
76281	project      string
76282	urlParams_   gensupport.URLParams
76283	ifNoneMatch_ string
76284	ctx_         context.Context
76285	header_      http.Header
76286}
76287
76288// GetXpnResources: Gets service resources (a.k.a service project)
76289// associated with this host project.
76290func (r *ProjectsService) GetXpnResources(project string) *ProjectsGetXpnResourcesCall {
76291	c := &ProjectsGetXpnResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76292	c.project = project
76293	return c
76294}
76295
76296// Filter sets the optional parameter "filter": A filter expression that
76297// filters resources listed in the response. The expression must specify
76298// the field name, a comparison operator, and the value that you want to
76299// use for filtering. The value must be a string, a number, or a
76300// boolean. The comparison operator must be either =, !=, >, or <.
76301//
76302// For example, if you are filtering Compute Engine instances, you can
76303// exclude instances named example-instance by specifying name !=
76304// example-instance.
76305//
76306// You can also filter nested fields. For example, you could specify
76307// scheduling.automaticRestart = false to include instances only if they
76308// are not scheduled for automatic restarts. You can use filtering on
76309// nested fields to filter based on resource labels.
76310//
76311// To filter on multiple expressions, provide each separate expression
76312// within parentheses. For example, (scheduling.automaticRestart = true)
76313// (cpuPlatform = "Intel Skylake"). By default, each expression is an
76314// AND expression. However, you can include AND and OR expressions
76315// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
76316// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
76317// true).
76318func (c *ProjectsGetXpnResourcesCall) Filter(filter string) *ProjectsGetXpnResourcesCall {
76319	c.urlParams_.Set("filter", filter)
76320	return c
76321}
76322
76323// MaxResults sets the optional parameter "maxResults": The maximum
76324// number of results per page that should be returned. If the number of
76325// available results is larger than maxResults, Compute Engine returns a
76326// nextPageToken that can be used to get the next page of results in
76327// subsequent list requests. Acceptable values are 0 to 500, inclusive.
76328// (Default: 500)
76329func (c *ProjectsGetXpnResourcesCall) MaxResults(maxResults int64) *ProjectsGetXpnResourcesCall {
76330	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
76331	return c
76332}
76333
76334// OrderBy sets the optional parameter "order_by": Sorts list results by
76335// a certain order. By default, results are returned in alphanumerical
76336// order based on the resource name.
76337//
76338// You can also sort results in descending order based on the creation
76339// timestamp using orderBy="creationTimestamp desc". This sorts results
76340// based on the creationTimestamp field in reverse chronological order
76341// (newest result first). Use this to sort resources like operations so
76342// that the newest operation is returned first.
76343//
76344// Currently, only sorting by name or creationTimestamp desc is
76345// supported.
76346func (c *ProjectsGetXpnResourcesCall) OrderBy(orderBy string) *ProjectsGetXpnResourcesCall {
76347	c.urlParams_.Set("order_by", orderBy)
76348	return c
76349}
76350
76351// PageToken sets the optional parameter "pageToken": Specifies a page
76352// token to use. Set pageToken to the nextPageToken returned by a
76353// previous list request to get the next page of results.
76354func (c *ProjectsGetXpnResourcesCall) PageToken(pageToken string) *ProjectsGetXpnResourcesCall {
76355	c.urlParams_.Set("pageToken", pageToken)
76356	return c
76357}
76358
76359// Fields allows partial responses to be retrieved. See
76360// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76361// for more information.
76362func (c *ProjectsGetXpnResourcesCall) Fields(s ...googleapi.Field) *ProjectsGetXpnResourcesCall {
76363	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76364	return c
76365}
76366
76367// IfNoneMatch sets the optional parameter which makes the operation
76368// fail if the object's ETag matches the given value. This is useful for
76369// getting updates only after the object has changed since the last
76370// request. Use googleapi.IsNotModified to check whether the response
76371// error from Do is the result of In-None-Match.
76372func (c *ProjectsGetXpnResourcesCall) IfNoneMatch(entityTag string) *ProjectsGetXpnResourcesCall {
76373	c.ifNoneMatch_ = entityTag
76374	return c
76375}
76376
76377// Context sets the context to be used in this call's Do method. Any
76378// pending HTTP request will be aborted if the provided context is
76379// canceled.
76380func (c *ProjectsGetXpnResourcesCall) Context(ctx context.Context) *ProjectsGetXpnResourcesCall {
76381	c.ctx_ = ctx
76382	return c
76383}
76384
76385// Header returns an http.Header that can be modified by the caller to
76386// add HTTP headers to the request.
76387func (c *ProjectsGetXpnResourcesCall) Header() http.Header {
76388	if c.header_ == nil {
76389		c.header_ = make(http.Header)
76390	}
76391	return c.header_
76392}
76393
76394func (c *ProjectsGetXpnResourcesCall) doRequest(alt string) (*http.Response, error) {
76395	reqHeaders := make(http.Header)
76396	for k, v := range c.header_ {
76397		reqHeaders[k] = v
76398	}
76399	reqHeaders.Set("User-Agent", c.s.userAgent())
76400	if c.ifNoneMatch_ != "" {
76401		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76402	}
76403	var body io.Reader = nil
76404	c.urlParams_.Set("alt", alt)
76405	c.urlParams_.Set("prettyPrint", "false")
76406	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/getXpnResources")
76407	urls += "?" + c.urlParams_.Encode()
76408	req, err := http.NewRequest("GET", urls, body)
76409	if err != nil {
76410		return nil, err
76411	}
76412	req.Header = reqHeaders
76413	googleapi.Expand(req.URL, map[string]string{
76414		"project": c.project,
76415	})
76416	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76417}
76418
76419// Do executes the "compute.projects.getXpnResources" call.
76420// Exactly one of *ProjectsGetXpnResources or error will be non-nil. Any
76421// non-2xx status code is an error. Response headers are in either
76422// *ProjectsGetXpnResources.ServerResponse.Header or (if a response was
76423// returned at all) in error.(*googleapi.Error).Header. Use
76424// googleapi.IsNotModified to check whether the returned error was
76425// because http.StatusNotModified was returned.
76426func (c *ProjectsGetXpnResourcesCall) Do(opts ...googleapi.CallOption) (*ProjectsGetXpnResources, error) {
76427	gensupport.SetOptions(c.urlParams_, opts...)
76428	res, err := c.doRequest("json")
76429	if res != nil && res.StatusCode == http.StatusNotModified {
76430		if res.Body != nil {
76431			res.Body.Close()
76432		}
76433		return nil, &googleapi.Error{
76434			Code:   res.StatusCode,
76435			Header: res.Header,
76436		}
76437	}
76438	if err != nil {
76439		return nil, err
76440	}
76441	defer googleapi.CloseBody(res)
76442	if err := googleapi.CheckResponse(res); err != nil {
76443		return nil, err
76444	}
76445	ret := &ProjectsGetXpnResources{
76446		ServerResponse: googleapi.ServerResponse{
76447			Header:         res.Header,
76448			HTTPStatusCode: res.StatusCode,
76449		},
76450	}
76451	target := &ret
76452	if err := gensupport.DecodeResponse(target, res); err != nil {
76453		return nil, err
76454	}
76455	return ret, nil
76456	// {
76457	//   "description": "Gets service resources (a.k.a service project) associated with this host project.",
76458	//   "httpMethod": "GET",
76459	//   "id": "compute.projects.getXpnResources",
76460	//   "parameterOrder": [
76461	//     "project"
76462	//   ],
76463	//   "parameters": {
76464	//     "filter": {
76465	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
76466	//       "location": "query",
76467	//       "type": "string"
76468	//     },
76469	//     "maxResults": {
76470	//       "default": "500",
76471	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
76472	//       "format": "uint32",
76473	//       "location": "query",
76474	//       "minimum": "0",
76475	//       "type": "integer"
76476	//     },
76477	//     "order_by": {
76478	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
76479	//       "location": "query",
76480	//       "type": "string"
76481	//     },
76482	//     "pageToken": {
76483	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
76484	//       "location": "query",
76485	//       "type": "string"
76486	//     },
76487	//     "project": {
76488	//       "description": "Project ID for this request.",
76489	//       "location": "path",
76490	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76491	//       "required": true,
76492	//       "type": "string"
76493	//     }
76494	//   },
76495	//   "path": "{project}/getXpnResources",
76496	//   "response": {
76497	//     "$ref": "ProjectsGetXpnResources"
76498	//   },
76499	//   "scopes": [
76500	//     "https://www.googleapis.com/auth/cloud-platform",
76501	//     "https://www.googleapis.com/auth/compute"
76502	//   ]
76503	// }
76504
76505}
76506
76507// Pages invokes f for each page of results.
76508// A non-nil error returned from f will halt the iteration.
76509// The provided context supersedes any context provided to the Context method.
76510func (c *ProjectsGetXpnResourcesCall) Pages(ctx context.Context, f func(*ProjectsGetXpnResources) error) error {
76511	c.ctx_ = ctx
76512	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
76513	for {
76514		x, err := c.Do()
76515		if err != nil {
76516			return err
76517		}
76518		if err := f(x); err != nil {
76519			return err
76520		}
76521		if x.NextPageToken == "" {
76522			return nil
76523		}
76524		c.PageToken(x.NextPageToken)
76525	}
76526}
76527
76528// method id "compute.projects.listXpnHosts":
76529
76530type ProjectsListXpnHostsCall struct {
76531	s                           *Service
76532	project                     string
76533	projectslistxpnhostsrequest *ProjectsListXpnHostsRequest
76534	urlParams_                  gensupport.URLParams
76535	ctx_                        context.Context
76536	header_                     http.Header
76537}
76538
76539// ListXpnHosts: Lists all shared VPC host projects visible to the user
76540// in an organization.
76541func (r *ProjectsService) ListXpnHosts(project string, projectslistxpnhostsrequest *ProjectsListXpnHostsRequest) *ProjectsListXpnHostsCall {
76542	c := &ProjectsListXpnHostsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76543	c.project = project
76544	c.projectslistxpnhostsrequest = projectslistxpnhostsrequest
76545	return c
76546}
76547
76548// Filter sets the optional parameter "filter": A filter expression that
76549// filters resources listed in the response. The expression must specify
76550// the field name, a comparison operator, and the value that you want to
76551// use for filtering. The value must be a string, a number, or a
76552// boolean. The comparison operator must be either =, !=, >, or <.
76553//
76554// For example, if you are filtering Compute Engine instances, you can
76555// exclude instances named example-instance by specifying name !=
76556// example-instance.
76557//
76558// You can also filter nested fields. For example, you could specify
76559// scheduling.automaticRestart = false to include instances only if they
76560// are not scheduled for automatic restarts. You can use filtering on
76561// nested fields to filter based on resource labels.
76562//
76563// To filter on multiple expressions, provide each separate expression
76564// within parentheses. For example, (scheduling.automaticRestart = true)
76565// (cpuPlatform = "Intel Skylake"). By default, each expression is an
76566// AND expression. However, you can include AND and OR expressions
76567// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
76568// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
76569// true).
76570func (c *ProjectsListXpnHostsCall) Filter(filter string) *ProjectsListXpnHostsCall {
76571	c.urlParams_.Set("filter", filter)
76572	return c
76573}
76574
76575// MaxResults sets the optional parameter "maxResults": The maximum
76576// number of results per page that should be returned. If the number of
76577// available results is larger than maxResults, Compute Engine returns a
76578// nextPageToken that can be used to get the next page of results in
76579// subsequent list requests. Acceptable values are 0 to 500, inclusive.
76580// (Default: 500)
76581func (c *ProjectsListXpnHostsCall) MaxResults(maxResults int64) *ProjectsListXpnHostsCall {
76582	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
76583	return c
76584}
76585
76586// OrderBy sets the optional parameter "order_by": Sorts list results by
76587// a certain order. By default, results are returned in alphanumerical
76588// order based on the resource name.
76589//
76590// You can also sort results in descending order based on the creation
76591// timestamp using orderBy="creationTimestamp desc". This sorts results
76592// based on the creationTimestamp field in reverse chronological order
76593// (newest result first). Use this to sort resources like operations so
76594// that the newest operation is returned first.
76595//
76596// Currently, only sorting by name or creationTimestamp desc is
76597// supported.
76598func (c *ProjectsListXpnHostsCall) OrderBy(orderBy string) *ProjectsListXpnHostsCall {
76599	c.urlParams_.Set("order_by", orderBy)
76600	return c
76601}
76602
76603// PageToken sets the optional parameter "pageToken": Specifies a page
76604// token to use. Set pageToken to the nextPageToken returned by a
76605// previous list request to get the next page of results.
76606func (c *ProjectsListXpnHostsCall) PageToken(pageToken string) *ProjectsListXpnHostsCall {
76607	c.urlParams_.Set("pageToken", pageToken)
76608	return c
76609}
76610
76611// Fields allows partial responses to be retrieved. See
76612// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76613// for more information.
76614func (c *ProjectsListXpnHostsCall) Fields(s ...googleapi.Field) *ProjectsListXpnHostsCall {
76615	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76616	return c
76617}
76618
76619// Context sets the context to be used in this call's Do method. Any
76620// pending HTTP request will be aborted if the provided context is
76621// canceled.
76622func (c *ProjectsListXpnHostsCall) Context(ctx context.Context) *ProjectsListXpnHostsCall {
76623	c.ctx_ = ctx
76624	return c
76625}
76626
76627// Header returns an http.Header that can be modified by the caller to
76628// add HTTP headers to the request.
76629func (c *ProjectsListXpnHostsCall) Header() http.Header {
76630	if c.header_ == nil {
76631		c.header_ = make(http.Header)
76632	}
76633	return c.header_
76634}
76635
76636func (c *ProjectsListXpnHostsCall) doRequest(alt string) (*http.Response, error) {
76637	reqHeaders := make(http.Header)
76638	for k, v := range c.header_ {
76639		reqHeaders[k] = v
76640	}
76641	reqHeaders.Set("User-Agent", c.s.userAgent())
76642	var body io.Reader = nil
76643	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectslistxpnhostsrequest)
76644	if err != nil {
76645		return nil, err
76646	}
76647	reqHeaders.Set("Content-Type", "application/json")
76648	c.urlParams_.Set("alt", alt)
76649	c.urlParams_.Set("prettyPrint", "false")
76650	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/listXpnHosts")
76651	urls += "?" + c.urlParams_.Encode()
76652	req, err := http.NewRequest("POST", urls, body)
76653	if err != nil {
76654		return nil, err
76655	}
76656	req.Header = reqHeaders
76657	googleapi.Expand(req.URL, map[string]string{
76658		"project": c.project,
76659	})
76660	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76661}
76662
76663// Do executes the "compute.projects.listXpnHosts" call.
76664// Exactly one of *XpnHostList or error will be non-nil. Any non-2xx
76665// status code is an error. Response headers are in either
76666// *XpnHostList.ServerResponse.Header or (if a response was returned at
76667// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76668// to check whether the returned error was because
76669// http.StatusNotModified was returned.
76670func (c *ProjectsListXpnHostsCall) Do(opts ...googleapi.CallOption) (*XpnHostList, error) {
76671	gensupport.SetOptions(c.urlParams_, opts...)
76672	res, err := c.doRequest("json")
76673	if res != nil && res.StatusCode == http.StatusNotModified {
76674		if res.Body != nil {
76675			res.Body.Close()
76676		}
76677		return nil, &googleapi.Error{
76678			Code:   res.StatusCode,
76679			Header: res.Header,
76680		}
76681	}
76682	if err != nil {
76683		return nil, err
76684	}
76685	defer googleapi.CloseBody(res)
76686	if err := googleapi.CheckResponse(res); err != nil {
76687		return nil, err
76688	}
76689	ret := &XpnHostList{
76690		ServerResponse: googleapi.ServerResponse{
76691			Header:         res.Header,
76692			HTTPStatusCode: res.StatusCode,
76693		},
76694	}
76695	target := &ret
76696	if err := gensupport.DecodeResponse(target, res); err != nil {
76697		return nil, err
76698	}
76699	return ret, nil
76700	// {
76701	//   "description": "Lists all shared VPC host projects visible to the user in an organization.",
76702	//   "httpMethod": "POST",
76703	//   "id": "compute.projects.listXpnHosts",
76704	//   "parameterOrder": [
76705	//     "project"
76706	//   ],
76707	//   "parameters": {
76708	//     "filter": {
76709	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
76710	//       "location": "query",
76711	//       "type": "string"
76712	//     },
76713	//     "maxResults": {
76714	//       "default": "500",
76715	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
76716	//       "format": "uint32",
76717	//       "location": "query",
76718	//       "minimum": "0",
76719	//       "type": "integer"
76720	//     },
76721	//     "order_by": {
76722	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
76723	//       "location": "query",
76724	//       "type": "string"
76725	//     },
76726	//     "pageToken": {
76727	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
76728	//       "location": "query",
76729	//       "type": "string"
76730	//     },
76731	//     "project": {
76732	//       "description": "Project ID for this request.",
76733	//       "location": "path",
76734	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76735	//       "required": true,
76736	//       "type": "string"
76737	//     }
76738	//   },
76739	//   "path": "{project}/listXpnHosts",
76740	//   "request": {
76741	//     "$ref": "ProjectsListXpnHostsRequest"
76742	//   },
76743	//   "response": {
76744	//     "$ref": "XpnHostList"
76745	//   },
76746	//   "scopes": [
76747	//     "https://www.googleapis.com/auth/cloud-platform",
76748	//     "https://www.googleapis.com/auth/compute"
76749	//   ]
76750	// }
76751
76752}
76753
76754// Pages invokes f for each page of results.
76755// A non-nil error returned from f will halt the iteration.
76756// The provided context supersedes any context provided to the Context method.
76757func (c *ProjectsListXpnHostsCall) Pages(ctx context.Context, f func(*XpnHostList) error) error {
76758	c.ctx_ = ctx
76759	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
76760	for {
76761		x, err := c.Do()
76762		if err != nil {
76763			return err
76764		}
76765		if err := f(x); err != nil {
76766			return err
76767		}
76768		if x.NextPageToken == "" {
76769			return nil
76770		}
76771		c.PageToken(x.NextPageToken)
76772	}
76773}
76774
76775// method id "compute.projects.moveDisk":
76776
76777type ProjectsMoveDiskCall struct {
76778	s               *Service
76779	project         string
76780	diskmoverequest *DiskMoveRequest
76781	urlParams_      gensupport.URLParams
76782	ctx_            context.Context
76783	header_         http.Header
76784}
76785
76786// MoveDisk: Moves a persistent disk from one zone to another.
76787func (r *ProjectsService) MoveDisk(project string, diskmoverequest *DiskMoveRequest) *ProjectsMoveDiskCall {
76788	c := &ProjectsMoveDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76789	c.project = project
76790	c.diskmoverequest = diskmoverequest
76791	return c
76792}
76793
76794// RequestId sets the optional parameter "requestId": An optional
76795// request ID to identify requests. Specify a unique request ID so that
76796// if you must retry your request, the server will know to ignore the
76797// request if it has already been completed.
76798//
76799// For example, consider a situation where you make an initial request
76800// and the request times out. If you make the request again with the
76801// same request ID, the server can check if original operation with the
76802// same request ID was received, and if so, will ignore the second
76803// request. This prevents clients from accidentally creating duplicate
76804// commitments.
76805//
76806// The request ID must be a valid UUID with the exception that zero UUID
76807// is not supported (00000000-0000-0000-0000-000000000000).
76808func (c *ProjectsMoveDiskCall) RequestId(requestId string) *ProjectsMoveDiskCall {
76809	c.urlParams_.Set("requestId", requestId)
76810	return c
76811}
76812
76813// Fields allows partial responses to be retrieved. See
76814// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76815// for more information.
76816func (c *ProjectsMoveDiskCall) Fields(s ...googleapi.Field) *ProjectsMoveDiskCall {
76817	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76818	return c
76819}
76820
76821// Context sets the context to be used in this call's Do method. Any
76822// pending HTTP request will be aborted if the provided context is
76823// canceled.
76824func (c *ProjectsMoveDiskCall) Context(ctx context.Context) *ProjectsMoveDiskCall {
76825	c.ctx_ = ctx
76826	return c
76827}
76828
76829// Header returns an http.Header that can be modified by the caller to
76830// add HTTP headers to the request.
76831func (c *ProjectsMoveDiskCall) Header() http.Header {
76832	if c.header_ == nil {
76833		c.header_ = make(http.Header)
76834	}
76835	return c.header_
76836}
76837
76838func (c *ProjectsMoveDiskCall) doRequest(alt string) (*http.Response, error) {
76839	reqHeaders := make(http.Header)
76840	for k, v := range c.header_ {
76841		reqHeaders[k] = v
76842	}
76843	reqHeaders.Set("User-Agent", c.s.userAgent())
76844	var body io.Reader = nil
76845	body, err := googleapi.WithoutDataWrapper.JSONReader(c.diskmoverequest)
76846	if err != nil {
76847		return nil, err
76848	}
76849	reqHeaders.Set("Content-Type", "application/json")
76850	c.urlParams_.Set("alt", alt)
76851	c.urlParams_.Set("prettyPrint", "false")
76852	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/moveDisk")
76853	urls += "?" + c.urlParams_.Encode()
76854	req, err := http.NewRequest("POST", urls, body)
76855	if err != nil {
76856		return nil, err
76857	}
76858	req.Header = reqHeaders
76859	googleapi.Expand(req.URL, map[string]string{
76860		"project": c.project,
76861	})
76862	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76863}
76864
76865// Do executes the "compute.projects.moveDisk" call.
76866// Exactly one of *Operation or error will be non-nil. Any non-2xx
76867// status code is an error. Response headers are in either
76868// *Operation.ServerResponse.Header or (if a response was returned at
76869// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76870// to check whether the returned error was because
76871// http.StatusNotModified was returned.
76872func (c *ProjectsMoveDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76873	gensupport.SetOptions(c.urlParams_, opts...)
76874	res, err := c.doRequest("json")
76875	if res != nil && res.StatusCode == http.StatusNotModified {
76876		if res.Body != nil {
76877			res.Body.Close()
76878		}
76879		return nil, &googleapi.Error{
76880			Code:   res.StatusCode,
76881			Header: res.Header,
76882		}
76883	}
76884	if err != nil {
76885		return nil, err
76886	}
76887	defer googleapi.CloseBody(res)
76888	if err := googleapi.CheckResponse(res); err != nil {
76889		return nil, err
76890	}
76891	ret := &Operation{
76892		ServerResponse: googleapi.ServerResponse{
76893			Header:         res.Header,
76894			HTTPStatusCode: res.StatusCode,
76895		},
76896	}
76897	target := &ret
76898	if err := gensupport.DecodeResponse(target, res); err != nil {
76899		return nil, err
76900	}
76901	return ret, nil
76902	// {
76903	//   "description": "Moves a persistent disk from one zone to another.",
76904	//   "httpMethod": "POST",
76905	//   "id": "compute.projects.moveDisk",
76906	//   "parameterOrder": [
76907	//     "project"
76908	//   ],
76909	//   "parameters": {
76910	//     "project": {
76911	//       "description": "Project ID for this request.",
76912	//       "location": "path",
76913	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76914	//       "required": true,
76915	//       "type": "string"
76916	//     },
76917	//     "requestId": {
76918	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76919	//       "location": "query",
76920	//       "type": "string"
76921	//     }
76922	//   },
76923	//   "path": "{project}/moveDisk",
76924	//   "request": {
76925	//     "$ref": "DiskMoveRequest"
76926	//   },
76927	//   "response": {
76928	//     "$ref": "Operation"
76929	//   },
76930	//   "scopes": [
76931	//     "https://www.googleapis.com/auth/cloud-platform",
76932	//     "https://www.googleapis.com/auth/compute"
76933	//   ]
76934	// }
76935
76936}
76937
76938// method id "compute.projects.moveInstance":
76939
76940type ProjectsMoveInstanceCall struct {
76941	s                   *Service
76942	project             string
76943	instancemoverequest *InstanceMoveRequest
76944	urlParams_          gensupport.URLParams
76945	ctx_                context.Context
76946	header_             http.Header
76947}
76948
76949// MoveInstance: Moves an instance and its attached persistent disks
76950// from one zone to another.
76951func (r *ProjectsService) MoveInstance(project string, instancemoverequest *InstanceMoveRequest) *ProjectsMoveInstanceCall {
76952	c := &ProjectsMoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76953	c.project = project
76954	c.instancemoverequest = instancemoverequest
76955	return c
76956}
76957
76958// RequestId sets the optional parameter "requestId": An optional
76959// request ID to identify requests. Specify a unique request ID so that
76960// if you must retry your request, the server will know to ignore the
76961// request if it has already been completed.
76962//
76963// For example, consider a situation where you make an initial request
76964// and the request times out. If you make the request again with the
76965// same request ID, the server can check if original operation with the
76966// same request ID was received, and if so, will ignore the second
76967// request. This prevents clients from accidentally creating duplicate
76968// commitments.
76969//
76970// The request ID must be a valid UUID with the exception that zero UUID
76971// is not supported (00000000-0000-0000-0000-000000000000).
76972func (c *ProjectsMoveInstanceCall) RequestId(requestId string) *ProjectsMoveInstanceCall {
76973	c.urlParams_.Set("requestId", requestId)
76974	return c
76975}
76976
76977// Fields allows partial responses to be retrieved. See
76978// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76979// for more information.
76980func (c *ProjectsMoveInstanceCall) Fields(s ...googleapi.Field) *ProjectsMoveInstanceCall {
76981	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76982	return c
76983}
76984
76985// Context sets the context to be used in this call's Do method. Any
76986// pending HTTP request will be aborted if the provided context is
76987// canceled.
76988func (c *ProjectsMoveInstanceCall) Context(ctx context.Context) *ProjectsMoveInstanceCall {
76989	c.ctx_ = ctx
76990	return c
76991}
76992
76993// Header returns an http.Header that can be modified by the caller to
76994// add HTTP headers to the request.
76995func (c *ProjectsMoveInstanceCall) Header() http.Header {
76996	if c.header_ == nil {
76997		c.header_ = make(http.Header)
76998	}
76999	return c.header_
77000}
77001
77002func (c *ProjectsMoveInstanceCall) doRequest(alt string) (*http.Response, error) {
77003	reqHeaders := make(http.Header)
77004	for k, v := range c.header_ {
77005		reqHeaders[k] = v
77006	}
77007	reqHeaders.Set("User-Agent", c.s.userAgent())
77008	var body io.Reader = nil
77009	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancemoverequest)
77010	if err != nil {
77011		return nil, err
77012	}
77013	reqHeaders.Set("Content-Type", "application/json")
77014	c.urlParams_.Set("alt", alt)
77015	c.urlParams_.Set("prettyPrint", "false")
77016	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/moveInstance")
77017	urls += "?" + c.urlParams_.Encode()
77018	req, err := http.NewRequest("POST", urls, body)
77019	if err != nil {
77020		return nil, err
77021	}
77022	req.Header = reqHeaders
77023	googleapi.Expand(req.URL, map[string]string{
77024		"project": c.project,
77025	})
77026	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77027}
77028
77029// Do executes the "compute.projects.moveInstance" call.
77030// Exactly one of *Operation or error will be non-nil. Any non-2xx
77031// status code is an error. Response headers are in either
77032// *Operation.ServerResponse.Header or (if a response was returned at
77033// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77034// to check whether the returned error was because
77035// http.StatusNotModified was returned.
77036func (c *ProjectsMoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77037	gensupport.SetOptions(c.urlParams_, opts...)
77038	res, err := c.doRequest("json")
77039	if res != nil && res.StatusCode == http.StatusNotModified {
77040		if res.Body != nil {
77041			res.Body.Close()
77042		}
77043		return nil, &googleapi.Error{
77044			Code:   res.StatusCode,
77045			Header: res.Header,
77046		}
77047	}
77048	if err != nil {
77049		return nil, err
77050	}
77051	defer googleapi.CloseBody(res)
77052	if err := googleapi.CheckResponse(res); err != nil {
77053		return nil, err
77054	}
77055	ret := &Operation{
77056		ServerResponse: googleapi.ServerResponse{
77057			Header:         res.Header,
77058			HTTPStatusCode: res.StatusCode,
77059		},
77060	}
77061	target := &ret
77062	if err := gensupport.DecodeResponse(target, res); err != nil {
77063		return nil, err
77064	}
77065	return ret, nil
77066	// {
77067	//   "description": "Moves an instance and its attached persistent disks from one zone to another.",
77068	//   "httpMethod": "POST",
77069	//   "id": "compute.projects.moveInstance",
77070	//   "parameterOrder": [
77071	//     "project"
77072	//   ],
77073	//   "parameters": {
77074	//     "project": {
77075	//       "description": "Project ID for this request.",
77076	//       "location": "path",
77077	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77078	//       "required": true,
77079	//       "type": "string"
77080	//     },
77081	//     "requestId": {
77082	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77083	//       "location": "query",
77084	//       "type": "string"
77085	//     }
77086	//   },
77087	//   "path": "{project}/moveInstance",
77088	//   "request": {
77089	//     "$ref": "InstanceMoveRequest"
77090	//   },
77091	//   "response": {
77092	//     "$ref": "Operation"
77093	//   },
77094	//   "scopes": [
77095	//     "https://www.googleapis.com/auth/cloud-platform",
77096	//     "https://www.googleapis.com/auth/compute"
77097	//   ]
77098	// }
77099
77100}
77101
77102// method id "compute.projects.setCommonInstanceMetadata":
77103
77104type ProjectsSetCommonInstanceMetadataCall struct {
77105	s          *Service
77106	project    string
77107	metadata   *Metadata
77108	urlParams_ gensupport.URLParams
77109	ctx_       context.Context
77110	header_    http.Header
77111}
77112
77113// SetCommonInstanceMetadata: Sets metadata common to all instances
77114// within the specified project using the data included in the request.
77115// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setCommonInstanceMetadata
77116func (r *ProjectsService) SetCommonInstanceMetadata(project string, metadata *Metadata) *ProjectsSetCommonInstanceMetadataCall {
77117	c := &ProjectsSetCommonInstanceMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77118	c.project = project
77119	c.metadata = metadata
77120	return c
77121}
77122
77123// RequestId sets the optional parameter "requestId": An optional
77124// request ID to identify requests. Specify a unique request ID so that
77125// if you must retry your request, the server will know to ignore the
77126// request if it has already been completed.
77127//
77128// For example, consider a situation where you make an initial request
77129// and the request times out. If you make the request again with the
77130// same request ID, the server can check if original operation with the
77131// same request ID was received, and if so, will ignore the second
77132// request. This prevents clients from accidentally creating duplicate
77133// commitments.
77134//
77135// The request ID must be a valid UUID with the exception that zero UUID
77136// is not supported (00000000-0000-0000-0000-000000000000).
77137func (c *ProjectsSetCommonInstanceMetadataCall) RequestId(requestId string) *ProjectsSetCommonInstanceMetadataCall {
77138	c.urlParams_.Set("requestId", requestId)
77139	return c
77140}
77141
77142// Fields allows partial responses to be retrieved. See
77143// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77144// for more information.
77145func (c *ProjectsSetCommonInstanceMetadataCall) Fields(s ...googleapi.Field) *ProjectsSetCommonInstanceMetadataCall {
77146	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77147	return c
77148}
77149
77150// Context sets the context to be used in this call's Do method. Any
77151// pending HTTP request will be aborted if the provided context is
77152// canceled.
77153func (c *ProjectsSetCommonInstanceMetadataCall) Context(ctx context.Context) *ProjectsSetCommonInstanceMetadataCall {
77154	c.ctx_ = ctx
77155	return c
77156}
77157
77158// Header returns an http.Header that can be modified by the caller to
77159// add HTTP headers to the request.
77160func (c *ProjectsSetCommonInstanceMetadataCall) Header() http.Header {
77161	if c.header_ == nil {
77162		c.header_ = make(http.Header)
77163	}
77164	return c.header_
77165}
77166
77167func (c *ProjectsSetCommonInstanceMetadataCall) doRequest(alt string) (*http.Response, error) {
77168	reqHeaders := make(http.Header)
77169	for k, v := range c.header_ {
77170		reqHeaders[k] = v
77171	}
77172	reqHeaders.Set("User-Agent", c.s.userAgent())
77173	var body io.Reader = nil
77174	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
77175	if err != nil {
77176		return nil, err
77177	}
77178	reqHeaders.Set("Content-Type", "application/json")
77179	c.urlParams_.Set("alt", alt)
77180	c.urlParams_.Set("prettyPrint", "false")
77181	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setCommonInstanceMetadata")
77182	urls += "?" + c.urlParams_.Encode()
77183	req, err := http.NewRequest("POST", urls, body)
77184	if err != nil {
77185		return nil, err
77186	}
77187	req.Header = reqHeaders
77188	googleapi.Expand(req.URL, map[string]string{
77189		"project": c.project,
77190	})
77191	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77192}
77193
77194// Do executes the "compute.projects.setCommonInstanceMetadata" call.
77195// Exactly one of *Operation or error will be non-nil. Any non-2xx
77196// status code is an error. Response headers are in either
77197// *Operation.ServerResponse.Header or (if a response was returned at
77198// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77199// to check whether the returned error was because
77200// http.StatusNotModified was returned.
77201func (c *ProjectsSetCommonInstanceMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77202	gensupport.SetOptions(c.urlParams_, opts...)
77203	res, err := c.doRequest("json")
77204	if res != nil && res.StatusCode == http.StatusNotModified {
77205		if res.Body != nil {
77206			res.Body.Close()
77207		}
77208		return nil, &googleapi.Error{
77209			Code:   res.StatusCode,
77210			Header: res.Header,
77211		}
77212	}
77213	if err != nil {
77214		return nil, err
77215	}
77216	defer googleapi.CloseBody(res)
77217	if err := googleapi.CheckResponse(res); err != nil {
77218		return nil, err
77219	}
77220	ret := &Operation{
77221		ServerResponse: googleapi.ServerResponse{
77222			Header:         res.Header,
77223			HTTPStatusCode: res.StatusCode,
77224		},
77225	}
77226	target := &ret
77227	if err := gensupport.DecodeResponse(target, res); err != nil {
77228		return nil, err
77229	}
77230	return ret, nil
77231	// {
77232	//   "description": "Sets metadata common to all instances within the specified project using the data included in the request.",
77233	//   "httpMethod": "POST",
77234	//   "id": "compute.projects.setCommonInstanceMetadata",
77235	//   "parameterOrder": [
77236	//     "project"
77237	//   ],
77238	//   "parameters": {
77239	//     "project": {
77240	//       "description": "Project ID for this request.",
77241	//       "location": "path",
77242	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77243	//       "required": true,
77244	//       "type": "string"
77245	//     },
77246	//     "requestId": {
77247	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77248	//       "location": "query",
77249	//       "type": "string"
77250	//     }
77251	//   },
77252	//   "path": "{project}/setCommonInstanceMetadata",
77253	//   "request": {
77254	//     "$ref": "Metadata"
77255	//   },
77256	//   "response": {
77257	//     "$ref": "Operation"
77258	//   },
77259	//   "scopes": [
77260	//     "https://www.googleapis.com/auth/cloud-platform",
77261	//     "https://www.googleapis.com/auth/compute"
77262	//   ]
77263	// }
77264
77265}
77266
77267// method id "compute.projects.setDefaultNetworkTier":
77268
77269type ProjectsSetDefaultNetworkTierCall struct {
77270	s                                    *Service
77271	project                              string
77272	projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest
77273	urlParams_                           gensupport.URLParams
77274	ctx_                                 context.Context
77275	header_                              http.Header
77276}
77277
77278// SetDefaultNetworkTier: Sets the default network tier of the project.
77279// The default network tier is used when an
77280// address/forwardingRule/instance is created without specifying the
77281// network tier field.
77282func (r *ProjectsService) SetDefaultNetworkTier(project string, projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest) *ProjectsSetDefaultNetworkTierCall {
77283	c := &ProjectsSetDefaultNetworkTierCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77284	c.project = project
77285	c.projectssetdefaultnetworktierrequest = projectssetdefaultnetworktierrequest
77286	return c
77287}
77288
77289// RequestId sets the optional parameter "requestId": An optional
77290// request ID to identify requests. Specify a unique request ID so that
77291// if you must retry your request, the server will know to ignore the
77292// request if it has already been completed.
77293//
77294// For example, consider a situation where you make an initial request
77295// and the request times out. If you make the request again with the
77296// same request ID, the server can check if original operation with the
77297// same request ID was received, and if so, will ignore the second
77298// request. This prevents clients from accidentally creating duplicate
77299// commitments.
77300//
77301// The request ID must be a valid UUID with the exception that zero UUID
77302// is not supported (00000000-0000-0000-0000-000000000000).
77303func (c *ProjectsSetDefaultNetworkTierCall) RequestId(requestId string) *ProjectsSetDefaultNetworkTierCall {
77304	c.urlParams_.Set("requestId", requestId)
77305	return c
77306}
77307
77308// Fields allows partial responses to be retrieved. See
77309// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77310// for more information.
77311func (c *ProjectsSetDefaultNetworkTierCall) Fields(s ...googleapi.Field) *ProjectsSetDefaultNetworkTierCall {
77312	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77313	return c
77314}
77315
77316// Context sets the context to be used in this call's Do method. Any
77317// pending HTTP request will be aborted if the provided context is
77318// canceled.
77319func (c *ProjectsSetDefaultNetworkTierCall) Context(ctx context.Context) *ProjectsSetDefaultNetworkTierCall {
77320	c.ctx_ = ctx
77321	return c
77322}
77323
77324// Header returns an http.Header that can be modified by the caller to
77325// add HTTP headers to the request.
77326func (c *ProjectsSetDefaultNetworkTierCall) Header() http.Header {
77327	if c.header_ == nil {
77328		c.header_ = make(http.Header)
77329	}
77330	return c.header_
77331}
77332
77333func (c *ProjectsSetDefaultNetworkTierCall) doRequest(alt string) (*http.Response, error) {
77334	reqHeaders := make(http.Header)
77335	for k, v := range c.header_ {
77336		reqHeaders[k] = v
77337	}
77338	reqHeaders.Set("User-Agent", c.s.userAgent())
77339	var body io.Reader = nil
77340	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectssetdefaultnetworktierrequest)
77341	if err != nil {
77342		return nil, err
77343	}
77344	reqHeaders.Set("Content-Type", "application/json")
77345	c.urlParams_.Set("alt", alt)
77346	c.urlParams_.Set("prettyPrint", "false")
77347	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setDefaultNetworkTier")
77348	urls += "?" + c.urlParams_.Encode()
77349	req, err := http.NewRequest("POST", urls, body)
77350	if err != nil {
77351		return nil, err
77352	}
77353	req.Header = reqHeaders
77354	googleapi.Expand(req.URL, map[string]string{
77355		"project": c.project,
77356	})
77357	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77358}
77359
77360// Do executes the "compute.projects.setDefaultNetworkTier" call.
77361// Exactly one of *Operation or error will be non-nil. Any non-2xx
77362// status code is an error. Response headers are in either
77363// *Operation.ServerResponse.Header or (if a response was returned at
77364// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77365// to check whether the returned error was because
77366// http.StatusNotModified was returned.
77367func (c *ProjectsSetDefaultNetworkTierCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77368	gensupport.SetOptions(c.urlParams_, opts...)
77369	res, err := c.doRequest("json")
77370	if res != nil && res.StatusCode == http.StatusNotModified {
77371		if res.Body != nil {
77372			res.Body.Close()
77373		}
77374		return nil, &googleapi.Error{
77375			Code:   res.StatusCode,
77376			Header: res.Header,
77377		}
77378	}
77379	if err != nil {
77380		return nil, err
77381	}
77382	defer googleapi.CloseBody(res)
77383	if err := googleapi.CheckResponse(res); err != nil {
77384		return nil, err
77385	}
77386	ret := &Operation{
77387		ServerResponse: googleapi.ServerResponse{
77388			Header:         res.Header,
77389			HTTPStatusCode: res.StatusCode,
77390		},
77391	}
77392	target := &ret
77393	if err := gensupport.DecodeResponse(target, res); err != nil {
77394		return nil, err
77395	}
77396	return ret, nil
77397	// {
77398	//   "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.",
77399	//   "httpMethod": "POST",
77400	//   "id": "compute.projects.setDefaultNetworkTier",
77401	//   "parameterOrder": [
77402	//     "project"
77403	//   ],
77404	//   "parameters": {
77405	//     "project": {
77406	//       "description": "Project ID for this request.",
77407	//       "location": "path",
77408	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77409	//       "required": true,
77410	//       "type": "string"
77411	//     },
77412	//     "requestId": {
77413	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77414	//       "location": "query",
77415	//       "type": "string"
77416	//     }
77417	//   },
77418	//   "path": "{project}/setDefaultNetworkTier",
77419	//   "request": {
77420	//     "$ref": "ProjectsSetDefaultNetworkTierRequest"
77421	//   },
77422	//   "response": {
77423	//     "$ref": "Operation"
77424	//   },
77425	//   "scopes": [
77426	//     "https://www.googleapis.com/auth/cloud-platform",
77427	//     "https://www.googleapis.com/auth/compute"
77428	//   ]
77429	// }
77430
77431}
77432
77433// method id "compute.projects.setUsageExportBucket":
77434
77435type ProjectsSetUsageExportBucketCall struct {
77436	s                   *Service
77437	project             string
77438	usageexportlocation *UsageExportLocation
77439	urlParams_          gensupport.URLParams
77440	ctx_                context.Context
77441	header_             http.Header
77442}
77443
77444// SetUsageExportBucket: Enables the usage export feature and sets the
77445// usage export bucket where reports are stored. If you provide an empty
77446// request body using this method, the usage export feature will be
77447// disabled.
77448// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setUsageExportBucket
77449func (r *ProjectsService) SetUsageExportBucket(project string, usageexportlocation *UsageExportLocation) *ProjectsSetUsageExportBucketCall {
77450	c := &ProjectsSetUsageExportBucketCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77451	c.project = project
77452	c.usageexportlocation = usageexportlocation
77453	return c
77454}
77455
77456// RequestId sets the optional parameter "requestId": An optional
77457// request ID to identify requests. Specify a unique request ID so that
77458// if you must retry your request, the server will know to ignore the
77459// request if it has already been completed.
77460//
77461// For example, consider a situation where you make an initial request
77462// and the request times out. If you make the request again with the
77463// same request ID, the server can check if original operation with the
77464// same request ID was received, and if so, will ignore the second
77465// request. This prevents clients from accidentally creating duplicate
77466// commitments.
77467//
77468// The request ID must be a valid UUID with the exception that zero UUID
77469// is not supported (00000000-0000-0000-0000-000000000000).
77470func (c *ProjectsSetUsageExportBucketCall) RequestId(requestId string) *ProjectsSetUsageExportBucketCall {
77471	c.urlParams_.Set("requestId", requestId)
77472	return c
77473}
77474
77475// Fields allows partial responses to be retrieved. See
77476// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77477// for more information.
77478func (c *ProjectsSetUsageExportBucketCall) Fields(s ...googleapi.Field) *ProjectsSetUsageExportBucketCall {
77479	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77480	return c
77481}
77482
77483// Context sets the context to be used in this call's Do method. Any
77484// pending HTTP request will be aborted if the provided context is
77485// canceled.
77486func (c *ProjectsSetUsageExportBucketCall) Context(ctx context.Context) *ProjectsSetUsageExportBucketCall {
77487	c.ctx_ = ctx
77488	return c
77489}
77490
77491// Header returns an http.Header that can be modified by the caller to
77492// add HTTP headers to the request.
77493func (c *ProjectsSetUsageExportBucketCall) Header() http.Header {
77494	if c.header_ == nil {
77495		c.header_ = make(http.Header)
77496	}
77497	return c.header_
77498}
77499
77500func (c *ProjectsSetUsageExportBucketCall) doRequest(alt string) (*http.Response, error) {
77501	reqHeaders := make(http.Header)
77502	for k, v := range c.header_ {
77503		reqHeaders[k] = v
77504	}
77505	reqHeaders.Set("User-Agent", c.s.userAgent())
77506	var body io.Reader = nil
77507	body, err := googleapi.WithoutDataWrapper.JSONReader(c.usageexportlocation)
77508	if err != nil {
77509		return nil, err
77510	}
77511	reqHeaders.Set("Content-Type", "application/json")
77512	c.urlParams_.Set("alt", alt)
77513	c.urlParams_.Set("prettyPrint", "false")
77514	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setUsageExportBucket")
77515	urls += "?" + c.urlParams_.Encode()
77516	req, err := http.NewRequest("POST", urls, body)
77517	if err != nil {
77518		return nil, err
77519	}
77520	req.Header = reqHeaders
77521	googleapi.Expand(req.URL, map[string]string{
77522		"project": c.project,
77523	})
77524	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77525}
77526
77527// Do executes the "compute.projects.setUsageExportBucket" call.
77528// Exactly one of *Operation or error will be non-nil. Any non-2xx
77529// status code is an error. Response headers are in either
77530// *Operation.ServerResponse.Header or (if a response was returned at
77531// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77532// to check whether the returned error was because
77533// http.StatusNotModified was returned.
77534func (c *ProjectsSetUsageExportBucketCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77535	gensupport.SetOptions(c.urlParams_, opts...)
77536	res, err := c.doRequest("json")
77537	if res != nil && res.StatusCode == http.StatusNotModified {
77538		if res.Body != nil {
77539			res.Body.Close()
77540		}
77541		return nil, &googleapi.Error{
77542			Code:   res.StatusCode,
77543			Header: res.Header,
77544		}
77545	}
77546	if err != nil {
77547		return nil, err
77548	}
77549	defer googleapi.CloseBody(res)
77550	if err := googleapi.CheckResponse(res); err != nil {
77551		return nil, err
77552	}
77553	ret := &Operation{
77554		ServerResponse: googleapi.ServerResponse{
77555			Header:         res.Header,
77556			HTTPStatusCode: res.StatusCode,
77557		},
77558	}
77559	target := &ret
77560	if err := gensupport.DecodeResponse(target, res); err != nil {
77561		return nil, err
77562	}
77563	return ret, nil
77564	// {
77565	//   "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.",
77566	//   "httpMethod": "POST",
77567	//   "id": "compute.projects.setUsageExportBucket",
77568	//   "parameterOrder": [
77569	//     "project"
77570	//   ],
77571	//   "parameters": {
77572	//     "project": {
77573	//       "description": "Project ID for this request.",
77574	//       "location": "path",
77575	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77576	//       "required": true,
77577	//       "type": "string"
77578	//     },
77579	//     "requestId": {
77580	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77581	//       "location": "query",
77582	//       "type": "string"
77583	//     }
77584	//   },
77585	//   "path": "{project}/setUsageExportBucket",
77586	//   "request": {
77587	//     "$ref": "UsageExportLocation"
77588	//   },
77589	//   "response": {
77590	//     "$ref": "Operation"
77591	//   },
77592	//   "scopes": [
77593	//     "https://www.googleapis.com/auth/cloud-platform",
77594	//     "https://www.googleapis.com/auth/compute",
77595	//     "https://www.googleapis.com/auth/devstorage.full_control",
77596	//     "https://www.googleapis.com/auth/devstorage.read_only",
77597	//     "https://www.googleapis.com/auth/devstorage.read_write"
77598	//   ]
77599	// }
77600
77601}
77602
77603// method id "compute.regionAutoscalers.delete":
77604
77605type RegionAutoscalersDeleteCall struct {
77606	s          *Service
77607	project    string
77608	region     string
77609	autoscaler string
77610	urlParams_ gensupport.URLParams
77611	ctx_       context.Context
77612	header_    http.Header
77613}
77614
77615// Delete: Deletes the specified autoscaler.
77616func (r *RegionAutoscalersService) Delete(project string, region string, autoscaler string) *RegionAutoscalersDeleteCall {
77617	c := &RegionAutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77618	c.project = project
77619	c.region = region
77620	c.autoscaler = autoscaler
77621	return c
77622}
77623
77624// RequestId sets the optional parameter "requestId": An optional
77625// request ID to identify requests. Specify a unique request ID so that
77626// if you must retry your request, the server will know to ignore the
77627// request if it has already been completed.
77628//
77629// For example, consider a situation where you make an initial request
77630// and the request times out. If you make the request again with the
77631// same request ID, the server can check if original operation with the
77632// same request ID was received, and if so, will ignore the second
77633// request. This prevents clients from accidentally creating duplicate
77634// commitments.
77635//
77636// The request ID must be a valid UUID with the exception that zero UUID
77637// is not supported (00000000-0000-0000-0000-000000000000).
77638func (c *RegionAutoscalersDeleteCall) RequestId(requestId string) *RegionAutoscalersDeleteCall {
77639	c.urlParams_.Set("requestId", requestId)
77640	return c
77641}
77642
77643// Fields allows partial responses to be retrieved. See
77644// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77645// for more information.
77646func (c *RegionAutoscalersDeleteCall) Fields(s ...googleapi.Field) *RegionAutoscalersDeleteCall {
77647	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77648	return c
77649}
77650
77651// Context sets the context to be used in this call's Do method. Any
77652// pending HTTP request will be aborted if the provided context is
77653// canceled.
77654func (c *RegionAutoscalersDeleteCall) Context(ctx context.Context) *RegionAutoscalersDeleteCall {
77655	c.ctx_ = ctx
77656	return c
77657}
77658
77659// Header returns an http.Header that can be modified by the caller to
77660// add HTTP headers to the request.
77661func (c *RegionAutoscalersDeleteCall) Header() http.Header {
77662	if c.header_ == nil {
77663		c.header_ = make(http.Header)
77664	}
77665	return c.header_
77666}
77667
77668func (c *RegionAutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
77669	reqHeaders := make(http.Header)
77670	for k, v := range c.header_ {
77671		reqHeaders[k] = v
77672	}
77673	reqHeaders.Set("User-Agent", c.s.userAgent())
77674	var body io.Reader = nil
77675	c.urlParams_.Set("alt", alt)
77676	c.urlParams_.Set("prettyPrint", "false")
77677	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{autoscaler}")
77678	urls += "?" + c.urlParams_.Encode()
77679	req, err := http.NewRequest("DELETE", urls, body)
77680	if err != nil {
77681		return nil, err
77682	}
77683	req.Header = reqHeaders
77684	googleapi.Expand(req.URL, map[string]string{
77685		"project":    c.project,
77686		"region":     c.region,
77687		"autoscaler": c.autoscaler,
77688	})
77689	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77690}
77691
77692// Do executes the "compute.regionAutoscalers.delete" call.
77693// Exactly one of *Operation or error will be non-nil. Any non-2xx
77694// status code is an error. Response headers are in either
77695// *Operation.ServerResponse.Header or (if a response was returned at
77696// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77697// to check whether the returned error was because
77698// http.StatusNotModified was returned.
77699func (c *RegionAutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77700	gensupport.SetOptions(c.urlParams_, opts...)
77701	res, err := c.doRequest("json")
77702	if res != nil && res.StatusCode == http.StatusNotModified {
77703		if res.Body != nil {
77704			res.Body.Close()
77705		}
77706		return nil, &googleapi.Error{
77707			Code:   res.StatusCode,
77708			Header: res.Header,
77709		}
77710	}
77711	if err != nil {
77712		return nil, err
77713	}
77714	defer googleapi.CloseBody(res)
77715	if err := googleapi.CheckResponse(res); err != nil {
77716		return nil, err
77717	}
77718	ret := &Operation{
77719		ServerResponse: googleapi.ServerResponse{
77720			Header:         res.Header,
77721			HTTPStatusCode: res.StatusCode,
77722		},
77723	}
77724	target := &ret
77725	if err := gensupport.DecodeResponse(target, res); err != nil {
77726		return nil, err
77727	}
77728	return ret, nil
77729	// {
77730	//   "description": "Deletes the specified autoscaler.",
77731	//   "httpMethod": "DELETE",
77732	//   "id": "compute.regionAutoscalers.delete",
77733	//   "parameterOrder": [
77734	//     "project",
77735	//     "region",
77736	//     "autoscaler"
77737	//   ],
77738	//   "parameters": {
77739	//     "autoscaler": {
77740	//       "description": "Name of the autoscaler to delete.",
77741	//       "location": "path",
77742	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77743	//       "required": true,
77744	//       "type": "string"
77745	//     },
77746	//     "project": {
77747	//       "description": "Project ID for this request.",
77748	//       "location": "path",
77749	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77750	//       "required": true,
77751	//       "type": "string"
77752	//     },
77753	//     "region": {
77754	//       "description": "Name of the region scoping this request.",
77755	//       "location": "path",
77756	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77757	//       "required": true,
77758	//       "type": "string"
77759	//     },
77760	//     "requestId": {
77761	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77762	//       "location": "query",
77763	//       "type": "string"
77764	//     }
77765	//   },
77766	//   "path": "{project}/regions/{region}/autoscalers/{autoscaler}",
77767	//   "response": {
77768	//     "$ref": "Operation"
77769	//   },
77770	//   "scopes": [
77771	//     "https://www.googleapis.com/auth/cloud-platform",
77772	//     "https://www.googleapis.com/auth/compute"
77773	//   ]
77774	// }
77775
77776}
77777
77778// method id "compute.regionAutoscalers.get":
77779
77780type RegionAutoscalersGetCall struct {
77781	s            *Service
77782	project      string
77783	region       string
77784	autoscaler   string
77785	urlParams_   gensupport.URLParams
77786	ifNoneMatch_ string
77787	ctx_         context.Context
77788	header_      http.Header
77789}
77790
77791// Get: Returns the specified autoscaler.
77792func (r *RegionAutoscalersService) Get(project string, region string, autoscaler string) *RegionAutoscalersGetCall {
77793	c := &RegionAutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77794	c.project = project
77795	c.region = region
77796	c.autoscaler = autoscaler
77797	return c
77798}
77799
77800// Fields allows partial responses to be retrieved. See
77801// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77802// for more information.
77803func (c *RegionAutoscalersGetCall) Fields(s ...googleapi.Field) *RegionAutoscalersGetCall {
77804	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77805	return c
77806}
77807
77808// IfNoneMatch sets the optional parameter which makes the operation
77809// fail if the object's ETag matches the given value. This is useful for
77810// getting updates only after the object has changed since the last
77811// request. Use googleapi.IsNotModified to check whether the response
77812// error from Do is the result of In-None-Match.
77813func (c *RegionAutoscalersGetCall) IfNoneMatch(entityTag string) *RegionAutoscalersGetCall {
77814	c.ifNoneMatch_ = entityTag
77815	return c
77816}
77817
77818// Context sets the context to be used in this call's Do method. Any
77819// pending HTTP request will be aborted if the provided context is
77820// canceled.
77821func (c *RegionAutoscalersGetCall) Context(ctx context.Context) *RegionAutoscalersGetCall {
77822	c.ctx_ = ctx
77823	return c
77824}
77825
77826// Header returns an http.Header that can be modified by the caller to
77827// add HTTP headers to the request.
77828func (c *RegionAutoscalersGetCall) Header() http.Header {
77829	if c.header_ == nil {
77830		c.header_ = make(http.Header)
77831	}
77832	return c.header_
77833}
77834
77835func (c *RegionAutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
77836	reqHeaders := make(http.Header)
77837	for k, v := range c.header_ {
77838		reqHeaders[k] = v
77839	}
77840	reqHeaders.Set("User-Agent", c.s.userAgent())
77841	if c.ifNoneMatch_ != "" {
77842		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
77843	}
77844	var body io.Reader = nil
77845	c.urlParams_.Set("alt", alt)
77846	c.urlParams_.Set("prettyPrint", "false")
77847	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{autoscaler}")
77848	urls += "?" + c.urlParams_.Encode()
77849	req, err := http.NewRequest("GET", urls, body)
77850	if err != nil {
77851		return nil, err
77852	}
77853	req.Header = reqHeaders
77854	googleapi.Expand(req.URL, map[string]string{
77855		"project":    c.project,
77856		"region":     c.region,
77857		"autoscaler": c.autoscaler,
77858	})
77859	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77860}
77861
77862// Do executes the "compute.regionAutoscalers.get" call.
77863// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
77864// status code is an error. Response headers are in either
77865// *Autoscaler.ServerResponse.Header or (if a response was returned at
77866// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77867// to check whether the returned error was because
77868// http.StatusNotModified was returned.
77869func (c *RegionAutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
77870	gensupport.SetOptions(c.urlParams_, opts...)
77871	res, err := c.doRequest("json")
77872	if res != nil && res.StatusCode == http.StatusNotModified {
77873		if res.Body != nil {
77874			res.Body.Close()
77875		}
77876		return nil, &googleapi.Error{
77877			Code:   res.StatusCode,
77878			Header: res.Header,
77879		}
77880	}
77881	if err != nil {
77882		return nil, err
77883	}
77884	defer googleapi.CloseBody(res)
77885	if err := googleapi.CheckResponse(res); err != nil {
77886		return nil, err
77887	}
77888	ret := &Autoscaler{
77889		ServerResponse: googleapi.ServerResponse{
77890			Header:         res.Header,
77891			HTTPStatusCode: res.StatusCode,
77892		},
77893	}
77894	target := &ret
77895	if err := gensupport.DecodeResponse(target, res); err != nil {
77896		return nil, err
77897	}
77898	return ret, nil
77899	// {
77900	//   "description": "Returns the specified autoscaler.",
77901	//   "httpMethod": "GET",
77902	//   "id": "compute.regionAutoscalers.get",
77903	//   "parameterOrder": [
77904	//     "project",
77905	//     "region",
77906	//     "autoscaler"
77907	//   ],
77908	//   "parameters": {
77909	//     "autoscaler": {
77910	//       "description": "Name of the autoscaler to return.",
77911	//       "location": "path",
77912	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77913	//       "required": true,
77914	//       "type": "string"
77915	//     },
77916	//     "project": {
77917	//       "description": "Project ID for this request.",
77918	//       "location": "path",
77919	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77920	//       "required": true,
77921	//       "type": "string"
77922	//     },
77923	//     "region": {
77924	//       "description": "Name of the region scoping this request.",
77925	//       "location": "path",
77926	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77927	//       "required": true,
77928	//       "type": "string"
77929	//     }
77930	//   },
77931	//   "path": "{project}/regions/{region}/autoscalers/{autoscaler}",
77932	//   "response": {
77933	//     "$ref": "Autoscaler"
77934	//   },
77935	//   "scopes": [
77936	//     "https://www.googleapis.com/auth/cloud-platform",
77937	//     "https://www.googleapis.com/auth/compute",
77938	//     "https://www.googleapis.com/auth/compute.readonly"
77939	//   ]
77940	// }
77941
77942}
77943
77944// method id "compute.regionAutoscalers.insert":
77945
77946type RegionAutoscalersInsertCall struct {
77947	s          *Service
77948	project    string
77949	region     string
77950	autoscaler *Autoscaler
77951	urlParams_ gensupport.URLParams
77952	ctx_       context.Context
77953	header_    http.Header
77954}
77955
77956// Insert: Creates an autoscaler in the specified project using the data
77957// included in the request.
77958func (r *RegionAutoscalersService) Insert(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersInsertCall {
77959	c := &RegionAutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77960	c.project = project
77961	c.region = region
77962	c.autoscaler = autoscaler
77963	return c
77964}
77965
77966// RequestId sets the optional parameter "requestId": An optional
77967// request ID to identify requests. Specify a unique request ID so that
77968// if you must retry your request, the server will know to ignore the
77969// request if it has already been completed.
77970//
77971// For example, consider a situation where you make an initial request
77972// and the request times out. If you make the request again with the
77973// same request ID, the server can check if original operation with the
77974// same request ID was received, and if so, will ignore the second
77975// request. This prevents clients from accidentally creating duplicate
77976// commitments.
77977//
77978// The request ID must be a valid UUID with the exception that zero UUID
77979// is not supported (00000000-0000-0000-0000-000000000000).
77980func (c *RegionAutoscalersInsertCall) RequestId(requestId string) *RegionAutoscalersInsertCall {
77981	c.urlParams_.Set("requestId", requestId)
77982	return c
77983}
77984
77985// Fields allows partial responses to be retrieved. See
77986// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77987// for more information.
77988func (c *RegionAutoscalersInsertCall) Fields(s ...googleapi.Field) *RegionAutoscalersInsertCall {
77989	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77990	return c
77991}
77992
77993// Context sets the context to be used in this call's Do method. Any
77994// pending HTTP request will be aborted if the provided context is
77995// canceled.
77996func (c *RegionAutoscalersInsertCall) Context(ctx context.Context) *RegionAutoscalersInsertCall {
77997	c.ctx_ = ctx
77998	return c
77999}
78000
78001// Header returns an http.Header that can be modified by the caller to
78002// add HTTP headers to the request.
78003func (c *RegionAutoscalersInsertCall) Header() http.Header {
78004	if c.header_ == nil {
78005		c.header_ = make(http.Header)
78006	}
78007	return c.header_
78008}
78009
78010func (c *RegionAutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
78011	reqHeaders := make(http.Header)
78012	for k, v := range c.header_ {
78013		reqHeaders[k] = v
78014	}
78015	reqHeaders.Set("User-Agent", c.s.userAgent())
78016	var body io.Reader = nil
78017	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
78018	if err != nil {
78019		return nil, err
78020	}
78021	reqHeaders.Set("Content-Type", "application/json")
78022	c.urlParams_.Set("alt", alt)
78023	c.urlParams_.Set("prettyPrint", "false")
78024	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
78025	urls += "?" + c.urlParams_.Encode()
78026	req, err := http.NewRequest("POST", urls, body)
78027	if err != nil {
78028		return nil, err
78029	}
78030	req.Header = reqHeaders
78031	googleapi.Expand(req.URL, map[string]string{
78032		"project": c.project,
78033		"region":  c.region,
78034	})
78035	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78036}
78037
78038// Do executes the "compute.regionAutoscalers.insert" call.
78039// Exactly one of *Operation or error will be non-nil. Any non-2xx
78040// status code is an error. Response headers are in either
78041// *Operation.ServerResponse.Header or (if a response was returned at
78042// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78043// to check whether the returned error was because
78044// http.StatusNotModified was returned.
78045func (c *RegionAutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78046	gensupport.SetOptions(c.urlParams_, opts...)
78047	res, err := c.doRequest("json")
78048	if res != nil && res.StatusCode == http.StatusNotModified {
78049		if res.Body != nil {
78050			res.Body.Close()
78051		}
78052		return nil, &googleapi.Error{
78053			Code:   res.StatusCode,
78054			Header: res.Header,
78055		}
78056	}
78057	if err != nil {
78058		return nil, err
78059	}
78060	defer googleapi.CloseBody(res)
78061	if err := googleapi.CheckResponse(res); err != nil {
78062		return nil, err
78063	}
78064	ret := &Operation{
78065		ServerResponse: googleapi.ServerResponse{
78066			Header:         res.Header,
78067			HTTPStatusCode: res.StatusCode,
78068		},
78069	}
78070	target := &ret
78071	if err := gensupport.DecodeResponse(target, res); err != nil {
78072		return nil, err
78073	}
78074	return ret, nil
78075	// {
78076	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
78077	//   "httpMethod": "POST",
78078	//   "id": "compute.regionAutoscalers.insert",
78079	//   "parameterOrder": [
78080	//     "project",
78081	//     "region"
78082	//   ],
78083	//   "parameters": {
78084	//     "project": {
78085	//       "description": "Project ID for this request.",
78086	//       "location": "path",
78087	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78088	//       "required": true,
78089	//       "type": "string"
78090	//     },
78091	//     "region": {
78092	//       "description": "Name of the region scoping this request.",
78093	//       "location": "path",
78094	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78095	//       "required": true,
78096	//       "type": "string"
78097	//     },
78098	//     "requestId": {
78099	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78100	//       "location": "query",
78101	//       "type": "string"
78102	//     }
78103	//   },
78104	//   "path": "{project}/regions/{region}/autoscalers",
78105	//   "request": {
78106	//     "$ref": "Autoscaler"
78107	//   },
78108	//   "response": {
78109	//     "$ref": "Operation"
78110	//   },
78111	//   "scopes": [
78112	//     "https://www.googleapis.com/auth/cloud-platform",
78113	//     "https://www.googleapis.com/auth/compute"
78114	//   ]
78115	// }
78116
78117}
78118
78119// method id "compute.regionAutoscalers.list":
78120
78121type RegionAutoscalersListCall struct {
78122	s            *Service
78123	project      string
78124	region       string
78125	urlParams_   gensupport.URLParams
78126	ifNoneMatch_ string
78127	ctx_         context.Context
78128	header_      http.Header
78129}
78130
78131// List: Retrieves a list of autoscalers contained within the specified
78132// region.
78133func (r *RegionAutoscalersService) List(project string, region string) *RegionAutoscalersListCall {
78134	c := &RegionAutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78135	c.project = project
78136	c.region = region
78137	return c
78138}
78139
78140// Filter sets the optional parameter "filter": A filter expression that
78141// filters resources listed in the response. The expression must specify
78142// the field name, a comparison operator, and the value that you want to
78143// use for filtering. The value must be a string, a number, or a
78144// boolean. The comparison operator must be either =, !=, >, or <.
78145//
78146// For example, if you are filtering Compute Engine instances, you can
78147// exclude instances named example-instance by specifying name !=
78148// example-instance.
78149//
78150// You can also filter nested fields. For example, you could specify
78151// scheduling.automaticRestart = false to include instances only if they
78152// are not scheduled for automatic restarts. You can use filtering on
78153// nested fields to filter based on resource labels.
78154//
78155// To filter on multiple expressions, provide each separate expression
78156// within parentheses. For example, (scheduling.automaticRestart = true)
78157// (cpuPlatform = "Intel Skylake"). By default, each expression is an
78158// AND expression. However, you can include AND and OR expressions
78159// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
78160// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
78161// true).
78162func (c *RegionAutoscalersListCall) Filter(filter string) *RegionAutoscalersListCall {
78163	c.urlParams_.Set("filter", filter)
78164	return c
78165}
78166
78167// MaxResults sets the optional parameter "maxResults": The maximum
78168// number of results per page that should be returned. If the number of
78169// available results is larger than maxResults, Compute Engine returns a
78170// nextPageToken that can be used to get the next page of results in
78171// subsequent list requests. Acceptable values are 0 to 500, inclusive.
78172// (Default: 500)
78173func (c *RegionAutoscalersListCall) MaxResults(maxResults int64) *RegionAutoscalersListCall {
78174	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
78175	return c
78176}
78177
78178// OrderBy sets the optional parameter "orderBy": Sorts list results by
78179// a certain order. By default, results are returned in alphanumerical
78180// order based on the resource name.
78181//
78182// You can also sort results in descending order based on the creation
78183// timestamp using orderBy="creationTimestamp desc". This sorts results
78184// based on the creationTimestamp field in reverse chronological order
78185// (newest result first). Use this to sort resources like operations so
78186// that the newest operation is returned first.
78187//
78188// Currently, only sorting by name or creationTimestamp desc is
78189// supported.
78190func (c *RegionAutoscalersListCall) OrderBy(orderBy string) *RegionAutoscalersListCall {
78191	c.urlParams_.Set("orderBy", orderBy)
78192	return c
78193}
78194
78195// PageToken sets the optional parameter "pageToken": Specifies a page
78196// token to use. Set pageToken to the nextPageToken returned by a
78197// previous list request to get the next page of results.
78198func (c *RegionAutoscalersListCall) PageToken(pageToken string) *RegionAutoscalersListCall {
78199	c.urlParams_.Set("pageToken", pageToken)
78200	return c
78201}
78202
78203// Fields allows partial responses to be retrieved. See
78204// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78205// for more information.
78206func (c *RegionAutoscalersListCall) Fields(s ...googleapi.Field) *RegionAutoscalersListCall {
78207	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78208	return c
78209}
78210
78211// IfNoneMatch sets the optional parameter which makes the operation
78212// fail if the object's ETag matches the given value. This is useful for
78213// getting updates only after the object has changed since the last
78214// request. Use googleapi.IsNotModified to check whether the response
78215// error from Do is the result of In-None-Match.
78216func (c *RegionAutoscalersListCall) IfNoneMatch(entityTag string) *RegionAutoscalersListCall {
78217	c.ifNoneMatch_ = entityTag
78218	return c
78219}
78220
78221// Context sets the context to be used in this call's Do method. Any
78222// pending HTTP request will be aborted if the provided context is
78223// canceled.
78224func (c *RegionAutoscalersListCall) Context(ctx context.Context) *RegionAutoscalersListCall {
78225	c.ctx_ = ctx
78226	return c
78227}
78228
78229// Header returns an http.Header that can be modified by the caller to
78230// add HTTP headers to the request.
78231func (c *RegionAutoscalersListCall) Header() http.Header {
78232	if c.header_ == nil {
78233		c.header_ = make(http.Header)
78234	}
78235	return c.header_
78236}
78237
78238func (c *RegionAutoscalersListCall) doRequest(alt string) (*http.Response, error) {
78239	reqHeaders := make(http.Header)
78240	for k, v := range c.header_ {
78241		reqHeaders[k] = v
78242	}
78243	reqHeaders.Set("User-Agent", c.s.userAgent())
78244	if c.ifNoneMatch_ != "" {
78245		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78246	}
78247	var body io.Reader = nil
78248	c.urlParams_.Set("alt", alt)
78249	c.urlParams_.Set("prettyPrint", "false")
78250	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
78251	urls += "?" + c.urlParams_.Encode()
78252	req, err := http.NewRequest("GET", urls, body)
78253	if err != nil {
78254		return nil, err
78255	}
78256	req.Header = reqHeaders
78257	googleapi.Expand(req.URL, map[string]string{
78258		"project": c.project,
78259		"region":  c.region,
78260	})
78261	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78262}
78263
78264// Do executes the "compute.regionAutoscalers.list" call.
78265// Exactly one of *RegionAutoscalerList or error will be non-nil. Any
78266// non-2xx status code is an error. Response headers are in either
78267// *RegionAutoscalerList.ServerResponse.Header or (if a response was
78268// returned at all) in error.(*googleapi.Error).Header. Use
78269// googleapi.IsNotModified to check whether the returned error was
78270// because http.StatusNotModified was returned.
78271func (c *RegionAutoscalersListCall) Do(opts ...googleapi.CallOption) (*RegionAutoscalerList, error) {
78272	gensupport.SetOptions(c.urlParams_, opts...)
78273	res, err := c.doRequest("json")
78274	if res != nil && res.StatusCode == http.StatusNotModified {
78275		if res.Body != nil {
78276			res.Body.Close()
78277		}
78278		return nil, &googleapi.Error{
78279			Code:   res.StatusCode,
78280			Header: res.Header,
78281		}
78282	}
78283	if err != nil {
78284		return nil, err
78285	}
78286	defer googleapi.CloseBody(res)
78287	if err := googleapi.CheckResponse(res); err != nil {
78288		return nil, err
78289	}
78290	ret := &RegionAutoscalerList{
78291		ServerResponse: googleapi.ServerResponse{
78292			Header:         res.Header,
78293			HTTPStatusCode: res.StatusCode,
78294		},
78295	}
78296	target := &ret
78297	if err := gensupport.DecodeResponse(target, res); err != nil {
78298		return nil, err
78299	}
78300	return ret, nil
78301	// {
78302	//   "description": "Retrieves a list of autoscalers contained within the specified region.",
78303	//   "httpMethod": "GET",
78304	//   "id": "compute.regionAutoscalers.list",
78305	//   "parameterOrder": [
78306	//     "project",
78307	//     "region"
78308	//   ],
78309	//   "parameters": {
78310	//     "filter": {
78311	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
78312	//       "location": "query",
78313	//       "type": "string"
78314	//     },
78315	//     "maxResults": {
78316	//       "default": "500",
78317	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
78318	//       "format": "uint32",
78319	//       "location": "query",
78320	//       "minimum": "0",
78321	//       "type": "integer"
78322	//     },
78323	//     "orderBy": {
78324	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
78325	//       "location": "query",
78326	//       "type": "string"
78327	//     },
78328	//     "pageToken": {
78329	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
78330	//       "location": "query",
78331	//       "type": "string"
78332	//     },
78333	//     "project": {
78334	//       "description": "Project ID for this request.",
78335	//       "location": "path",
78336	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78337	//       "required": true,
78338	//       "type": "string"
78339	//     },
78340	//     "region": {
78341	//       "description": "Name of the region scoping this request.",
78342	//       "location": "path",
78343	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78344	//       "required": true,
78345	//       "type": "string"
78346	//     }
78347	//   },
78348	//   "path": "{project}/regions/{region}/autoscalers",
78349	//   "response": {
78350	//     "$ref": "RegionAutoscalerList"
78351	//   },
78352	//   "scopes": [
78353	//     "https://www.googleapis.com/auth/cloud-platform",
78354	//     "https://www.googleapis.com/auth/compute",
78355	//     "https://www.googleapis.com/auth/compute.readonly"
78356	//   ]
78357	// }
78358
78359}
78360
78361// Pages invokes f for each page of results.
78362// A non-nil error returned from f will halt the iteration.
78363// The provided context supersedes any context provided to the Context method.
78364func (c *RegionAutoscalersListCall) Pages(ctx context.Context, f func(*RegionAutoscalerList) error) error {
78365	c.ctx_ = ctx
78366	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
78367	for {
78368		x, err := c.Do()
78369		if err != nil {
78370			return err
78371		}
78372		if err := f(x); err != nil {
78373			return err
78374		}
78375		if x.NextPageToken == "" {
78376			return nil
78377		}
78378		c.PageToken(x.NextPageToken)
78379	}
78380}
78381
78382// method id "compute.regionAutoscalers.patch":
78383
78384type RegionAutoscalersPatchCall struct {
78385	s          *Service
78386	project    string
78387	region     string
78388	autoscaler *Autoscaler
78389	urlParams_ gensupport.URLParams
78390	ctx_       context.Context
78391	header_    http.Header
78392}
78393
78394// Patch: Updates an autoscaler in the specified project using the data
78395// included in the request. This method supports PATCH semantics and
78396// uses the JSON merge patch format and processing rules.
78397func (r *RegionAutoscalersService) Patch(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersPatchCall {
78398	c := &RegionAutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78399	c.project = project
78400	c.region = region
78401	c.autoscaler = autoscaler
78402	return c
78403}
78404
78405// Autoscaler sets the optional parameter "autoscaler": Name of the
78406// autoscaler to patch.
78407func (c *RegionAutoscalersPatchCall) Autoscaler(autoscaler string) *RegionAutoscalersPatchCall {
78408	c.urlParams_.Set("autoscaler", autoscaler)
78409	return c
78410}
78411
78412// RequestId sets the optional parameter "requestId": An optional
78413// request ID to identify requests. Specify a unique request ID so that
78414// if you must retry your request, the server will know to ignore the
78415// request if it has already been completed.
78416//
78417// For example, consider a situation where you make an initial request
78418// and the request times out. If you make the request again with the
78419// same request ID, the server can check if original operation with the
78420// same request ID was received, and if so, will ignore the second
78421// request. This prevents clients from accidentally creating duplicate
78422// commitments.
78423//
78424// The request ID must be a valid UUID with the exception that zero UUID
78425// is not supported (00000000-0000-0000-0000-000000000000).
78426func (c *RegionAutoscalersPatchCall) RequestId(requestId string) *RegionAutoscalersPatchCall {
78427	c.urlParams_.Set("requestId", requestId)
78428	return c
78429}
78430
78431// Fields allows partial responses to be retrieved. See
78432// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78433// for more information.
78434func (c *RegionAutoscalersPatchCall) Fields(s ...googleapi.Field) *RegionAutoscalersPatchCall {
78435	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78436	return c
78437}
78438
78439// Context sets the context to be used in this call's Do method. Any
78440// pending HTTP request will be aborted if the provided context is
78441// canceled.
78442func (c *RegionAutoscalersPatchCall) Context(ctx context.Context) *RegionAutoscalersPatchCall {
78443	c.ctx_ = ctx
78444	return c
78445}
78446
78447// Header returns an http.Header that can be modified by the caller to
78448// add HTTP headers to the request.
78449func (c *RegionAutoscalersPatchCall) Header() http.Header {
78450	if c.header_ == nil {
78451		c.header_ = make(http.Header)
78452	}
78453	return c.header_
78454}
78455
78456func (c *RegionAutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
78457	reqHeaders := make(http.Header)
78458	for k, v := range c.header_ {
78459		reqHeaders[k] = v
78460	}
78461	reqHeaders.Set("User-Agent", c.s.userAgent())
78462	var body io.Reader = nil
78463	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
78464	if err != nil {
78465		return nil, err
78466	}
78467	reqHeaders.Set("Content-Type", "application/json")
78468	c.urlParams_.Set("alt", alt)
78469	c.urlParams_.Set("prettyPrint", "false")
78470	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
78471	urls += "?" + c.urlParams_.Encode()
78472	req, err := http.NewRequest("PATCH", urls, body)
78473	if err != nil {
78474		return nil, err
78475	}
78476	req.Header = reqHeaders
78477	googleapi.Expand(req.URL, map[string]string{
78478		"project": c.project,
78479		"region":  c.region,
78480	})
78481	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78482}
78483
78484// Do executes the "compute.regionAutoscalers.patch" call.
78485// Exactly one of *Operation or error will be non-nil. Any non-2xx
78486// status code is an error. Response headers are in either
78487// *Operation.ServerResponse.Header or (if a response was returned at
78488// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78489// to check whether the returned error was because
78490// http.StatusNotModified was returned.
78491func (c *RegionAutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78492	gensupport.SetOptions(c.urlParams_, opts...)
78493	res, err := c.doRequest("json")
78494	if res != nil && res.StatusCode == http.StatusNotModified {
78495		if res.Body != nil {
78496			res.Body.Close()
78497		}
78498		return nil, &googleapi.Error{
78499			Code:   res.StatusCode,
78500			Header: res.Header,
78501		}
78502	}
78503	if err != nil {
78504		return nil, err
78505	}
78506	defer googleapi.CloseBody(res)
78507	if err := googleapi.CheckResponse(res); err != nil {
78508		return nil, err
78509	}
78510	ret := &Operation{
78511		ServerResponse: googleapi.ServerResponse{
78512			Header:         res.Header,
78513			HTTPStatusCode: res.StatusCode,
78514		},
78515	}
78516	target := &ret
78517	if err := gensupport.DecodeResponse(target, res); err != nil {
78518		return nil, err
78519	}
78520	return ret, nil
78521	// {
78522	//   "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.",
78523	//   "httpMethod": "PATCH",
78524	//   "id": "compute.regionAutoscalers.patch",
78525	//   "parameterOrder": [
78526	//     "project",
78527	//     "region"
78528	//   ],
78529	//   "parameters": {
78530	//     "autoscaler": {
78531	//       "description": "Name of the autoscaler to patch.",
78532	//       "location": "query",
78533	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78534	//       "type": "string"
78535	//     },
78536	//     "project": {
78537	//       "description": "Project ID for this request.",
78538	//       "location": "path",
78539	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78540	//       "required": true,
78541	//       "type": "string"
78542	//     },
78543	//     "region": {
78544	//       "description": "Name of the region scoping this request.",
78545	//       "location": "path",
78546	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78547	//       "required": true,
78548	//       "type": "string"
78549	//     },
78550	//     "requestId": {
78551	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78552	//       "location": "query",
78553	//       "type": "string"
78554	//     }
78555	//   },
78556	//   "path": "{project}/regions/{region}/autoscalers",
78557	//   "request": {
78558	//     "$ref": "Autoscaler"
78559	//   },
78560	//   "response": {
78561	//     "$ref": "Operation"
78562	//   },
78563	//   "scopes": [
78564	//     "https://www.googleapis.com/auth/cloud-platform",
78565	//     "https://www.googleapis.com/auth/compute"
78566	//   ]
78567	// }
78568
78569}
78570
78571// method id "compute.regionAutoscalers.update":
78572
78573type RegionAutoscalersUpdateCall struct {
78574	s          *Service
78575	project    string
78576	region     string
78577	autoscaler *Autoscaler
78578	urlParams_ gensupport.URLParams
78579	ctx_       context.Context
78580	header_    http.Header
78581}
78582
78583// Update: Updates an autoscaler in the specified project using the data
78584// included in the request.
78585func (r *RegionAutoscalersService) Update(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersUpdateCall {
78586	c := &RegionAutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78587	c.project = project
78588	c.region = region
78589	c.autoscaler = autoscaler
78590	return c
78591}
78592
78593// Autoscaler sets the optional parameter "autoscaler": Name of the
78594// autoscaler to update.
78595func (c *RegionAutoscalersUpdateCall) Autoscaler(autoscaler string) *RegionAutoscalersUpdateCall {
78596	c.urlParams_.Set("autoscaler", autoscaler)
78597	return c
78598}
78599
78600// RequestId sets the optional parameter "requestId": An optional
78601// request ID to identify requests. Specify a unique request ID so that
78602// if you must retry your request, the server will know to ignore the
78603// request if it has already been completed.
78604//
78605// For example, consider a situation where you make an initial request
78606// and the request times out. If you make the request again with the
78607// same request ID, the server can check if original operation with the
78608// same request ID was received, and if so, will ignore the second
78609// request. This prevents clients from accidentally creating duplicate
78610// commitments.
78611//
78612// The request ID must be a valid UUID with the exception that zero UUID
78613// is not supported (00000000-0000-0000-0000-000000000000).
78614func (c *RegionAutoscalersUpdateCall) RequestId(requestId string) *RegionAutoscalersUpdateCall {
78615	c.urlParams_.Set("requestId", requestId)
78616	return c
78617}
78618
78619// Fields allows partial responses to be retrieved. See
78620// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78621// for more information.
78622func (c *RegionAutoscalersUpdateCall) Fields(s ...googleapi.Field) *RegionAutoscalersUpdateCall {
78623	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78624	return c
78625}
78626
78627// Context sets the context to be used in this call's Do method. Any
78628// pending HTTP request will be aborted if the provided context is
78629// canceled.
78630func (c *RegionAutoscalersUpdateCall) Context(ctx context.Context) *RegionAutoscalersUpdateCall {
78631	c.ctx_ = ctx
78632	return c
78633}
78634
78635// Header returns an http.Header that can be modified by the caller to
78636// add HTTP headers to the request.
78637func (c *RegionAutoscalersUpdateCall) Header() http.Header {
78638	if c.header_ == nil {
78639		c.header_ = make(http.Header)
78640	}
78641	return c.header_
78642}
78643
78644func (c *RegionAutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
78645	reqHeaders := make(http.Header)
78646	for k, v := range c.header_ {
78647		reqHeaders[k] = v
78648	}
78649	reqHeaders.Set("User-Agent", c.s.userAgent())
78650	var body io.Reader = nil
78651	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
78652	if err != nil {
78653		return nil, err
78654	}
78655	reqHeaders.Set("Content-Type", "application/json")
78656	c.urlParams_.Set("alt", alt)
78657	c.urlParams_.Set("prettyPrint", "false")
78658	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
78659	urls += "?" + c.urlParams_.Encode()
78660	req, err := http.NewRequest("PUT", urls, body)
78661	if err != nil {
78662		return nil, err
78663	}
78664	req.Header = reqHeaders
78665	googleapi.Expand(req.URL, map[string]string{
78666		"project": c.project,
78667		"region":  c.region,
78668	})
78669	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78670}
78671
78672// Do executes the "compute.regionAutoscalers.update" call.
78673// Exactly one of *Operation or error will be non-nil. Any non-2xx
78674// status code is an error. Response headers are in either
78675// *Operation.ServerResponse.Header or (if a response was returned at
78676// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78677// to check whether the returned error was because
78678// http.StatusNotModified was returned.
78679func (c *RegionAutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78680	gensupport.SetOptions(c.urlParams_, opts...)
78681	res, err := c.doRequest("json")
78682	if res != nil && res.StatusCode == http.StatusNotModified {
78683		if res.Body != nil {
78684			res.Body.Close()
78685		}
78686		return nil, &googleapi.Error{
78687			Code:   res.StatusCode,
78688			Header: res.Header,
78689		}
78690	}
78691	if err != nil {
78692		return nil, err
78693	}
78694	defer googleapi.CloseBody(res)
78695	if err := googleapi.CheckResponse(res); err != nil {
78696		return nil, err
78697	}
78698	ret := &Operation{
78699		ServerResponse: googleapi.ServerResponse{
78700			Header:         res.Header,
78701			HTTPStatusCode: res.StatusCode,
78702		},
78703	}
78704	target := &ret
78705	if err := gensupport.DecodeResponse(target, res); err != nil {
78706		return nil, err
78707	}
78708	return ret, nil
78709	// {
78710	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
78711	//   "httpMethod": "PUT",
78712	//   "id": "compute.regionAutoscalers.update",
78713	//   "parameterOrder": [
78714	//     "project",
78715	//     "region"
78716	//   ],
78717	//   "parameters": {
78718	//     "autoscaler": {
78719	//       "description": "Name of the autoscaler to update.",
78720	//       "location": "query",
78721	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78722	//       "type": "string"
78723	//     },
78724	//     "project": {
78725	//       "description": "Project ID for this request.",
78726	//       "location": "path",
78727	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78728	//       "required": true,
78729	//       "type": "string"
78730	//     },
78731	//     "region": {
78732	//       "description": "Name of the region scoping this request.",
78733	//       "location": "path",
78734	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78735	//       "required": true,
78736	//       "type": "string"
78737	//     },
78738	//     "requestId": {
78739	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78740	//       "location": "query",
78741	//       "type": "string"
78742	//     }
78743	//   },
78744	//   "path": "{project}/regions/{region}/autoscalers",
78745	//   "request": {
78746	//     "$ref": "Autoscaler"
78747	//   },
78748	//   "response": {
78749	//     "$ref": "Operation"
78750	//   },
78751	//   "scopes": [
78752	//     "https://www.googleapis.com/auth/cloud-platform",
78753	//     "https://www.googleapis.com/auth/compute"
78754	//   ]
78755	// }
78756
78757}
78758
78759// method id "compute.regionBackendServices.delete":
78760
78761type RegionBackendServicesDeleteCall struct {
78762	s              *Service
78763	project        string
78764	region         string
78765	backendService string
78766	urlParams_     gensupport.URLParams
78767	ctx_           context.Context
78768	header_        http.Header
78769}
78770
78771// Delete: Deletes the specified regional BackendService resource.
78772func (r *RegionBackendServicesService) Delete(project string, region string, backendService string) *RegionBackendServicesDeleteCall {
78773	c := &RegionBackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78774	c.project = project
78775	c.region = region
78776	c.backendService = backendService
78777	return c
78778}
78779
78780// RequestId sets the optional parameter "requestId": An optional
78781// request ID to identify requests. Specify a unique request ID so that
78782// if you must retry your request, the server will know to ignore the
78783// request if it has already been completed.
78784//
78785// For example, consider a situation where you make an initial request
78786// and the request times out. If you make the request again with the
78787// same request ID, the server can check if original operation with the
78788// same request ID was received, and if so, will ignore the second
78789// request. This prevents clients from accidentally creating duplicate
78790// commitments.
78791//
78792// The request ID must be a valid UUID with the exception that zero UUID
78793// is not supported (00000000-0000-0000-0000-000000000000).
78794func (c *RegionBackendServicesDeleteCall) RequestId(requestId string) *RegionBackendServicesDeleteCall {
78795	c.urlParams_.Set("requestId", requestId)
78796	return c
78797}
78798
78799// Fields allows partial responses to be retrieved. See
78800// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78801// for more information.
78802func (c *RegionBackendServicesDeleteCall) Fields(s ...googleapi.Field) *RegionBackendServicesDeleteCall {
78803	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78804	return c
78805}
78806
78807// Context sets the context to be used in this call's Do method. Any
78808// pending HTTP request will be aborted if the provided context is
78809// canceled.
78810func (c *RegionBackendServicesDeleteCall) Context(ctx context.Context) *RegionBackendServicesDeleteCall {
78811	c.ctx_ = ctx
78812	return c
78813}
78814
78815// Header returns an http.Header that can be modified by the caller to
78816// add HTTP headers to the request.
78817func (c *RegionBackendServicesDeleteCall) Header() http.Header {
78818	if c.header_ == nil {
78819		c.header_ = make(http.Header)
78820	}
78821	return c.header_
78822}
78823
78824func (c *RegionBackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
78825	reqHeaders := make(http.Header)
78826	for k, v := range c.header_ {
78827		reqHeaders[k] = v
78828	}
78829	reqHeaders.Set("User-Agent", c.s.userAgent())
78830	var body io.Reader = nil
78831	c.urlParams_.Set("alt", alt)
78832	c.urlParams_.Set("prettyPrint", "false")
78833	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
78834	urls += "?" + c.urlParams_.Encode()
78835	req, err := http.NewRequest("DELETE", urls, body)
78836	if err != nil {
78837		return nil, err
78838	}
78839	req.Header = reqHeaders
78840	googleapi.Expand(req.URL, map[string]string{
78841		"project":        c.project,
78842		"region":         c.region,
78843		"backendService": c.backendService,
78844	})
78845	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78846}
78847
78848// Do executes the "compute.regionBackendServices.delete" call.
78849// Exactly one of *Operation or error will be non-nil. Any non-2xx
78850// status code is an error. Response headers are in either
78851// *Operation.ServerResponse.Header or (if a response was returned at
78852// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78853// to check whether the returned error was because
78854// http.StatusNotModified was returned.
78855func (c *RegionBackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78856	gensupport.SetOptions(c.urlParams_, opts...)
78857	res, err := c.doRequest("json")
78858	if res != nil && res.StatusCode == http.StatusNotModified {
78859		if res.Body != nil {
78860			res.Body.Close()
78861		}
78862		return nil, &googleapi.Error{
78863			Code:   res.StatusCode,
78864			Header: res.Header,
78865		}
78866	}
78867	if err != nil {
78868		return nil, err
78869	}
78870	defer googleapi.CloseBody(res)
78871	if err := googleapi.CheckResponse(res); err != nil {
78872		return nil, err
78873	}
78874	ret := &Operation{
78875		ServerResponse: googleapi.ServerResponse{
78876			Header:         res.Header,
78877			HTTPStatusCode: res.StatusCode,
78878		},
78879	}
78880	target := &ret
78881	if err := gensupport.DecodeResponse(target, res); err != nil {
78882		return nil, err
78883	}
78884	return ret, nil
78885	// {
78886	//   "description": "Deletes the specified regional BackendService resource.",
78887	//   "httpMethod": "DELETE",
78888	//   "id": "compute.regionBackendServices.delete",
78889	//   "parameterOrder": [
78890	//     "project",
78891	//     "region",
78892	//     "backendService"
78893	//   ],
78894	//   "parameters": {
78895	//     "backendService": {
78896	//       "description": "Name of the BackendService resource to delete.",
78897	//       "location": "path",
78898	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78899	//       "required": true,
78900	//       "type": "string"
78901	//     },
78902	//     "project": {
78903	//       "description": "Project ID for this request.",
78904	//       "location": "path",
78905	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78906	//       "required": true,
78907	//       "type": "string"
78908	//     },
78909	//     "region": {
78910	//       "description": "Name of the region scoping this request.",
78911	//       "location": "path",
78912	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78913	//       "required": true,
78914	//       "type": "string"
78915	//     },
78916	//     "requestId": {
78917	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78918	//       "location": "query",
78919	//       "type": "string"
78920	//     }
78921	//   },
78922	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
78923	//   "response": {
78924	//     "$ref": "Operation"
78925	//   },
78926	//   "scopes": [
78927	//     "https://www.googleapis.com/auth/cloud-platform",
78928	//     "https://www.googleapis.com/auth/compute"
78929	//   ]
78930	// }
78931
78932}
78933
78934// method id "compute.regionBackendServices.get":
78935
78936type RegionBackendServicesGetCall struct {
78937	s              *Service
78938	project        string
78939	region         string
78940	backendService string
78941	urlParams_     gensupport.URLParams
78942	ifNoneMatch_   string
78943	ctx_           context.Context
78944	header_        http.Header
78945}
78946
78947// Get: Returns the specified regional BackendService resource.
78948func (r *RegionBackendServicesService) Get(project string, region string, backendService string) *RegionBackendServicesGetCall {
78949	c := &RegionBackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78950	c.project = project
78951	c.region = region
78952	c.backendService = backendService
78953	return c
78954}
78955
78956// Fields allows partial responses to be retrieved. See
78957// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78958// for more information.
78959func (c *RegionBackendServicesGetCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetCall {
78960	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78961	return c
78962}
78963
78964// IfNoneMatch sets the optional parameter which makes the operation
78965// fail if the object's ETag matches the given value. This is useful for
78966// getting updates only after the object has changed since the last
78967// request. Use googleapi.IsNotModified to check whether the response
78968// error from Do is the result of In-None-Match.
78969func (c *RegionBackendServicesGetCall) IfNoneMatch(entityTag string) *RegionBackendServicesGetCall {
78970	c.ifNoneMatch_ = entityTag
78971	return c
78972}
78973
78974// Context sets the context to be used in this call's Do method. Any
78975// pending HTTP request will be aborted if the provided context is
78976// canceled.
78977func (c *RegionBackendServicesGetCall) Context(ctx context.Context) *RegionBackendServicesGetCall {
78978	c.ctx_ = ctx
78979	return c
78980}
78981
78982// Header returns an http.Header that can be modified by the caller to
78983// add HTTP headers to the request.
78984func (c *RegionBackendServicesGetCall) Header() http.Header {
78985	if c.header_ == nil {
78986		c.header_ = make(http.Header)
78987	}
78988	return c.header_
78989}
78990
78991func (c *RegionBackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
78992	reqHeaders := make(http.Header)
78993	for k, v := range c.header_ {
78994		reqHeaders[k] = v
78995	}
78996	reqHeaders.Set("User-Agent", c.s.userAgent())
78997	if c.ifNoneMatch_ != "" {
78998		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78999	}
79000	var body io.Reader = nil
79001	c.urlParams_.Set("alt", alt)
79002	c.urlParams_.Set("prettyPrint", "false")
79003	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
79004	urls += "?" + c.urlParams_.Encode()
79005	req, err := http.NewRequest("GET", urls, body)
79006	if err != nil {
79007		return nil, err
79008	}
79009	req.Header = reqHeaders
79010	googleapi.Expand(req.URL, map[string]string{
79011		"project":        c.project,
79012		"region":         c.region,
79013		"backendService": c.backendService,
79014	})
79015	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79016}
79017
79018// Do executes the "compute.regionBackendServices.get" call.
79019// Exactly one of *BackendService or error will be non-nil. Any non-2xx
79020// status code is an error. Response headers are in either
79021// *BackendService.ServerResponse.Header or (if a response was returned
79022// at all) in error.(*googleapi.Error).Header. Use
79023// googleapi.IsNotModified to check whether the returned error was
79024// because http.StatusNotModified was returned.
79025func (c *RegionBackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
79026	gensupport.SetOptions(c.urlParams_, opts...)
79027	res, err := c.doRequest("json")
79028	if res != nil && res.StatusCode == http.StatusNotModified {
79029		if res.Body != nil {
79030			res.Body.Close()
79031		}
79032		return nil, &googleapi.Error{
79033			Code:   res.StatusCode,
79034			Header: res.Header,
79035		}
79036	}
79037	if err != nil {
79038		return nil, err
79039	}
79040	defer googleapi.CloseBody(res)
79041	if err := googleapi.CheckResponse(res); err != nil {
79042		return nil, err
79043	}
79044	ret := &BackendService{
79045		ServerResponse: googleapi.ServerResponse{
79046			Header:         res.Header,
79047			HTTPStatusCode: res.StatusCode,
79048		},
79049	}
79050	target := &ret
79051	if err := gensupport.DecodeResponse(target, res); err != nil {
79052		return nil, err
79053	}
79054	return ret, nil
79055	// {
79056	//   "description": "Returns the specified regional BackendService resource.",
79057	//   "httpMethod": "GET",
79058	//   "id": "compute.regionBackendServices.get",
79059	//   "parameterOrder": [
79060	//     "project",
79061	//     "region",
79062	//     "backendService"
79063	//   ],
79064	//   "parameters": {
79065	//     "backendService": {
79066	//       "description": "Name of the BackendService resource to return.",
79067	//       "location": "path",
79068	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79069	//       "required": true,
79070	//       "type": "string"
79071	//     },
79072	//     "project": {
79073	//       "description": "Project ID for this request.",
79074	//       "location": "path",
79075	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79076	//       "required": true,
79077	//       "type": "string"
79078	//     },
79079	//     "region": {
79080	//       "description": "Name of the region scoping this request.",
79081	//       "location": "path",
79082	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79083	//       "required": true,
79084	//       "type": "string"
79085	//     }
79086	//   },
79087	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
79088	//   "response": {
79089	//     "$ref": "BackendService"
79090	//   },
79091	//   "scopes": [
79092	//     "https://www.googleapis.com/auth/cloud-platform",
79093	//     "https://www.googleapis.com/auth/compute",
79094	//     "https://www.googleapis.com/auth/compute.readonly"
79095	//   ]
79096	// }
79097
79098}
79099
79100// method id "compute.regionBackendServices.getHealth":
79101
79102type RegionBackendServicesGetHealthCall struct {
79103	s                      *Service
79104	project                string
79105	region                 string
79106	backendService         string
79107	resourcegroupreference *ResourceGroupReference
79108	urlParams_             gensupport.URLParams
79109	ctx_                   context.Context
79110	header_                http.Header
79111}
79112
79113// GetHealth: Gets the most recent health check results for this
79114// regional BackendService.
79115func (r *RegionBackendServicesService) GetHealth(project string, region string, backendService string, resourcegroupreference *ResourceGroupReference) *RegionBackendServicesGetHealthCall {
79116	c := &RegionBackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79117	c.project = project
79118	c.region = region
79119	c.backendService = backendService
79120	c.resourcegroupreference = resourcegroupreference
79121	return c
79122}
79123
79124// Fields allows partial responses to be retrieved. See
79125// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79126// for more information.
79127func (c *RegionBackendServicesGetHealthCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetHealthCall {
79128	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79129	return c
79130}
79131
79132// Context sets the context to be used in this call's Do method. Any
79133// pending HTTP request will be aborted if the provided context is
79134// canceled.
79135func (c *RegionBackendServicesGetHealthCall) Context(ctx context.Context) *RegionBackendServicesGetHealthCall {
79136	c.ctx_ = ctx
79137	return c
79138}
79139
79140// Header returns an http.Header that can be modified by the caller to
79141// add HTTP headers to the request.
79142func (c *RegionBackendServicesGetHealthCall) Header() http.Header {
79143	if c.header_ == nil {
79144		c.header_ = make(http.Header)
79145	}
79146	return c.header_
79147}
79148
79149func (c *RegionBackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
79150	reqHeaders := make(http.Header)
79151	for k, v := range c.header_ {
79152		reqHeaders[k] = v
79153	}
79154	reqHeaders.Set("User-Agent", c.s.userAgent())
79155	var body io.Reader = nil
79156	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
79157	if err != nil {
79158		return nil, err
79159	}
79160	reqHeaders.Set("Content-Type", "application/json")
79161	c.urlParams_.Set("alt", alt)
79162	c.urlParams_.Set("prettyPrint", "false")
79163	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}/getHealth")
79164	urls += "?" + c.urlParams_.Encode()
79165	req, err := http.NewRequest("POST", urls, body)
79166	if err != nil {
79167		return nil, err
79168	}
79169	req.Header = reqHeaders
79170	googleapi.Expand(req.URL, map[string]string{
79171		"project":        c.project,
79172		"region":         c.region,
79173		"backendService": c.backendService,
79174	})
79175	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79176}
79177
79178// Do executes the "compute.regionBackendServices.getHealth" call.
79179// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
79180// Any non-2xx status code is an error. Response headers are in either
79181// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
79182// was returned at all) in error.(*googleapi.Error).Header. Use
79183// googleapi.IsNotModified to check whether the returned error was
79184// because http.StatusNotModified was returned.
79185func (c *RegionBackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
79186	gensupport.SetOptions(c.urlParams_, opts...)
79187	res, err := c.doRequest("json")
79188	if res != nil && res.StatusCode == http.StatusNotModified {
79189		if res.Body != nil {
79190			res.Body.Close()
79191		}
79192		return nil, &googleapi.Error{
79193			Code:   res.StatusCode,
79194			Header: res.Header,
79195		}
79196	}
79197	if err != nil {
79198		return nil, err
79199	}
79200	defer googleapi.CloseBody(res)
79201	if err := googleapi.CheckResponse(res); err != nil {
79202		return nil, err
79203	}
79204	ret := &BackendServiceGroupHealth{
79205		ServerResponse: googleapi.ServerResponse{
79206			Header:         res.Header,
79207			HTTPStatusCode: res.StatusCode,
79208		},
79209	}
79210	target := &ret
79211	if err := gensupport.DecodeResponse(target, res); err != nil {
79212		return nil, err
79213	}
79214	return ret, nil
79215	// {
79216	//   "description": "Gets the most recent health check results for this regional BackendService.",
79217	//   "httpMethod": "POST",
79218	//   "id": "compute.regionBackendServices.getHealth",
79219	//   "parameterOrder": [
79220	//     "project",
79221	//     "region",
79222	//     "backendService"
79223	//   ],
79224	//   "parameters": {
79225	//     "backendService": {
79226	//       "description": "Name of the BackendService resource for which to get health.",
79227	//       "location": "path",
79228	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79229	//       "required": true,
79230	//       "type": "string"
79231	//     },
79232	//     "project": {
79233	//       "location": "path",
79234	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79235	//       "required": true,
79236	//       "type": "string"
79237	//     },
79238	//     "region": {
79239	//       "description": "Name of the region scoping this request.",
79240	//       "location": "path",
79241	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79242	//       "required": true,
79243	//       "type": "string"
79244	//     }
79245	//   },
79246	//   "path": "{project}/regions/{region}/backendServices/{backendService}/getHealth",
79247	//   "request": {
79248	//     "$ref": "ResourceGroupReference"
79249	//   },
79250	//   "response": {
79251	//     "$ref": "BackendServiceGroupHealth"
79252	//   },
79253	//   "scopes": [
79254	//     "https://www.googleapis.com/auth/cloud-platform",
79255	//     "https://www.googleapis.com/auth/compute",
79256	//     "https://www.googleapis.com/auth/compute.readonly"
79257	//   ]
79258	// }
79259
79260}
79261
79262// method id "compute.regionBackendServices.insert":
79263
79264type RegionBackendServicesInsertCall struct {
79265	s              *Service
79266	project        string
79267	region         string
79268	backendservice *BackendService
79269	urlParams_     gensupport.URLParams
79270	ctx_           context.Context
79271	header_        http.Header
79272}
79273
79274// Insert: Creates a regional BackendService resource in the specified
79275// project using the data included in the request. There are several
79276// restrictions and guidelines to keep in mind when creating a regional
79277// backend service. Read  Restrictions and Guidelines for more
79278// information.
79279func (r *RegionBackendServicesService) Insert(project string, region string, backendservice *BackendService) *RegionBackendServicesInsertCall {
79280	c := &RegionBackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79281	c.project = project
79282	c.region = region
79283	c.backendservice = backendservice
79284	return c
79285}
79286
79287// RequestId sets the optional parameter "requestId": An optional
79288// request ID to identify requests. Specify a unique request ID so that
79289// if you must retry your request, the server will know to ignore the
79290// request if it has already been completed.
79291//
79292// For example, consider a situation where you make an initial request
79293// and the request times out. If you make the request again with the
79294// same request ID, the server can check if original operation with the
79295// same request ID was received, and if so, will ignore the second
79296// request. This prevents clients from accidentally creating duplicate
79297// commitments.
79298//
79299// The request ID must be a valid UUID with the exception that zero UUID
79300// is not supported (00000000-0000-0000-0000-000000000000).
79301func (c *RegionBackendServicesInsertCall) RequestId(requestId string) *RegionBackendServicesInsertCall {
79302	c.urlParams_.Set("requestId", requestId)
79303	return c
79304}
79305
79306// Fields allows partial responses to be retrieved. See
79307// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79308// for more information.
79309func (c *RegionBackendServicesInsertCall) Fields(s ...googleapi.Field) *RegionBackendServicesInsertCall {
79310	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79311	return c
79312}
79313
79314// Context sets the context to be used in this call's Do method. Any
79315// pending HTTP request will be aborted if the provided context is
79316// canceled.
79317func (c *RegionBackendServicesInsertCall) Context(ctx context.Context) *RegionBackendServicesInsertCall {
79318	c.ctx_ = ctx
79319	return c
79320}
79321
79322// Header returns an http.Header that can be modified by the caller to
79323// add HTTP headers to the request.
79324func (c *RegionBackendServicesInsertCall) Header() http.Header {
79325	if c.header_ == nil {
79326		c.header_ = make(http.Header)
79327	}
79328	return c.header_
79329}
79330
79331func (c *RegionBackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
79332	reqHeaders := make(http.Header)
79333	for k, v := range c.header_ {
79334		reqHeaders[k] = v
79335	}
79336	reqHeaders.Set("User-Agent", c.s.userAgent())
79337	var body io.Reader = nil
79338	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
79339	if err != nil {
79340		return nil, err
79341	}
79342	reqHeaders.Set("Content-Type", "application/json")
79343	c.urlParams_.Set("alt", alt)
79344	c.urlParams_.Set("prettyPrint", "false")
79345	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices")
79346	urls += "?" + c.urlParams_.Encode()
79347	req, err := http.NewRequest("POST", urls, body)
79348	if err != nil {
79349		return nil, err
79350	}
79351	req.Header = reqHeaders
79352	googleapi.Expand(req.URL, map[string]string{
79353		"project": c.project,
79354		"region":  c.region,
79355	})
79356	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79357}
79358
79359// Do executes the "compute.regionBackendServices.insert" call.
79360// Exactly one of *Operation or error will be non-nil. Any non-2xx
79361// status code is an error. Response headers are in either
79362// *Operation.ServerResponse.Header or (if a response was returned at
79363// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79364// to check whether the returned error was because
79365// http.StatusNotModified was returned.
79366func (c *RegionBackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79367	gensupport.SetOptions(c.urlParams_, opts...)
79368	res, err := c.doRequest("json")
79369	if res != nil && res.StatusCode == http.StatusNotModified {
79370		if res.Body != nil {
79371			res.Body.Close()
79372		}
79373		return nil, &googleapi.Error{
79374			Code:   res.StatusCode,
79375			Header: res.Header,
79376		}
79377	}
79378	if err != nil {
79379		return nil, err
79380	}
79381	defer googleapi.CloseBody(res)
79382	if err := googleapi.CheckResponse(res); err != nil {
79383		return nil, err
79384	}
79385	ret := &Operation{
79386		ServerResponse: googleapi.ServerResponse{
79387			Header:         res.Header,
79388			HTTPStatusCode: res.StatusCode,
79389		},
79390	}
79391	target := &ret
79392	if err := gensupport.DecodeResponse(target, res); err != nil {
79393		return nil, err
79394	}
79395	return ret, nil
79396	// {
79397	//   "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.",
79398	//   "httpMethod": "POST",
79399	//   "id": "compute.regionBackendServices.insert",
79400	//   "parameterOrder": [
79401	//     "project",
79402	//     "region"
79403	//   ],
79404	//   "parameters": {
79405	//     "project": {
79406	//       "description": "Project ID for this request.",
79407	//       "location": "path",
79408	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79409	//       "required": true,
79410	//       "type": "string"
79411	//     },
79412	//     "region": {
79413	//       "description": "Name of the region scoping this request.",
79414	//       "location": "path",
79415	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79416	//       "required": true,
79417	//       "type": "string"
79418	//     },
79419	//     "requestId": {
79420	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79421	//       "location": "query",
79422	//       "type": "string"
79423	//     }
79424	//   },
79425	//   "path": "{project}/regions/{region}/backendServices",
79426	//   "request": {
79427	//     "$ref": "BackendService"
79428	//   },
79429	//   "response": {
79430	//     "$ref": "Operation"
79431	//   },
79432	//   "scopes": [
79433	//     "https://www.googleapis.com/auth/cloud-platform",
79434	//     "https://www.googleapis.com/auth/compute"
79435	//   ]
79436	// }
79437
79438}
79439
79440// method id "compute.regionBackendServices.list":
79441
79442type RegionBackendServicesListCall struct {
79443	s            *Service
79444	project      string
79445	region       string
79446	urlParams_   gensupport.URLParams
79447	ifNoneMatch_ string
79448	ctx_         context.Context
79449	header_      http.Header
79450}
79451
79452// List: Retrieves the list of regional BackendService resources
79453// available to the specified project in the given region.
79454func (r *RegionBackendServicesService) List(project string, region string) *RegionBackendServicesListCall {
79455	c := &RegionBackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79456	c.project = project
79457	c.region = region
79458	return c
79459}
79460
79461// Filter sets the optional parameter "filter": A filter expression that
79462// filters resources listed in the response. The expression must specify
79463// the field name, a comparison operator, and the value that you want to
79464// use for filtering. The value must be a string, a number, or a
79465// boolean. The comparison operator must be either =, !=, >, or <.
79466//
79467// For example, if you are filtering Compute Engine instances, you can
79468// exclude instances named example-instance by specifying name !=
79469// example-instance.
79470//
79471// You can also filter nested fields. For example, you could specify
79472// scheduling.automaticRestart = false to include instances only if they
79473// are not scheduled for automatic restarts. You can use filtering on
79474// nested fields to filter based on resource labels.
79475//
79476// To filter on multiple expressions, provide each separate expression
79477// within parentheses. For example, (scheduling.automaticRestart = true)
79478// (cpuPlatform = "Intel Skylake"). By default, each expression is an
79479// AND expression. However, you can include AND and OR expressions
79480// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
79481// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
79482// true).
79483func (c *RegionBackendServicesListCall) Filter(filter string) *RegionBackendServicesListCall {
79484	c.urlParams_.Set("filter", filter)
79485	return c
79486}
79487
79488// MaxResults sets the optional parameter "maxResults": The maximum
79489// number of results per page that should be returned. If the number of
79490// available results is larger than maxResults, Compute Engine returns a
79491// nextPageToken that can be used to get the next page of results in
79492// subsequent list requests. Acceptable values are 0 to 500, inclusive.
79493// (Default: 500)
79494func (c *RegionBackendServicesListCall) MaxResults(maxResults int64) *RegionBackendServicesListCall {
79495	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
79496	return c
79497}
79498
79499// OrderBy sets the optional parameter "orderBy": Sorts list results by
79500// a certain order. By default, results are returned in alphanumerical
79501// order based on the resource name.
79502//
79503// You can also sort results in descending order based on the creation
79504// timestamp using orderBy="creationTimestamp desc". This sorts results
79505// based on the creationTimestamp field in reverse chronological order
79506// (newest result first). Use this to sort resources like operations so
79507// that the newest operation is returned first.
79508//
79509// Currently, only sorting by name or creationTimestamp desc is
79510// supported.
79511func (c *RegionBackendServicesListCall) OrderBy(orderBy string) *RegionBackendServicesListCall {
79512	c.urlParams_.Set("orderBy", orderBy)
79513	return c
79514}
79515
79516// PageToken sets the optional parameter "pageToken": Specifies a page
79517// token to use. Set pageToken to the nextPageToken returned by a
79518// previous list request to get the next page of results.
79519func (c *RegionBackendServicesListCall) PageToken(pageToken string) *RegionBackendServicesListCall {
79520	c.urlParams_.Set("pageToken", pageToken)
79521	return c
79522}
79523
79524// Fields allows partial responses to be retrieved. See
79525// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79526// for more information.
79527func (c *RegionBackendServicesListCall) Fields(s ...googleapi.Field) *RegionBackendServicesListCall {
79528	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79529	return c
79530}
79531
79532// IfNoneMatch sets the optional parameter which makes the operation
79533// fail if the object's ETag matches the given value. This is useful for
79534// getting updates only after the object has changed since the last
79535// request. Use googleapi.IsNotModified to check whether the response
79536// error from Do is the result of In-None-Match.
79537func (c *RegionBackendServicesListCall) IfNoneMatch(entityTag string) *RegionBackendServicesListCall {
79538	c.ifNoneMatch_ = entityTag
79539	return c
79540}
79541
79542// Context sets the context to be used in this call's Do method. Any
79543// pending HTTP request will be aborted if the provided context is
79544// canceled.
79545func (c *RegionBackendServicesListCall) Context(ctx context.Context) *RegionBackendServicesListCall {
79546	c.ctx_ = ctx
79547	return c
79548}
79549
79550// Header returns an http.Header that can be modified by the caller to
79551// add HTTP headers to the request.
79552func (c *RegionBackendServicesListCall) Header() http.Header {
79553	if c.header_ == nil {
79554		c.header_ = make(http.Header)
79555	}
79556	return c.header_
79557}
79558
79559func (c *RegionBackendServicesListCall) doRequest(alt string) (*http.Response, error) {
79560	reqHeaders := make(http.Header)
79561	for k, v := range c.header_ {
79562		reqHeaders[k] = v
79563	}
79564	reqHeaders.Set("User-Agent", c.s.userAgent())
79565	if c.ifNoneMatch_ != "" {
79566		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79567	}
79568	var body io.Reader = nil
79569	c.urlParams_.Set("alt", alt)
79570	c.urlParams_.Set("prettyPrint", "false")
79571	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices")
79572	urls += "?" + c.urlParams_.Encode()
79573	req, err := http.NewRequest("GET", urls, body)
79574	if err != nil {
79575		return nil, err
79576	}
79577	req.Header = reqHeaders
79578	googleapi.Expand(req.URL, map[string]string{
79579		"project": c.project,
79580		"region":  c.region,
79581	})
79582	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79583}
79584
79585// Do executes the "compute.regionBackendServices.list" call.
79586// Exactly one of *BackendServiceList or error will be non-nil. Any
79587// non-2xx status code is an error. Response headers are in either
79588// *BackendServiceList.ServerResponse.Header or (if a response was
79589// returned at all) in error.(*googleapi.Error).Header. Use
79590// googleapi.IsNotModified to check whether the returned error was
79591// because http.StatusNotModified was returned.
79592func (c *RegionBackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
79593	gensupport.SetOptions(c.urlParams_, opts...)
79594	res, err := c.doRequest("json")
79595	if res != nil && res.StatusCode == http.StatusNotModified {
79596		if res.Body != nil {
79597			res.Body.Close()
79598		}
79599		return nil, &googleapi.Error{
79600			Code:   res.StatusCode,
79601			Header: res.Header,
79602		}
79603	}
79604	if err != nil {
79605		return nil, err
79606	}
79607	defer googleapi.CloseBody(res)
79608	if err := googleapi.CheckResponse(res); err != nil {
79609		return nil, err
79610	}
79611	ret := &BackendServiceList{
79612		ServerResponse: googleapi.ServerResponse{
79613			Header:         res.Header,
79614			HTTPStatusCode: res.StatusCode,
79615		},
79616	}
79617	target := &ret
79618	if err := gensupport.DecodeResponse(target, res); err != nil {
79619		return nil, err
79620	}
79621	return ret, nil
79622	// {
79623	//   "description": "Retrieves the list of regional BackendService resources available to the specified project in the given region.",
79624	//   "httpMethod": "GET",
79625	//   "id": "compute.regionBackendServices.list",
79626	//   "parameterOrder": [
79627	//     "project",
79628	//     "region"
79629	//   ],
79630	//   "parameters": {
79631	//     "filter": {
79632	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
79633	//       "location": "query",
79634	//       "type": "string"
79635	//     },
79636	//     "maxResults": {
79637	//       "default": "500",
79638	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
79639	//       "format": "uint32",
79640	//       "location": "query",
79641	//       "minimum": "0",
79642	//       "type": "integer"
79643	//     },
79644	//     "orderBy": {
79645	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
79646	//       "location": "query",
79647	//       "type": "string"
79648	//     },
79649	//     "pageToken": {
79650	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
79651	//       "location": "query",
79652	//       "type": "string"
79653	//     },
79654	//     "project": {
79655	//       "description": "Project ID for this request.",
79656	//       "location": "path",
79657	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79658	//       "required": true,
79659	//       "type": "string"
79660	//     },
79661	//     "region": {
79662	//       "description": "Name of the region scoping this request.",
79663	//       "location": "path",
79664	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79665	//       "required": true,
79666	//       "type": "string"
79667	//     }
79668	//   },
79669	//   "path": "{project}/regions/{region}/backendServices",
79670	//   "response": {
79671	//     "$ref": "BackendServiceList"
79672	//   },
79673	//   "scopes": [
79674	//     "https://www.googleapis.com/auth/cloud-platform",
79675	//     "https://www.googleapis.com/auth/compute",
79676	//     "https://www.googleapis.com/auth/compute.readonly"
79677	//   ]
79678	// }
79679
79680}
79681
79682// Pages invokes f for each page of results.
79683// A non-nil error returned from f will halt the iteration.
79684// The provided context supersedes any context provided to the Context method.
79685func (c *RegionBackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
79686	c.ctx_ = ctx
79687	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
79688	for {
79689		x, err := c.Do()
79690		if err != nil {
79691			return err
79692		}
79693		if err := f(x); err != nil {
79694			return err
79695		}
79696		if x.NextPageToken == "" {
79697			return nil
79698		}
79699		c.PageToken(x.NextPageToken)
79700	}
79701}
79702
79703// method id "compute.regionBackendServices.patch":
79704
79705type RegionBackendServicesPatchCall struct {
79706	s              *Service
79707	project        string
79708	region         string
79709	backendService string
79710	backendservice *BackendService
79711	urlParams_     gensupport.URLParams
79712	ctx_           context.Context
79713	header_        http.Header
79714}
79715
79716// Patch: Updates the specified regional BackendService resource with
79717// the data included in the request. There are several restrictions and
79718// guidelines to keep in mind when updating a backend service. Read
79719// Restrictions and Guidelines for more information. This method
79720// supports PATCH semantics and uses the JSON merge patch format and
79721// processing rules.
79722func (r *RegionBackendServicesService) Patch(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesPatchCall {
79723	c := &RegionBackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79724	c.project = project
79725	c.region = region
79726	c.backendService = backendService
79727	c.backendservice = backendservice
79728	return c
79729}
79730
79731// RequestId sets the optional parameter "requestId": An optional
79732// request ID to identify requests. Specify a unique request ID so that
79733// if you must retry your request, the server will know to ignore the
79734// request if it has already been completed.
79735//
79736// For example, consider a situation where you make an initial request
79737// and the request times out. If you make the request again with the
79738// same request ID, the server can check if original operation with the
79739// same request ID was received, and if so, will ignore the second
79740// request. This prevents clients from accidentally creating duplicate
79741// commitments.
79742//
79743// The request ID must be a valid UUID with the exception that zero UUID
79744// is not supported (00000000-0000-0000-0000-000000000000).
79745func (c *RegionBackendServicesPatchCall) RequestId(requestId string) *RegionBackendServicesPatchCall {
79746	c.urlParams_.Set("requestId", requestId)
79747	return c
79748}
79749
79750// Fields allows partial responses to be retrieved. See
79751// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79752// for more information.
79753func (c *RegionBackendServicesPatchCall) Fields(s ...googleapi.Field) *RegionBackendServicesPatchCall {
79754	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79755	return c
79756}
79757
79758// Context sets the context to be used in this call's Do method. Any
79759// pending HTTP request will be aborted if the provided context is
79760// canceled.
79761func (c *RegionBackendServicesPatchCall) Context(ctx context.Context) *RegionBackendServicesPatchCall {
79762	c.ctx_ = ctx
79763	return c
79764}
79765
79766// Header returns an http.Header that can be modified by the caller to
79767// add HTTP headers to the request.
79768func (c *RegionBackendServicesPatchCall) Header() http.Header {
79769	if c.header_ == nil {
79770		c.header_ = make(http.Header)
79771	}
79772	return c.header_
79773}
79774
79775func (c *RegionBackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
79776	reqHeaders := make(http.Header)
79777	for k, v := range c.header_ {
79778		reqHeaders[k] = v
79779	}
79780	reqHeaders.Set("User-Agent", c.s.userAgent())
79781	var body io.Reader = nil
79782	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
79783	if err != nil {
79784		return nil, err
79785	}
79786	reqHeaders.Set("Content-Type", "application/json")
79787	c.urlParams_.Set("alt", alt)
79788	c.urlParams_.Set("prettyPrint", "false")
79789	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
79790	urls += "?" + c.urlParams_.Encode()
79791	req, err := http.NewRequest("PATCH", urls, body)
79792	if err != nil {
79793		return nil, err
79794	}
79795	req.Header = reqHeaders
79796	googleapi.Expand(req.URL, map[string]string{
79797		"project":        c.project,
79798		"region":         c.region,
79799		"backendService": c.backendService,
79800	})
79801	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79802}
79803
79804// Do executes the "compute.regionBackendServices.patch" call.
79805// Exactly one of *Operation or error will be non-nil. Any non-2xx
79806// status code is an error. Response headers are in either
79807// *Operation.ServerResponse.Header or (if a response was returned at
79808// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79809// to check whether the returned error was because
79810// http.StatusNotModified was returned.
79811func (c *RegionBackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79812	gensupport.SetOptions(c.urlParams_, opts...)
79813	res, err := c.doRequest("json")
79814	if res != nil && res.StatusCode == http.StatusNotModified {
79815		if res.Body != nil {
79816			res.Body.Close()
79817		}
79818		return nil, &googleapi.Error{
79819			Code:   res.StatusCode,
79820			Header: res.Header,
79821		}
79822	}
79823	if err != nil {
79824		return nil, err
79825	}
79826	defer googleapi.CloseBody(res)
79827	if err := googleapi.CheckResponse(res); err != nil {
79828		return nil, err
79829	}
79830	ret := &Operation{
79831		ServerResponse: googleapi.ServerResponse{
79832			Header:         res.Header,
79833			HTTPStatusCode: res.StatusCode,
79834		},
79835	}
79836	target := &ret
79837	if err := gensupport.DecodeResponse(target, res); err != nil {
79838		return nil, err
79839	}
79840	return ret, nil
79841	// {
79842	//   "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.",
79843	//   "httpMethod": "PATCH",
79844	//   "id": "compute.regionBackendServices.patch",
79845	//   "parameterOrder": [
79846	//     "project",
79847	//     "region",
79848	//     "backendService"
79849	//   ],
79850	//   "parameters": {
79851	//     "backendService": {
79852	//       "description": "Name of the BackendService resource to patch.",
79853	//       "location": "path",
79854	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79855	//       "required": true,
79856	//       "type": "string"
79857	//     },
79858	//     "project": {
79859	//       "description": "Project ID for this request.",
79860	//       "location": "path",
79861	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79862	//       "required": true,
79863	//       "type": "string"
79864	//     },
79865	//     "region": {
79866	//       "description": "Name of the region scoping this request.",
79867	//       "location": "path",
79868	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79869	//       "required": true,
79870	//       "type": "string"
79871	//     },
79872	//     "requestId": {
79873	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79874	//       "location": "query",
79875	//       "type": "string"
79876	//     }
79877	//   },
79878	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
79879	//   "request": {
79880	//     "$ref": "BackendService"
79881	//   },
79882	//   "response": {
79883	//     "$ref": "Operation"
79884	//   },
79885	//   "scopes": [
79886	//     "https://www.googleapis.com/auth/cloud-platform",
79887	//     "https://www.googleapis.com/auth/compute"
79888	//   ]
79889	// }
79890
79891}
79892
79893// method id "compute.regionBackendServices.update":
79894
79895type RegionBackendServicesUpdateCall struct {
79896	s              *Service
79897	project        string
79898	region         string
79899	backendService string
79900	backendservice *BackendService
79901	urlParams_     gensupport.URLParams
79902	ctx_           context.Context
79903	header_        http.Header
79904}
79905
79906// Update: Updates the specified regional BackendService resource with
79907// the data included in the request. There are several restrictions and
79908// guidelines to keep in mind when updating a backend service. Read
79909// Restrictions and Guidelines for more information.
79910func (r *RegionBackendServicesService) Update(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesUpdateCall {
79911	c := &RegionBackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79912	c.project = project
79913	c.region = region
79914	c.backendService = backendService
79915	c.backendservice = backendservice
79916	return c
79917}
79918
79919// RequestId sets the optional parameter "requestId": An optional
79920// request ID to identify requests. Specify a unique request ID so that
79921// if you must retry your request, the server will know to ignore the
79922// request if it has already been completed.
79923//
79924// For example, consider a situation where you make an initial request
79925// and the request times out. If you make the request again with the
79926// same request ID, the server can check if original operation with the
79927// same request ID was received, and if so, will ignore the second
79928// request. This prevents clients from accidentally creating duplicate
79929// commitments.
79930//
79931// The request ID must be a valid UUID with the exception that zero UUID
79932// is not supported (00000000-0000-0000-0000-000000000000).
79933func (c *RegionBackendServicesUpdateCall) RequestId(requestId string) *RegionBackendServicesUpdateCall {
79934	c.urlParams_.Set("requestId", requestId)
79935	return c
79936}
79937
79938// Fields allows partial responses to be retrieved. See
79939// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79940// for more information.
79941func (c *RegionBackendServicesUpdateCall) Fields(s ...googleapi.Field) *RegionBackendServicesUpdateCall {
79942	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79943	return c
79944}
79945
79946// Context sets the context to be used in this call's Do method. Any
79947// pending HTTP request will be aborted if the provided context is
79948// canceled.
79949func (c *RegionBackendServicesUpdateCall) Context(ctx context.Context) *RegionBackendServicesUpdateCall {
79950	c.ctx_ = ctx
79951	return c
79952}
79953
79954// Header returns an http.Header that can be modified by the caller to
79955// add HTTP headers to the request.
79956func (c *RegionBackendServicesUpdateCall) Header() http.Header {
79957	if c.header_ == nil {
79958		c.header_ = make(http.Header)
79959	}
79960	return c.header_
79961}
79962
79963func (c *RegionBackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
79964	reqHeaders := make(http.Header)
79965	for k, v := range c.header_ {
79966		reqHeaders[k] = v
79967	}
79968	reqHeaders.Set("User-Agent", c.s.userAgent())
79969	var body io.Reader = nil
79970	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
79971	if err != nil {
79972		return nil, err
79973	}
79974	reqHeaders.Set("Content-Type", "application/json")
79975	c.urlParams_.Set("alt", alt)
79976	c.urlParams_.Set("prettyPrint", "false")
79977	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
79978	urls += "?" + c.urlParams_.Encode()
79979	req, err := http.NewRequest("PUT", urls, body)
79980	if err != nil {
79981		return nil, err
79982	}
79983	req.Header = reqHeaders
79984	googleapi.Expand(req.URL, map[string]string{
79985		"project":        c.project,
79986		"region":         c.region,
79987		"backendService": c.backendService,
79988	})
79989	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79990}
79991
79992// Do executes the "compute.regionBackendServices.update" call.
79993// Exactly one of *Operation or error will be non-nil. Any non-2xx
79994// status code is an error. Response headers are in either
79995// *Operation.ServerResponse.Header or (if a response was returned at
79996// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79997// to check whether the returned error was because
79998// http.StatusNotModified was returned.
79999func (c *RegionBackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80000	gensupport.SetOptions(c.urlParams_, opts...)
80001	res, err := c.doRequest("json")
80002	if res != nil && res.StatusCode == http.StatusNotModified {
80003		if res.Body != nil {
80004			res.Body.Close()
80005		}
80006		return nil, &googleapi.Error{
80007			Code:   res.StatusCode,
80008			Header: res.Header,
80009		}
80010	}
80011	if err != nil {
80012		return nil, err
80013	}
80014	defer googleapi.CloseBody(res)
80015	if err := googleapi.CheckResponse(res); err != nil {
80016		return nil, err
80017	}
80018	ret := &Operation{
80019		ServerResponse: googleapi.ServerResponse{
80020			Header:         res.Header,
80021			HTTPStatusCode: res.StatusCode,
80022		},
80023	}
80024	target := &ret
80025	if err := gensupport.DecodeResponse(target, res); err != nil {
80026		return nil, err
80027	}
80028	return ret, nil
80029	// {
80030	//   "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.",
80031	//   "httpMethod": "PUT",
80032	//   "id": "compute.regionBackendServices.update",
80033	//   "parameterOrder": [
80034	//     "project",
80035	//     "region",
80036	//     "backendService"
80037	//   ],
80038	//   "parameters": {
80039	//     "backendService": {
80040	//       "description": "Name of the BackendService resource to update.",
80041	//       "location": "path",
80042	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80043	//       "required": true,
80044	//       "type": "string"
80045	//     },
80046	//     "project": {
80047	//       "description": "Project ID for this request.",
80048	//       "location": "path",
80049	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80050	//       "required": true,
80051	//       "type": "string"
80052	//     },
80053	//     "region": {
80054	//       "description": "Name of the region scoping this request.",
80055	//       "location": "path",
80056	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80057	//       "required": true,
80058	//       "type": "string"
80059	//     },
80060	//     "requestId": {
80061	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80062	//       "location": "query",
80063	//       "type": "string"
80064	//     }
80065	//   },
80066	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
80067	//   "request": {
80068	//     "$ref": "BackendService"
80069	//   },
80070	//   "response": {
80071	//     "$ref": "Operation"
80072	//   },
80073	//   "scopes": [
80074	//     "https://www.googleapis.com/auth/cloud-platform",
80075	//     "https://www.googleapis.com/auth/compute"
80076	//   ]
80077	// }
80078
80079}
80080
80081// method id "compute.regionCommitments.aggregatedList":
80082
80083type RegionCommitmentsAggregatedListCall struct {
80084	s            *Service
80085	project      string
80086	urlParams_   gensupport.URLParams
80087	ifNoneMatch_ string
80088	ctx_         context.Context
80089	header_      http.Header
80090}
80091
80092// AggregatedList: Retrieves an aggregated list of commitments.
80093func (r *RegionCommitmentsService) AggregatedList(project string) *RegionCommitmentsAggregatedListCall {
80094	c := &RegionCommitmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80095	c.project = project
80096	return c
80097}
80098
80099// Filter sets the optional parameter "filter": A filter expression that
80100// filters resources listed in the response. The expression must specify
80101// the field name, a comparison operator, and the value that you want to
80102// use for filtering. The value must be a string, a number, or a
80103// boolean. The comparison operator must be either =, !=, >, or <.
80104//
80105// For example, if you are filtering Compute Engine instances, you can
80106// exclude instances named example-instance by specifying name !=
80107// example-instance.
80108//
80109// You can also filter nested fields. For example, you could specify
80110// scheduling.automaticRestart = false to include instances only if they
80111// are not scheduled for automatic restarts. You can use filtering on
80112// nested fields to filter based on resource labels.
80113//
80114// To filter on multiple expressions, provide each separate expression
80115// within parentheses. For example, (scheduling.automaticRestart = true)
80116// (cpuPlatform = "Intel Skylake"). By default, each expression is an
80117// AND expression. However, you can include AND and OR expressions
80118// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
80119// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
80120// true).
80121func (c *RegionCommitmentsAggregatedListCall) Filter(filter string) *RegionCommitmentsAggregatedListCall {
80122	c.urlParams_.Set("filter", filter)
80123	return c
80124}
80125
80126// MaxResults sets the optional parameter "maxResults": The maximum
80127// number of results per page that should be returned. If the number of
80128// available results is larger than maxResults, Compute Engine returns a
80129// nextPageToken that can be used to get the next page of results in
80130// subsequent list requests. Acceptable values are 0 to 500, inclusive.
80131// (Default: 500)
80132func (c *RegionCommitmentsAggregatedListCall) MaxResults(maxResults int64) *RegionCommitmentsAggregatedListCall {
80133	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
80134	return c
80135}
80136
80137// OrderBy sets the optional parameter "orderBy": Sorts list results by
80138// a certain order. By default, results are returned in alphanumerical
80139// order based on the resource name.
80140//
80141// You can also sort results in descending order based on the creation
80142// timestamp using orderBy="creationTimestamp desc". This sorts results
80143// based on the creationTimestamp field in reverse chronological order
80144// (newest result first). Use this to sort resources like operations so
80145// that the newest operation is returned first.
80146//
80147// Currently, only sorting by name or creationTimestamp desc is
80148// supported.
80149func (c *RegionCommitmentsAggregatedListCall) OrderBy(orderBy string) *RegionCommitmentsAggregatedListCall {
80150	c.urlParams_.Set("orderBy", orderBy)
80151	return c
80152}
80153
80154// PageToken sets the optional parameter "pageToken": Specifies a page
80155// token to use. Set pageToken to the nextPageToken returned by a
80156// previous list request to get the next page of results.
80157func (c *RegionCommitmentsAggregatedListCall) PageToken(pageToken string) *RegionCommitmentsAggregatedListCall {
80158	c.urlParams_.Set("pageToken", pageToken)
80159	return c
80160}
80161
80162// Fields allows partial responses to be retrieved. See
80163// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80164// for more information.
80165func (c *RegionCommitmentsAggregatedListCall) Fields(s ...googleapi.Field) *RegionCommitmentsAggregatedListCall {
80166	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80167	return c
80168}
80169
80170// IfNoneMatch sets the optional parameter which makes the operation
80171// fail if the object's ETag matches the given value. This is useful for
80172// getting updates only after the object has changed since the last
80173// request. Use googleapi.IsNotModified to check whether the response
80174// error from Do is the result of In-None-Match.
80175func (c *RegionCommitmentsAggregatedListCall) IfNoneMatch(entityTag string) *RegionCommitmentsAggregatedListCall {
80176	c.ifNoneMatch_ = entityTag
80177	return c
80178}
80179
80180// Context sets the context to be used in this call's Do method. Any
80181// pending HTTP request will be aborted if the provided context is
80182// canceled.
80183func (c *RegionCommitmentsAggregatedListCall) Context(ctx context.Context) *RegionCommitmentsAggregatedListCall {
80184	c.ctx_ = ctx
80185	return c
80186}
80187
80188// Header returns an http.Header that can be modified by the caller to
80189// add HTTP headers to the request.
80190func (c *RegionCommitmentsAggregatedListCall) Header() http.Header {
80191	if c.header_ == nil {
80192		c.header_ = make(http.Header)
80193	}
80194	return c.header_
80195}
80196
80197func (c *RegionCommitmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
80198	reqHeaders := make(http.Header)
80199	for k, v := range c.header_ {
80200		reqHeaders[k] = v
80201	}
80202	reqHeaders.Set("User-Agent", c.s.userAgent())
80203	if c.ifNoneMatch_ != "" {
80204		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80205	}
80206	var body io.Reader = nil
80207	c.urlParams_.Set("alt", alt)
80208	c.urlParams_.Set("prettyPrint", "false")
80209	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/commitments")
80210	urls += "?" + c.urlParams_.Encode()
80211	req, err := http.NewRequest("GET", urls, body)
80212	if err != nil {
80213		return nil, err
80214	}
80215	req.Header = reqHeaders
80216	googleapi.Expand(req.URL, map[string]string{
80217		"project": c.project,
80218	})
80219	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80220}
80221
80222// Do executes the "compute.regionCommitments.aggregatedList" call.
80223// Exactly one of *CommitmentAggregatedList or error will be non-nil.
80224// Any non-2xx status code is an error. Response headers are in either
80225// *CommitmentAggregatedList.ServerResponse.Header or (if a response was
80226// returned at all) in error.(*googleapi.Error).Header. Use
80227// googleapi.IsNotModified to check whether the returned error was
80228// because http.StatusNotModified was returned.
80229func (c *RegionCommitmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*CommitmentAggregatedList, error) {
80230	gensupport.SetOptions(c.urlParams_, opts...)
80231	res, err := c.doRequest("json")
80232	if res != nil && res.StatusCode == http.StatusNotModified {
80233		if res.Body != nil {
80234			res.Body.Close()
80235		}
80236		return nil, &googleapi.Error{
80237			Code:   res.StatusCode,
80238			Header: res.Header,
80239		}
80240	}
80241	if err != nil {
80242		return nil, err
80243	}
80244	defer googleapi.CloseBody(res)
80245	if err := googleapi.CheckResponse(res); err != nil {
80246		return nil, err
80247	}
80248	ret := &CommitmentAggregatedList{
80249		ServerResponse: googleapi.ServerResponse{
80250			Header:         res.Header,
80251			HTTPStatusCode: res.StatusCode,
80252		},
80253	}
80254	target := &ret
80255	if err := gensupport.DecodeResponse(target, res); err != nil {
80256		return nil, err
80257	}
80258	return ret, nil
80259	// {
80260	//   "description": "Retrieves an aggregated list of commitments.",
80261	//   "httpMethod": "GET",
80262	//   "id": "compute.regionCommitments.aggregatedList",
80263	//   "parameterOrder": [
80264	//     "project"
80265	//   ],
80266	//   "parameters": {
80267	//     "filter": {
80268	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
80269	//       "location": "query",
80270	//       "type": "string"
80271	//     },
80272	//     "maxResults": {
80273	//       "default": "500",
80274	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
80275	//       "format": "uint32",
80276	//       "location": "query",
80277	//       "minimum": "0",
80278	//       "type": "integer"
80279	//     },
80280	//     "orderBy": {
80281	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
80282	//       "location": "query",
80283	//       "type": "string"
80284	//     },
80285	//     "pageToken": {
80286	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
80287	//       "location": "query",
80288	//       "type": "string"
80289	//     },
80290	//     "project": {
80291	//       "description": "Project ID for this request.",
80292	//       "location": "path",
80293	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80294	//       "required": true,
80295	//       "type": "string"
80296	//     }
80297	//   },
80298	//   "path": "{project}/aggregated/commitments",
80299	//   "response": {
80300	//     "$ref": "CommitmentAggregatedList"
80301	//   },
80302	//   "scopes": [
80303	//     "https://www.googleapis.com/auth/cloud-platform",
80304	//     "https://www.googleapis.com/auth/compute",
80305	//     "https://www.googleapis.com/auth/compute.readonly"
80306	//   ]
80307	// }
80308
80309}
80310
80311// Pages invokes f for each page of results.
80312// A non-nil error returned from f will halt the iteration.
80313// The provided context supersedes any context provided to the Context method.
80314func (c *RegionCommitmentsAggregatedListCall) Pages(ctx context.Context, f func(*CommitmentAggregatedList) error) error {
80315	c.ctx_ = ctx
80316	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
80317	for {
80318		x, err := c.Do()
80319		if err != nil {
80320			return err
80321		}
80322		if err := f(x); err != nil {
80323			return err
80324		}
80325		if x.NextPageToken == "" {
80326			return nil
80327		}
80328		c.PageToken(x.NextPageToken)
80329	}
80330}
80331
80332// method id "compute.regionCommitments.get":
80333
80334type RegionCommitmentsGetCall struct {
80335	s            *Service
80336	project      string
80337	region       string
80338	commitment   string
80339	urlParams_   gensupport.URLParams
80340	ifNoneMatch_ string
80341	ctx_         context.Context
80342	header_      http.Header
80343}
80344
80345// Get: Returns the specified commitment resource. Gets a list of
80346// available commitments by making a list() request.
80347func (r *RegionCommitmentsService) Get(project string, region string, commitment string) *RegionCommitmentsGetCall {
80348	c := &RegionCommitmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80349	c.project = project
80350	c.region = region
80351	c.commitment = commitment
80352	return c
80353}
80354
80355// Fields allows partial responses to be retrieved. See
80356// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80357// for more information.
80358func (c *RegionCommitmentsGetCall) Fields(s ...googleapi.Field) *RegionCommitmentsGetCall {
80359	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80360	return c
80361}
80362
80363// IfNoneMatch sets the optional parameter which makes the operation
80364// fail if the object's ETag matches the given value. This is useful for
80365// getting updates only after the object has changed since the last
80366// request. Use googleapi.IsNotModified to check whether the response
80367// error from Do is the result of In-None-Match.
80368func (c *RegionCommitmentsGetCall) IfNoneMatch(entityTag string) *RegionCommitmentsGetCall {
80369	c.ifNoneMatch_ = entityTag
80370	return c
80371}
80372
80373// Context sets the context to be used in this call's Do method. Any
80374// pending HTTP request will be aborted if the provided context is
80375// canceled.
80376func (c *RegionCommitmentsGetCall) Context(ctx context.Context) *RegionCommitmentsGetCall {
80377	c.ctx_ = ctx
80378	return c
80379}
80380
80381// Header returns an http.Header that can be modified by the caller to
80382// add HTTP headers to the request.
80383func (c *RegionCommitmentsGetCall) Header() http.Header {
80384	if c.header_ == nil {
80385		c.header_ = make(http.Header)
80386	}
80387	return c.header_
80388}
80389
80390func (c *RegionCommitmentsGetCall) doRequest(alt string) (*http.Response, error) {
80391	reqHeaders := make(http.Header)
80392	for k, v := range c.header_ {
80393		reqHeaders[k] = v
80394	}
80395	reqHeaders.Set("User-Agent", c.s.userAgent())
80396	if c.ifNoneMatch_ != "" {
80397		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80398	}
80399	var body io.Reader = nil
80400	c.urlParams_.Set("alt", alt)
80401	c.urlParams_.Set("prettyPrint", "false")
80402	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments/{commitment}")
80403	urls += "?" + c.urlParams_.Encode()
80404	req, err := http.NewRequest("GET", urls, body)
80405	if err != nil {
80406		return nil, err
80407	}
80408	req.Header = reqHeaders
80409	googleapi.Expand(req.URL, map[string]string{
80410		"project":    c.project,
80411		"region":     c.region,
80412		"commitment": c.commitment,
80413	})
80414	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80415}
80416
80417// Do executes the "compute.regionCommitments.get" call.
80418// Exactly one of *Commitment or error will be non-nil. Any non-2xx
80419// status code is an error. Response headers are in either
80420// *Commitment.ServerResponse.Header or (if a response was returned at
80421// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80422// to check whether the returned error was because
80423// http.StatusNotModified was returned.
80424func (c *RegionCommitmentsGetCall) Do(opts ...googleapi.CallOption) (*Commitment, error) {
80425	gensupport.SetOptions(c.urlParams_, opts...)
80426	res, err := c.doRequest("json")
80427	if res != nil && res.StatusCode == http.StatusNotModified {
80428		if res.Body != nil {
80429			res.Body.Close()
80430		}
80431		return nil, &googleapi.Error{
80432			Code:   res.StatusCode,
80433			Header: res.Header,
80434		}
80435	}
80436	if err != nil {
80437		return nil, err
80438	}
80439	defer googleapi.CloseBody(res)
80440	if err := googleapi.CheckResponse(res); err != nil {
80441		return nil, err
80442	}
80443	ret := &Commitment{
80444		ServerResponse: googleapi.ServerResponse{
80445			Header:         res.Header,
80446			HTTPStatusCode: res.StatusCode,
80447		},
80448	}
80449	target := &ret
80450	if err := gensupport.DecodeResponse(target, res); err != nil {
80451		return nil, err
80452	}
80453	return ret, nil
80454	// {
80455	//   "description": "Returns the specified commitment resource. Gets a list of available commitments by making a list() request.",
80456	//   "httpMethod": "GET",
80457	//   "id": "compute.regionCommitments.get",
80458	//   "parameterOrder": [
80459	//     "project",
80460	//     "region",
80461	//     "commitment"
80462	//   ],
80463	//   "parameters": {
80464	//     "commitment": {
80465	//       "description": "Name of the commitment to return.",
80466	//       "location": "path",
80467	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80468	//       "required": true,
80469	//       "type": "string"
80470	//     },
80471	//     "project": {
80472	//       "description": "Project ID for this request.",
80473	//       "location": "path",
80474	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80475	//       "required": true,
80476	//       "type": "string"
80477	//     },
80478	//     "region": {
80479	//       "description": "Name of the region for this request.",
80480	//       "location": "path",
80481	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80482	//       "required": true,
80483	//       "type": "string"
80484	//     }
80485	//   },
80486	//   "path": "{project}/regions/{region}/commitments/{commitment}",
80487	//   "response": {
80488	//     "$ref": "Commitment"
80489	//   },
80490	//   "scopes": [
80491	//     "https://www.googleapis.com/auth/cloud-platform",
80492	//     "https://www.googleapis.com/auth/compute",
80493	//     "https://www.googleapis.com/auth/compute.readonly"
80494	//   ]
80495	// }
80496
80497}
80498
80499// method id "compute.regionCommitments.insert":
80500
80501type RegionCommitmentsInsertCall struct {
80502	s          *Service
80503	project    string
80504	region     string
80505	commitment *Commitment
80506	urlParams_ gensupport.URLParams
80507	ctx_       context.Context
80508	header_    http.Header
80509}
80510
80511// Insert: Creates a commitment in the specified project using the data
80512// included in the request.
80513func (r *RegionCommitmentsService) Insert(project string, region string, commitment *Commitment) *RegionCommitmentsInsertCall {
80514	c := &RegionCommitmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80515	c.project = project
80516	c.region = region
80517	c.commitment = commitment
80518	return c
80519}
80520
80521// RequestId sets the optional parameter "requestId": An optional
80522// request ID to identify requests. Specify a unique request ID so that
80523// if you must retry your request, the server will know to ignore the
80524// request if it has already been completed.
80525//
80526// For example, consider a situation where you make an initial request
80527// and the request times out. If you make the request again with the
80528// same request ID, the server can check if original operation with the
80529// same request ID was received, and if so, will ignore the second
80530// request. This prevents clients from accidentally creating duplicate
80531// commitments.
80532//
80533// The request ID must be a valid UUID with the exception that zero UUID
80534// is not supported (00000000-0000-0000-0000-000000000000).
80535func (c *RegionCommitmentsInsertCall) RequestId(requestId string) *RegionCommitmentsInsertCall {
80536	c.urlParams_.Set("requestId", requestId)
80537	return c
80538}
80539
80540// Fields allows partial responses to be retrieved. See
80541// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80542// for more information.
80543func (c *RegionCommitmentsInsertCall) Fields(s ...googleapi.Field) *RegionCommitmentsInsertCall {
80544	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80545	return c
80546}
80547
80548// Context sets the context to be used in this call's Do method. Any
80549// pending HTTP request will be aborted if the provided context is
80550// canceled.
80551func (c *RegionCommitmentsInsertCall) Context(ctx context.Context) *RegionCommitmentsInsertCall {
80552	c.ctx_ = ctx
80553	return c
80554}
80555
80556// Header returns an http.Header that can be modified by the caller to
80557// add HTTP headers to the request.
80558func (c *RegionCommitmentsInsertCall) Header() http.Header {
80559	if c.header_ == nil {
80560		c.header_ = make(http.Header)
80561	}
80562	return c.header_
80563}
80564
80565func (c *RegionCommitmentsInsertCall) doRequest(alt string) (*http.Response, error) {
80566	reqHeaders := make(http.Header)
80567	for k, v := range c.header_ {
80568		reqHeaders[k] = v
80569	}
80570	reqHeaders.Set("User-Agent", c.s.userAgent())
80571	var body io.Reader = nil
80572	body, err := googleapi.WithoutDataWrapper.JSONReader(c.commitment)
80573	if err != nil {
80574		return nil, err
80575	}
80576	reqHeaders.Set("Content-Type", "application/json")
80577	c.urlParams_.Set("alt", alt)
80578	c.urlParams_.Set("prettyPrint", "false")
80579	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments")
80580	urls += "?" + c.urlParams_.Encode()
80581	req, err := http.NewRequest("POST", urls, body)
80582	if err != nil {
80583		return nil, err
80584	}
80585	req.Header = reqHeaders
80586	googleapi.Expand(req.URL, map[string]string{
80587		"project": c.project,
80588		"region":  c.region,
80589	})
80590	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80591}
80592
80593// Do executes the "compute.regionCommitments.insert" call.
80594// Exactly one of *Operation or error will be non-nil. Any non-2xx
80595// status code is an error. Response headers are in either
80596// *Operation.ServerResponse.Header or (if a response was returned at
80597// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80598// to check whether the returned error was because
80599// http.StatusNotModified was returned.
80600func (c *RegionCommitmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80601	gensupport.SetOptions(c.urlParams_, opts...)
80602	res, err := c.doRequest("json")
80603	if res != nil && res.StatusCode == http.StatusNotModified {
80604		if res.Body != nil {
80605			res.Body.Close()
80606		}
80607		return nil, &googleapi.Error{
80608			Code:   res.StatusCode,
80609			Header: res.Header,
80610		}
80611	}
80612	if err != nil {
80613		return nil, err
80614	}
80615	defer googleapi.CloseBody(res)
80616	if err := googleapi.CheckResponse(res); err != nil {
80617		return nil, err
80618	}
80619	ret := &Operation{
80620		ServerResponse: googleapi.ServerResponse{
80621			Header:         res.Header,
80622			HTTPStatusCode: res.StatusCode,
80623		},
80624	}
80625	target := &ret
80626	if err := gensupport.DecodeResponse(target, res); err != nil {
80627		return nil, err
80628	}
80629	return ret, nil
80630	// {
80631	//   "description": "Creates a commitment in the specified project using the data included in the request.",
80632	//   "httpMethod": "POST",
80633	//   "id": "compute.regionCommitments.insert",
80634	//   "parameterOrder": [
80635	//     "project",
80636	//     "region"
80637	//   ],
80638	//   "parameters": {
80639	//     "project": {
80640	//       "description": "Project ID for this request.",
80641	//       "location": "path",
80642	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80643	//       "required": true,
80644	//       "type": "string"
80645	//     },
80646	//     "region": {
80647	//       "description": "Name of the region for this request.",
80648	//       "location": "path",
80649	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80650	//       "required": true,
80651	//       "type": "string"
80652	//     },
80653	//     "requestId": {
80654	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80655	//       "location": "query",
80656	//       "type": "string"
80657	//     }
80658	//   },
80659	//   "path": "{project}/regions/{region}/commitments",
80660	//   "request": {
80661	//     "$ref": "Commitment"
80662	//   },
80663	//   "response": {
80664	//     "$ref": "Operation"
80665	//   },
80666	//   "scopes": [
80667	//     "https://www.googleapis.com/auth/cloud-platform",
80668	//     "https://www.googleapis.com/auth/compute"
80669	//   ]
80670	// }
80671
80672}
80673
80674// method id "compute.regionCommitments.list":
80675
80676type RegionCommitmentsListCall struct {
80677	s            *Service
80678	project      string
80679	region       string
80680	urlParams_   gensupport.URLParams
80681	ifNoneMatch_ string
80682	ctx_         context.Context
80683	header_      http.Header
80684}
80685
80686// List: Retrieves a list of commitments contained within the specified
80687// region.
80688func (r *RegionCommitmentsService) List(project string, region string) *RegionCommitmentsListCall {
80689	c := &RegionCommitmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80690	c.project = project
80691	c.region = region
80692	return c
80693}
80694
80695// Filter sets the optional parameter "filter": A filter expression that
80696// filters resources listed in the response. The expression must specify
80697// the field name, a comparison operator, and the value that you want to
80698// use for filtering. The value must be a string, a number, or a
80699// boolean. The comparison operator must be either =, !=, >, or <.
80700//
80701// For example, if you are filtering Compute Engine instances, you can
80702// exclude instances named example-instance by specifying name !=
80703// example-instance.
80704//
80705// You can also filter nested fields. For example, you could specify
80706// scheduling.automaticRestart = false to include instances only if they
80707// are not scheduled for automatic restarts. You can use filtering on
80708// nested fields to filter based on resource labels.
80709//
80710// To filter on multiple expressions, provide each separate expression
80711// within parentheses. For example, (scheduling.automaticRestart = true)
80712// (cpuPlatform = "Intel Skylake"). By default, each expression is an
80713// AND expression. However, you can include AND and OR expressions
80714// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
80715// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
80716// true).
80717func (c *RegionCommitmentsListCall) Filter(filter string) *RegionCommitmentsListCall {
80718	c.urlParams_.Set("filter", filter)
80719	return c
80720}
80721
80722// MaxResults sets the optional parameter "maxResults": The maximum
80723// number of results per page that should be returned. If the number of
80724// available results is larger than maxResults, Compute Engine returns a
80725// nextPageToken that can be used to get the next page of results in
80726// subsequent list requests. Acceptable values are 0 to 500, inclusive.
80727// (Default: 500)
80728func (c *RegionCommitmentsListCall) MaxResults(maxResults int64) *RegionCommitmentsListCall {
80729	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
80730	return c
80731}
80732
80733// OrderBy sets the optional parameter "orderBy": Sorts list results by
80734// a certain order. By default, results are returned in alphanumerical
80735// order based on the resource name.
80736//
80737// You can also sort results in descending order based on the creation
80738// timestamp using orderBy="creationTimestamp desc". This sorts results
80739// based on the creationTimestamp field in reverse chronological order
80740// (newest result first). Use this to sort resources like operations so
80741// that the newest operation is returned first.
80742//
80743// Currently, only sorting by name or creationTimestamp desc is
80744// supported.
80745func (c *RegionCommitmentsListCall) OrderBy(orderBy string) *RegionCommitmentsListCall {
80746	c.urlParams_.Set("orderBy", orderBy)
80747	return c
80748}
80749
80750// PageToken sets the optional parameter "pageToken": Specifies a page
80751// token to use. Set pageToken to the nextPageToken returned by a
80752// previous list request to get the next page of results.
80753func (c *RegionCommitmentsListCall) PageToken(pageToken string) *RegionCommitmentsListCall {
80754	c.urlParams_.Set("pageToken", pageToken)
80755	return c
80756}
80757
80758// Fields allows partial responses to be retrieved. See
80759// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80760// for more information.
80761func (c *RegionCommitmentsListCall) Fields(s ...googleapi.Field) *RegionCommitmentsListCall {
80762	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80763	return c
80764}
80765
80766// IfNoneMatch sets the optional parameter which makes the operation
80767// fail if the object's ETag matches the given value. This is useful for
80768// getting updates only after the object has changed since the last
80769// request. Use googleapi.IsNotModified to check whether the response
80770// error from Do is the result of In-None-Match.
80771func (c *RegionCommitmentsListCall) IfNoneMatch(entityTag string) *RegionCommitmentsListCall {
80772	c.ifNoneMatch_ = entityTag
80773	return c
80774}
80775
80776// Context sets the context to be used in this call's Do method. Any
80777// pending HTTP request will be aborted if the provided context is
80778// canceled.
80779func (c *RegionCommitmentsListCall) Context(ctx context.Context) *RegionCommitmentsListCall {
80780	c.ctx_ = ctx
80781	return c
80782}
80783
80784// Header returns an http.Header that can be modified by the caller to
80785// add HTTP headers to the request.
80786func (c *RegionCommitmentsListCall) Header() http.Header {
80787	if c.header_ == nil {
80788		c.header_ = make(http.Header)
80789	}
80790	return c.header_
80791}
80792
80793func (c *RegionCommitmentsListCall) doRequest(alt string) (*http.Response, error) {
80794	reqHeaders := make(http.Header)
80795	for k, v := range c.header_ {
80796		reqHeaders[k] = v
80797	}
80798	reqHeaders.Set("User-Agent", c.s.userAgent())
80799	if c.ifNoneMatch_ != "" {
80800		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80801	}
80802	var body io.Reader = nil
80803	c.urlParams_.Set("alt", alt)
80804	c.urlParams_.Set("prettyPrint", "false")
80805	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments")
80806	urls += "?" + c.urlParams_.Encode()
80807	req, err := http.NewRequest("GET", urls, body)
80808	if err != nil {
80809		return nil, err
80810	}
80811	req.Header = reqHeaders
80812	googleapi.Expand(req.URL, map[string]string{
80813		"project": c.project,
80814		"region":  c.region,
80815	})
80816	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80817}
80818
80819// Do executes the "compute.regionCommitments.list" call.
80820// Exactly one of *CommitmentList or error will be non-nil. Any non-2xx
80821// status code is an error. Response headers are in either
80822// *CommitmentList.ServerResponse.Header or (if a response was returned
80823// at all) in error.(*googleapi.Error).Header. Use
80824// googleapi.IsNotModified to check whether the returned error was
80825// because http.StatusNotModified was returned.
80826func (c *RegionCommitmentsListCall) Do(opts ...googleapi.CallOption) (*CommitmentList, error) {
80827	gensupport.SetOptions(c.urlParams_, opts...)
80828	res, err := c.doRequest("json")
80829	if res != nil && res.StatusCode == http.StatusNotModified {
80830		if res.Body != nil {
80831			res.Body.Close()
80832		}
80833		return nil, &googleapi.Error{
80834			Code:   res.StatusCode,
80835			Header: res.Header,
80836		}
80837	}
80838	if err != nil {
80839		return nil, err
80840	}
80841	defer googleapi.CloseBody(res)
80842	if err := googleapi.CheckResponse(res); err != nil {
80843		return nil, err
80844	}
80845	ret := &CommitmentList{
80846		ServerResponse: googleapi.ServerResponse{
80847			Header:         res.Header,
80848			HTTPStatusCode: res.StatusCode,
80849		},
80850	}
80851	target := &ret
80852	if err := gensupport.DecodeResponse(target, res); err != nil {
80853		return nil, err
80854	}
80855	return ret, nil
80856	// {
80857	//   "description": "Retrieves a list of commitments contained within the specified region.",
80858	//   "httpMethod": "GET",
80859	//   "id": "compute.regionCommitments.list",
80860	//   "parameterOrder": [
80861	//     "project",
80862	//     "region"
80863	//   ],
80864	//   "parameters": {
80865	//     "filter": {
80866	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
80867	//       "location": "query",
80868	//       "type": "string"
80869	//     },
80870	//     "maxResults": {
80871	//       "default": "500",
80872	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
80873	//       "format": "uint32",
80874	//       "location": "query",
80875	//       "minimum": "0",
80876	//       "type": "integer"
80877	//     },
80878	//     "orderBy": {
80879	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
80880	//       "location": "query",
80881	//       "type": "string"
80882	//     },
80883	//     "pageToken": {
80884	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
80885	//       "location": "query",
80886	//       "type": "string"
80887	//     },
80888	//     "project": {
80889	//       "description": "Project ID for this request.",
80890	//       "location": "path",
80891	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80892	//       "required": true,
80893	//       "type": "string"
80894	//     },
80895	//     "region": {
80896	//       "description": "Name of the region for this request.",
80897	//       "location": "path",
80898	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80899	//       "required": true,
80900	//       "type": "string"
80901	//     }
80902	//   },
80903	//   "path": "{project}/regions/{region}/commitments",
80904	//   "response": {
80905	//     "$ref": "CommitmentList"
80906	//   },
80907	//   "scopes": [
80908	//     "https://www.googleapis.com/auth/cloud-platform",
80909	//     "https://www.googleapis.com/auth/compute",
80910	//     "https://www.googleapis.com/auth/compute.readonly"
80911	//   ]
80912	// }
80913
80914}
80915
80916// Pages invokes f for each page of results.
80917// A non-nil error returned from f will halt the iteration.
80918// The provided context supersedes any context provided to the Context method.
80919func (c *RegionCommitmentsListCall) Pages(ctx context.Context, f func(*CommitmentList) error) error {
80920	c.ctx_ = ctx
80921	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
80922	for {
80923		x, err := c.Do()
80924		if err != nil {
80925			return err
80926		}
80927		if err := f(x); err != nil {
80928			return err
80929		}
80930		if x.NextPageToken == "" {
80931			return nil
80932		}
80933		c.PageToken(x.NextPageToken)
80934	}
80935}
80936
80937// method id "compute.regionDiskTypes.get":
80938
80939type RegionDiskTypesGetCall struct {
80940	s            *Service
80941	project      string
80942	region       string
80943	diskType     string
80944	urlParams_   gensupport.URLParams
80945	ifNoneMatch_ string
80946	ctx_         context.Context
80947	header_      http.Header
80948}
80949
80950// Get: Returns the specified regional disk type. Gets a list of
80951// available disk types by making a list() request.
80952func (r *RegionDiskTypesService) Get(project string, region string, diskType string) *RegionDiskTypesGetCall {
80953	c := &RegionDiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80954	c.project = project
80955	c.region = region
80956	c.diskType = diskType
80957	return c
80958}
80959
80960// Fields allows partial responses to be retrieved. See
80961// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80962// for more information.
80963func (c *RegionDiskTypesGetCall) Fields(s ...googleapi.Field) *RegionDiskTypesGetCall {
80964	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80965	return c
80966}
80967
80968// IfNoneMatch sets the optional parameter which makes the operation
80969// fail if the object's ETag matches the given value. This is useful for
80970// getting updates only after the object has changed since the last
80971// request. Use googleapi.IsNotModified to check whether the response
80972// error from Do is the result of In-None-Match.
80973func (c *RegionDiskTypesGetCall) IfNoneMatch(entityTag string) *RegionDiskTypesGetCall {
80974	c.ifNoneMatch_ = entityTag
80975	return c
80976}
80977
80978// Context sets the context to be used in this call's Do method. Any
80979// pending HTTP request will be aborted if the provided context is
80980// canceled.
80981func (c *RegionDiskTypesGetCall) Context(ctx context.Context) *RegionDiskTypesGetCall {
80982	c.ctx_ = ctx
80983	return c
80984}
80985
80986// Header returns an http.Header that can be modified by the caller to
80987// add HTTP headers to the request.
80988func (c *RegionDiskTypesGetCall) Header() http.Header {
80989	if c.header_ == nil {
80990		c.header_ = make(http.Header)
80991	}
80992	return c.header_
80993}
80994
80995func (c *RegionDiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
80996	reqHeaders := make(http.Header)
80997	for k, v := range c.header_ {
80998		reqHeaders[k] = v
80999	}
81000	reqHeaders.Set("User-Agent", c.s.userAgent())
81001	if c.ifNoneMatch_ != "" {
81002		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81003	}
81004	var body io.Reader = nil
81005	c.urlParams_.Set("alt", alt)
81006	c.urlParams_.Set("prettyPrint", "false")
81007	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/diskTypes/{diskType}")
81008	urls += "?" + c.urlParams_.Encode()
81009	req, err := http.NewRequest("GET", urls, body)
81010	if err != nil {
81011		return nil, err
81012	}
81013	req.Header = reqHeaders
81014	googleapi.Expand(req.URL, map[string]string{
81015		"project":  c.project,
81016		"region":   c.region,
81017		"diskType": c.diskType,
81018	})
81019	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81020}
81021
81022// Do executes the "compute.regionDiskTypes.get" call.
81023// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
81024// code is an error. Response headers are in either
81025// *DiskType.ServerResponse.Header or (if a response was returned at
81026// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81027// to check whether the returned error was because
81028// http.StatusNotModified was returned.
81029func (c *RegionDiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
81030	gensupport.SetOptions(c.urlParams_, opts...)
81031	res, err := c.doRequest("json")
81032	if res != nil && res.StatusCode == http.StatusNotModified {
81033		if res.Body != nil {
81034			res.Body.Close()
81035		}
81036		return nil, &googleapi.Error{
81037			Code:   res.StatusCode,
81038			Header: res.Header,
81039		}
81040	}
81041	if err != nil {
81042		return nil, err
81043	}
81044	defer googleapi.CloseBody(res)
81045	if err := googleapi.CheckResponse(res); err != nil {
81046		return nil, err
81047	}
81048	ret := &DiskType{
81049		ServerResponse: googleapi.ServerResponse{
81050			Header:         res.Header,
81051			HTTPStatusCode: res.StatusCode,
81052		},
81053	}
81054	target := &ret
81055	if err := gensupport.DecodeResponse(target, res); err != nil {
81056		return nil, err
81057	}
81058	return ret, nil
81059	// {
81060	//   "description": "Returns the specified regional disk type. Gets a list of available disk types by making a list() request.",
81061	//   "httpMethod": "GET",
81062	//   "id": "compute.regionDiskTypes.get",
81063	//   "parameterOrder": [
81064	//     "project",
81065	//     "region",
81066	//     "diskType"
81067	//   ],
81068	//   "parameters": {
81069	//     "diskType": {
81070	//       "description": "Name of the disk type to return.",
81071	//       "location": "path",
81072	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81073	//       "required": true,
81074	//       "type": "string"
81075	//     },
81076	//     "project": {
81077	//       "description": "Project ID for this request.",
81078	//       "location": "path",
81079	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81080	//       "required": true,
81081	//       "type": "string"
81082	//     },
81083	//     "region": {
81084	//       "description": "The name of the region for this request.",
81085	//       "location": "path",
81086	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
81087	//       "required": true,
81088	//       "type": "string"
81089	//     }
81090	//   },
81091	//   "path": "{project}/regions/{region}/diskTypes/{diskType}",
81092	//   "response": {
81093	//     "$ref": "DiskType"
81094	//   },
81095	//   "scopes": [
81096	//     "https://www.googleapis.com/auth/cloud-platform",
81097	//     "https://www.googleapis.com/auth/compute",
81098	//     "https://www.googleapis.com/auth/compute.readonly"
81099	//   ]
81100	// }
81101
81102}
81103
81104// method id "compute.regionDiskTypes.list":
81105
81106type RegionDiskTypesListCall struct {
81107	s            *Service
81108	project      string
81109	region       string
81110	urlParams_   gensupport.URLParams
81111	ifNoneMatch_ string
81112	ctx_         context.Context
81113	header_      http.Header
81114}
81115
81116// List: Retrieves a list of regional disk types available to the
81117// specified project.
81118func (r *RegionDiskTypesService) List(project string, region string) *RegionDiskTypesListCall {
81119	c := &RegionDiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81120	c.project = project
81121	c.region = region
81122	return c
81123}
81124
81125// Filter sets the optional parameter "filter": A filter expression that
81126// filters resources listed in the response. The expression must specify
81127// the field name, a comparison operator, and the value that you want to
81128// use for filtering. The value must be a string, a number, or a
81129// boolean. The comparison operator must be either =, !=, >, or <.
81130//
81131// For example, if you are filtering Compute Engine instances, you can
81132// exclude instances named example-instance by specifying name !=
81133// example-instance.
81134//
81135// You can also filter nested fields. For example, you could specify
81136// scheduling.automaticRestart = false to include instances only if they
81137// are not scheduled for automatic restarts. You can use filtering on
81138// nested fields to filter based on resource labels.
81139//
81140// To filter on multiple expressions, provide each separate expression
81141// within parentheses. For example, (scheduling.automaticRestart = true)
81142// (cpuPlatform = "Intel Skylake"). By default, each expression is an
81143// AND expression. However, you can include AND and OR expressions
81144// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
81145// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
81146// true).
81147func (c *RegionDiskTypesListCall) Filter(filter string) *RegionDiskTypesListCall {
81148	c.urlParams_.Set("filter", filter)
81149	return c
81150}
81151
81152// MaxResults sets the optional parameter "maxResults": The maximum
81153// number of results per page that should be returned. If the number of
81154// available results is larger than maxResults, Compute Engine returns a
81155// nextPageToken that can be used to get the next page of results in
81156// subsequent list requests. Acceptable values are 0 to 500, inclusive.
81157// (Default: 500)
81158func (c *RegionDiskTypesListCall) MaxResults(maxResults int64) *RegionDiskTypesListCall {
81159	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
81160	return c
81161}
81162
81163// OrderBy sets the optional parameter "orderBy": Sorts list results by
81164// a certain order. By default, results are returned in alphanumerical
81165// order based on the resource name.
81166//
81167// You can also sort results in descending order based on the creation
81168// timestamp using orderBy="creationTimestamp desc". This sorts results
81169// based on the creationTimestamp field in reverse chronological order
81170// (newest result first). Use this to sort resources like operations so
81171// that the newest operation is returned first.
81172//
81173// Currently, only sorting by name or creationTimestamp desc is
81174// supported.
81175func (c *RegionDiskTypesListCall) OrderBy(orderBy string) *RegionDiskTypesListCall {
81176	c.urlParams_.Set("orderBy", orderBy)
81177	return c
81178}
81179
81180// PageToken sets the optional parameter "pageToken": Specifies a page
81181// token to use. Set pageToken to the nextPageToken returned by a
81182// previous list request to get the next page of results.
81183func (c *RegionDiskTypesListCall) PageToken(pageToken string) *RegionDiskTypesListCall {
81184	c.urlParams_.Set("pageToken", pageToken)
81185	return c
81186}
81187
81188// Fields allows partial responses to be retrieved. See
81189// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81190// for more information.
81191func (c *RegionDiskTypesListCall) Fields(s ...googleapi.Field) *RegionDiskTypesListCall {
81192	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81193	return c
81194}
81195
81196// IfNoneMatch sets the optional parameter which makes the operation
81197// fail if the object's ETag matches the given value. This is useful for
81198// getting updates only after the object has changed since the last
81199// request. Use googleapi.IsNotModified to check whether the response
81200// error from Do is the result of In-None-Match.
81201func (c *RegionDiskTypesListCall) IfNoneMatch(entityTag string) *RegionDiskTypesListCall {
81202	c.ifNoneMatch_ = entityTag
81203	return c
81204}
81205
81206// Context sets the context to be used in this call's Do method. Any
81207// pending HTTP request will be aborted if the provided context is
81208// canceled.
81209func (c *RegionDiskTypesListCall) Context(ctx context.Context) *RegionDiskTypesListCall {
81210	c.ctx_ = ctx
81211	return c
81212}
81213
81214// Header returns an http.Header that can be modified by the caller to
81215// add HTTP headers to the request.
81216func (c *RegionDiskTypesListCall) Header() http.Header {
81217	if c.header_ == nil {
81218		c.header_ = make(http.Header)
81219	}
81220	return c.header_
81221}
81222
81223func (c *RegionDiskTypesListCall) doRequest(alt string) (*http.Response, error) {
81224	reqHeaders := make(http.Header)
81225	for k, v := range c.header_ {
81226		reqHeaders[k] = v
81227	}
81228	reqHeaders.Set("User-Agent", c.s.userAgent())
81229	if c.ifNoneMatch_ != "" {
81230		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81231	}
81232	var body io.Reader = nil
81233	c.urlParams_.Set("alt", alt)
81234	c.urlParams_.Set("prettyPrint", "false")
81235	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/diskTypes")
81236	urls += "?" + c.urlParams_.Encode()
81237	req, err := http.NewRequest("GET", urls, body)
81238	if err != nil {
81239		return nil, err
81240	}
81241	req.Header = reqHeaders
81242	googleapi.Expand(req.URL, map[string]string{
81243		"project": c.project,
81244		"region":  c.region,
81245	})
81246	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81247}
81248
81249// Do executes the "compute.regionDiskTypes.list" call.
81250// Exactly one of *RegionDiskTypeList or error will be non-nil. Any
81251// non-2xx status code is an error. Response headers are in either
81252// *RegionDiskTypeList.ServerResponse.Header or (if a response was
81253// returned at all) in error.(*googleapi.Error).Header. Use
81254// googleapi.IsNotModified to check whether the returned error was
81255// because http.StatusNotModified was returned.
81256func (c *RegionDiskTypesListCall) Do(opts ...googleapi.CallOption) (*RegionDiskTypeList, error) {
81257	gensupport.SetOptions(c.urlParams_, opts...)
81258	res, err := c.doRequest("json")
81259	if res != nil && res.StatusCode == http.StatusNotModified {
81260		if res.Body != nil {
81261			res.Body.Close()
81262		}
81263		return nil, &googleapi.Error{
81264			Code:   res.StatusCode,
81265			Header: res.Header,
81266		}
81267	}
81268	if err != nil {
81269		return nil, err
81270	}
81271	defer googleapi.CloseBody(res)
81272	if err := googleapi.CheckResponse(res); err != nil {
81273		return nil, err
81274	}
81275	ret := &RegionDiskTypeList{
81276		ServerResponse: googleapi.ServerResponse{
81277			Header:         res.Header,
81278			HTTPStatusCode: res.StatusCode,
81279		},
81280	}
81281	target := &ret
81282	if err := gensupport.DecodeResponse(target, res); err != nil {
81283		return nil, err
81284	}
81285	return ret, nil
81286	// {
81287	//   "description": "Retrieves a list of regional disk types available to the specified project.",
81288	//   "httpMethod": "GET",
81289	//   "id": "compute.regionDiskTypes.list",
81290	//   "parameterOrder": [
81291	//     "project",
81292	//     "region"
81293	//   ],
81294	//   "parameters": {
81295	//     "filter": {
81296	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
81297	//       "location": "query",
81298	//       "type": "string"
81299	//     },
81300	//     "maxResults": {
81301	//       "default": "500",
81302	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
81303	//       "format": "uint32",
81304	//       "location": "query",
81305	//       "minimum": "0",
81306	//       "type": "integer"
81307	//     },
81308	//     "orderBy": {
81309	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
81310	//       "location": "query",
81311	//       "type": "string"
81312	//     },
81313	//     "pageToken": {
81314	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
81315	//       "location": "query",
81316	//       "type": "string"
81317	//     },
81318	//     "project": {
81319	//       "description": "Project ID for this request.",
81320	//       "location": "path",
81321	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81322	//       "required": true,
81323	//       "type": "string"
81324	//     },
81325	//     "region": {
81326	//       "description": "The name of the region for this request.",
81327	//       "location": "path",
81328	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
81329	//       "required": true,
81330	//       "type": "string"
81331	//     }
81332	//   },
81333	//   "path": "{project}/regions/{region}/diskTypes",
81334	//   "response": {
81335	//     "$ref": "RegionDiskTypeList"
81336	//   },
81337	//   "scopes": [
81338	//     "https://www.googleapis.com/auth/cloud-platform",
81339	//     "https://www.googleapis.com/auth/compute",
81340	//     "https://www.googleapis.com/auth/compute.readonly"
81341	//   ]
81342	// }
81343
81344}
81345
81346// Pages invokes f for each page of results.
81347// A non-nil error returned from f will halt the iteration.
81348// The provided context supersedes any context provided to the Context method.
81349func (c *RegionDiskTypesListCall) Pages(ctx context.Context, f func(*RegionDiskTypeList) error) error {
81350	c.ctx_ = ctx
81351	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
81352	for {
81353		x, err := c.Do()
81354		if err != nil {
81355			return err
81356		}
81357		if err := f(x); err != nil {
81358			return err
81359		}
81360		if x.NextPageToken == "" {
81361			return nil
81362		}
81363		c.PageToken(x.NextPageToken)
81364	}
81365}
81366
81367// method id "compute.regionDisks.createSnapshot":
81368
81369type RegionDisksCreateSnapshotCall struct {
81370	s          *Service
81371	project    string
81372	region     string
81373	disk       string
81374	snapshot   *Snapshot
81375	urlParams_ gensupport.URLParams
81376	ctx_       context.Context
81377	header_    http.Header
81378}
81379
81380// CreateSnapshot: Creates a snapshot of this regional disk.
81381func (r *RegionDisksService) CreateSnapshot(project string, region string, disk string, snapshot *Snapshot) *RegionDisksCreateSnapshotCall {
81382	c := &RegionDisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81383	c.project = project
81384	c.region = region
81385	c.disk = disk
81386	c.snapshot = snapshot
81387	return c
81388}
81389
81390// RequestId sets the optional parameter "requestId": An optional
81391// request ID to identify requests. Specify a unique request ID so that
81392// if you must retry your request, the server will know to ignore the
81393// request if it has already been completed.
81394//
81395// For example, consider a situation where you make an initial request
81396// and the request times out. If you make the request again with the
81397// same request ID, the server can check if original operation with the
81398// same request ID was received, and if so, will ignore the second
81399// request. This prevents clients from accidentally creating duplicate
81400// commitments.
81401//
81402// The request ID must be a valid UUID with the exception that zero UUID
81403// is not supported (00000000-0000-0000-0000-000000000000).
81404func (c *RegionDisksCreateSnapshotCall) RequestId(requestId string) *RegionDisksCreateSnapshotCall {
81405	c.urlParams_.Set("requestId", requestId)
81406	return c
81407}
81408
81409// Fields allows partial responses to be retrieved. See
81410// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81411// for more information.
81412func (c *RegionDisksCreateSnapshotCall) Fields(s ...googleapi.Field) *RegionDisksCreateSnapshotCall {
81413	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81414	return c
81415}
81416
81417// Context sets the context to be used in this call's Do method. Any
81418// pending HTTP request will be aborted if the provided context is
81419// canceled.
81420func (c *RegionDisksCreateSnapshotCall) Context(ctx context.Context) *RegionDisksCreateSnapshotCall {
81421	c.ctx_ = ctx
81422	return c
81423}
81424
81425// Header returns an http.Header that can be modified by the caller to
81426// add HTTP headers to the request.
81427func (c *RegionDisksCreateSnapshotCall) Header() http.Header {
81428	if c.header_ == nil {
81429		c.header_ = make(http.Header)
81430	}
81431	return c.header_
81432}
81433
81434func (c *RegionDisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
81435	reqHeaders := make(http.Header)
81436	for k, v := range c.header_ {
81437		reqHeaders[k] = v
81438	}
81439	reqHeaders.Set("User-Agent", c.s.userAgent())
81440	var body io.Reader = nil
81441	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
81442	if err != nil {
81443		return nil, err
81444	}
81445	reqHeaders.Set("Content-Type", "application/json")
81446	c.urlParams_.Set("alt", alt)
81447	c.urlParams_.Set("prettyPrint", "false")
81448	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/createSnapshot")
81449	urls += "?" + c.urlParams_.Encode()
81450	req, err := http.NewRequest("POST", urls, body)
81451	if err != nil {
81452		return nil, err
81453	}
81454	req.Header = reqHeaders
81455	googleapi.Expand(req.URL, map[string]string{
81456		"project": c.project,
81457		"region":  c.region,
81458		"disk":    c.disk,
81459	})
81460	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81461}
81462
81463// Do executes the "compute.regionDisks.createSnapshot" call.
81464// Exactly one of *Operation or error will be non-nil. Any non-2xx
81465// status code is an error. Response headers are in either
81466// *Operation.ServerResponse.Header or (if a response was returned at
81467// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81468// to check whether the returned error was because
81469// http.StatusNotModified was returned.
81470func (c *RegionDisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81471	gensupport.SetOptions(c.urlParams_, opts...)
81472	res, err := c.doRequest("json")
81473	if res != nil && res.StatusCode == http.StatusNotModified {
81474		if res.Body != nil {
81475			res.Body.Close()
81476		}
81477		return nil, &googleapi.Error{
81478			Code:   res.StatusCode,
81479			Header: res.Header,
81480		}
81481	}
81482	if err != nil {
81483		return nil, err
81484	}
81485	defer googleapi.CloseBody(res)
81486	if err := googleapi.CheckResponse(res); err != nil {
81487		return nil, err
81488	}
81489	ret := &Operation{
81490		ServerResponse: googleapi.ServerResponse{
81491			Header:         res.Header,
81492			HTTPStatusCode: res.StatusCode,
81493		},
81494	}
81495	target := &ret
81496	if err := gensupport.DecodeResponse(target, res); err != nil {
81497		return nil, err
81498	}
81499	return ret, nil
81500	// {
81501	//   "description": "Creates a snapshot of this regional disk.",
81502	//   "httpMethod": "POST",
81503	//   "id": "compute.regionDisks.createSnapshot",
81504	//   "parameterOrder": [
81505	//     "project",
81506	//     "region",
81507	//     "disk"
81508	//   ],
81509	//   "parameters": {
81510	//     "disk": {
81511	//       "description": "Name of the regional persistent disk to snapshot.",
81512	//       "location": "path",
81513	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81514	//       "required": true,
81515	//       "type": "string"
81516	//     },
81517	//     "project": {
81518	//       "description": "Project ID for this request.",
81519	//       "location": "path",
81520	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81521	//       "required": true,
81522	//       "type": "string"
81523	//     },
81524	//     "region": {
81525	//       "description": "Name of the region for this request.",
81526	//       "location": "path",
81527	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
81528	//       "required": true,
81529	//       "type": "string"
81530	//     },
81531	//     "requestId": {
81532	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81533	//       "location": "query",
81534	//       "type": "string"
81535	//     }
81536	//   },
81537	//   "path": "{project}/regions/{region}/disks/{disk}/createSnapshot",
81538	//   "request": {
81539	//     "$ref": "Snapshot"
81540	//   },
81541	//   "response": {
81542	//     "$ref": "Operation"
81543	//   },
81544	//   "scopes": [
81545	//     "https://www.googleapis.com/auth/cloud-platform",
81546	//     "https://www.googleapis.com/auth/compute"
81547	//   ]
81548	// }
81549
81550}
81551
81552// method id "compute.regionDisks.delete":
81553
81554type RegionDisksDeleteCall struct {
81555	s          *Service
81556	project    string
81557	region     string
81558	disk       string
81559	urlParams_ gensupport.URLParams
81560	ctx_       context.Context
81561	header_    http.Header
81562}
81563
81564// Delete: Deletes the specified regional persistent disk. Deleting a
81565// regional disk removes all the replicas of its data permanently and is
81566// irreversible. However, deleting a disk does not delete any snapshots
81567// previously made from the disk. You must separately delete snapshots.
81568func (r *RegionDisksService) Delete(project string, region string, disk string) *RegionDisksDeleteCall {
81569	c := &RegionDisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81570	c.project = project
81571	c.region = region
81572	c.disk = disk
81573	return c
81574}
81575
81576// RequestId sets the optional parameter "requestId": An optional
81577// request ID to identify requests. Specify a unique request ID so that
81578// if you must retry your request, the server will know to ignore the
81579// request if it has already been completed.
81580//
81581// For example, consider a situation where you make an initial request
81582// and the request times out. If you make the request again with the
81583// same request ID, the server can check if original operation with the
81584// same request ID was received, and if so, will ignore the second
81585// request. This prevents clients from accidentally creating duplicate
81586// commitments.
81587//
81588// The request ID must be a valid UUID with the exception that zero UUID
81589// is not supported (00000000-0000-0000-0000-000000000000).
81590func (c *RegionDisksDeleteCall) RequestId(requestId string) *RegionDisksDeleteCall {
81591	c.urlParams_.Set("requestId", requestId)
81592	return c
81593}
81594
81595// Fields allows partial responses to be retrieved. See
81596// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81597// for more information.
81598func (c *RegionDisksDeleteCall) Fields(s ...googleapi.Field) *RegionDisksDeleteCall {
81599	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81600	return c
81601}
81602
81603// Context sets the context to be used in this call's Do method. Any
81604// pending HTTP request will be aborted if the provided context is
81605// canceled.
81606func (c *RegionDisksDeleteCall) Context(ctx context.Context) *RegionDisksDeleteCall {
81607	c.ctx_ = ctx
81608	return c
81609}
81610
81611// Header returns an http.Header that can be modified by the caller to
81612// add HTTP headers to the request.
81613func (c *RegionDisksDeleteCall) Header() http.Header {
81614	if c.header_ == nil {
81615		c.header_ = make(http.Header)
81616	}
81617	return c.header_
81618}
81619
81620func (c *RegionDisksDeleteCall) doRequest(alt string) (*http.Response, error) {
81621	reqHeaders := make(http.Header)
81622	for k, v := range c.header_ {
81623		reqHeaders[k] = v
81624	}
81625	reqHeaders.Set("User-Agent", c.s.userAgent())
81626	var body io.Reader = nil
81627	c.urlParams_.Set("alt", alt)
81628	c.urlParams_.Set("prettyPrint", "false")
81629	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}")
81630	urls += "?" + c.urlParams_.Encode()
81631	req, err := http.NewRequest("DELETE", urls, body)
81632	if err != nil {
81633		return nil, err
81634	}
81635	req.Header = reqHeaders
81636	googleapi.Expand(req.URL, map[string]string{
81637		"project": c.project,
81638		"region":  c.region,
81639		"disk":    c.disk,
81640	})
81641	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81642}
81643
81644// Do executes the "compute.regionDisks.delete" call.
81645// Exactly one of *Operation or error will be non-nil. Any non-2xx
81646// status code is an error. Response headers are in either
81647// *Operation.ServerResponse.Header or (if a response was returned at
81648// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81649// to check whether the returned error was because
81650// http.StatusNotModified was returned.
81651func (c *RegionDisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81652	gensupport.SetOptions(c.urlParams_, opts...)
81653	res, err := c.doRequest("json")
81654	if res != nil && res.StatusCode == http.StatusNotModified {
81655		if res.Body != nil {
81656			res.Body.Close()
81657		}
81658		return nil, &googleapi.Error{
81659			Code:   res.StatusCode,
81660			Header: res.Header,
81661		}
81662	}
81663	if err != nil {
81664		return nil, err
81665	}
81666	defer googleapi.CloseBody(res)
81667	if err := googleapi.CheckResponse(res); err != nil {
81668		return nil, err
81669	}
81670	ret := &Operation{
81671		ServerResponse: googleapi.ServerResponse{
81672			Header:         res.Header,
81673			HTTPStatusCode: res.StatusCode,
81674		},
81675	}
81676	target := &ret
81677	if err := gensupport.DecodeResponse(target, res); err != nil {
81678		return nil, err
81679	}
81680	return ret, nil
81681	// {
81682	//   "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.",
81683	//   "httpMethod": "DELETE",
81684	//   "id": "compute.regionDisks.delete",
81685	//   "parameterOrder": [
81686	//     "project",
81687	//     "region",
81688	//     "disk"
81689	//   ],
81690	//   "parameters": {
81691	//     "disk": {
81692	//       "description": "Name of the regional persistent disk to delete.",
81693	//       "location": "path",
81694	//       "required": true,
81695	//       "type": "string"
81696	//     },
81697	//     "project": {
81698	//       "description": "Project ID for this request.",
81699	//       "location": "path",
81700	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81701	//       "required": true,
81702	//       "type": "string"
81703	//     },
81704	//     "region": {
81705	//       "description": "Name of the region for this request.",
81706	//       "location": "path",
81707	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
81708	//       "required": true,
81709	//       "type": "string"
81710	//     },
81711	//     "requestId": {
81712	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81713	//       "location": "query",
81714	//       "type": "string"
81715	//     }
81716	//   },
81717	//   "path": "{project}/regions/{region}/disks/{disk}",
81718	//   "response": {
81719	//     "$ref": "Operation"
81720	//   },
81721	//   "scopes": [
81722	//     "https://www.googleapis.com/auth/cloud-platform",
81723	//     "https://www.googleapis.com/auth/compute"
81724	//   ]
81725	// }
81726
81727}
81728
81729// method id "compute.regionDisks.get":
81730
81731type RegionDisksGetCall struct {
81732	s            *Service
81733	project      string
81734	region       string
81735	disk         string
81736	urlParams_   gensupport.URLParams
81737	ifNoneMatch_ string
81738	ctx_         context.Context
81739	header_      http.Header
81740}
81741
81742// Get: Returns a specified regional persistent disk.
81743func (r *RegionDisksService) Get(project string, region string, disk string) *RegionDisksGetCall {
81744	c := &RegionDisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81745	c.project = project
81746	c.region = region
81747	c.disk = disk
81748	return c
81749}
81750
81751// Fields allows partial responses to be retrieved. See
81752// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81753// for more information.
81754func (c *RegionDisksGetCall) Fields(s ...googleapi.Field) *RegionDisksGetCall {
81755	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81756	return c
81757}
81758
81759// IfNoneMatch sets the optional parameter which makes the operation
81760// fail if the object's ETag matches the given value. This is useful for
81761// getting updates only after the object has changed since the last
81762// request. Use googleapi.IsNotModified to check whether the response
81763// error from Do is the result of In-None-Match.
81764func (c *RegionDisksGetCall) IfNoneMatch(entityTag string) *RegionDisksGetCall {
81765	c.ifNoneMatch_ = entityTag
81766	return c
81767}
81768
81769// Context sets the context to be used in this call's Do method. Any
81770// pending HTTP request will be aborted if the provided context is
81771// canceled.
81772func (c *RegionDisksGetCall) Context(ctx context.Context) *RegionDisksGetCall {
81773	c.ctx_ = ctx
81774	return c
81775}
81776
81777// Header returns an http.Header that can be modified by the caller to
81778// add HTTP headers to the request.
81779func (c *RegionDisksGetCall) Header() http.Header {
81780	if c.header_ == nil {
81781		c.header_ = make(http.Header)
81782	}
81783	return c.header_
81784}
81785
81786func (c *RegionDisksGetCall) doRequest(alt string) (*http.Response, error) {
81787	reqHeaders := make(http.Header)
81788	for k, v := range c.header_ {
81789		reqHeaders[k] = v
81790	}
81791	reqHeaders.Set("User-Agent", c.s.userAgent())
81792	if c.ifNoneMatch_ != "" {
81793		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81794	}
81795	var body io.Reader = nil
81796	c.urlParams_.Set("alt", alt)
81797	c.urlParams_.Set("prettyPrint", "false")
81798	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}")
81799	urls += "?" + c.urlParams_.Encode()
81800	req, err := http.NewRequest("GET", urls, body)
81801	if err != nil {
81802		return nil, err
81803	}
81804	req.Header = reqHeaders
81805	googleapi.Expand(req.URL, map[string]string{
81806		"project": c.project,
81807		"region":  c.region,
81808		"disk":    c.disk,
81809	})
81810	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81811}
81812
81813// Do executes the "compute.regionDisks.get" call.
81814// Exactly one of *Disk or error will be non-nil. Any non-2xx status
81815// code is an error. Response headers are in either
81816// *Disk.ServerResponse.Header or (if a response was returned at all) in
81817// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
81818// whether the returned error was because http.StatusNotModified was
81819// returned.
81820func (c *RegionDisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
81821	gensupport.SetOptions(c.urlParams_, opts...)
81822	res, err := c.doRequest("json")
81823	if res != nil && res.StatusCode == http.StatusNotModified {
81824		if res.Body != nil {
81825			res.Body.Close()
81826		}
81827		return nil, &googleapi.Error{
81828			Code:   res.StatusCode,
81829			Header: res.Header,
81830		}
81831	}
81832	if err != nil {
81833		return nil, err
81834	}
81835	defer googleapi.CloseBody(res)
81836	if err := googleapi.CheckResponse(res); err != nil {
81837		return nil, err
81838	}
81839	ret := &Disk{
81840		ServerResponse: googleapi.ServerResponse{
81841			Header:         res.Header,
81842			HTTPStatusCode: res.StatusCode,
81843		},
81844	}
81845	target := &ret
81846	if err := gensupport.DecodeResponse(target, res); err != nil {
81847		return nil, err
81848	}
81849	return ret, nil
81850	// {
81851	//   "description": "Returns a specified regional persistent disk.",
81852	//   "httpMethod": "GET",
81853	//   "id": "compute.regionDisks.get",
81854	//   "parameterOrder": [
81855	//     "project",
81856	//     "region",
81857	//     "disk"
81858	//   ],
81859	//   "parameters": {
81860	//     "disk": {
81861	//       "description": "Name of the regional persistent disk to return.",
81862	//       "location": "path",
81863	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81864	//       "required": true,
81865	//       "type": "string"
81866	//     },
81867	//     "project": {
81868	//       "description": "Project ID for this request.",
81869	//       "location": "path",
81870	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81871	//       "required": true,
81872	//       "type": "string"
81873	//     },
81874	//     "region": {
81875	//       "description": "Name of the region for this request.",
81876	//       "location": "path",
81877	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
81878	//       "required": true,
81879	//       "type": "string"
81880	//     }
81881	//   },
81882	//   "path": "{project}/regions/{region}/disks/{disk}",
81883	//   "response": {
81884	//     "$ref": "Disk"
81885	//   },
81886	//   "scopes": [
81887	//     "https://www.googleapis.com/auth/cloud-platform",
81888	//     "https://www.googleapis.com/auth/compute",
81889	//     "https://www.googleapis.com/auth/compute.readonly"
81890	//   ]
81891	// }
81892
81893}
81894
81895// method id "compute.regionDisks.insert":
81896
81897type RegionDisksInsertCall struct {
81898	s          *Service
81899	project    string
81900	region     string
81901	disk       *Disk
81902	urlParams_ gensupport.URLParams
81903	ctx_       context.Context
81904	header_    http.Header
81905}
81906
81907// Insert: Creates a persistent regional disk in the specified project
81908// using the data included in the request.
81909func (r *RegionDisksService) Insert(project string, region string, disk *Disk) *RegionDisksInsertCall {
81910	c := &RegionDisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81911	c.project = project
81912	c.region = region
81913	c.disk = disk
81914	return c
81915}
81916
81917// RequestId sets the optional parameter "requestId": An optional
81918// request ID to identify requests. Specify a unique request ID so that
81919// if you must retry your request, the server will know to ignore the
81920// request if it has already been completed.
81921//
81922// For example, consider a situation where you make an initial request
81923// and the request times out. If you make the request again with the
81924// same request ID, the server can check if original operation with the
81925// same request ID was received, and if so, will ignore the second
81926// request. This prevents clients from accidentally creating duplicate
81927// commitments.
81928//
81929// The request ID must be a valid UUID with the exception that zero UUID
81930// is not supported (00000000-0000-0000-0000-000000000000).
81931func (c *RegionDisksInsertCall) RequestId(requestId string) *RegionDisksInsertCall {
81932	c.urlParams_.Set("requestId", requestId)
81933	return c
81934}
81935
81936// SourceImage sets the optional parameter "sourceImage": Source image
81937// to restore onto a disk.
81938func (c *RegionDisksInsertCall) SourceImage(sourceImage string) *RegionDisksInsertCall {
81939	c.urlParams_.Set("sourceImage", sourceImage)
81940	return c
81941}
81942
81943// Fields allows partial responses to be retrieved. See
81944// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81945// for more information.
81946func (c *RegionDisksInsertCall) Fields(s ...googleapi.Field) *RegionDisksInsertCall {
81947	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81948	return c
81949}
81950
81951// Context sets the context to be used in this call's Do method. Any
81952// pending HTTP request will be aborted if the provided context is
81953// canceled.
81954func (c *RegionDisksInsertCall) Context(ctx context.Context) *RegionDisksInsertCall {
81955	c.ctx_ = ctx
81956	return c
81957}
81958
81959// Header returns an http.Header that can be modified by the caller to
81960// add HTTP headers to the request.
81961func (c *RegionDisksInsertCall) Header() http.Header {
81962	if c.header_ == nil {
81963		c.header_ = make(http.Header)
81964	}
81965	return c.header_
81966}
81967
81968func (c *RegionDisksInsertCall) doRequest(alt string) (*http.Response, error) {
81969	reqHeaders := make(http.Header)
81970	for k, v := range c.header_ {
81971		reqHeaders[k] = v
81972	}
81973	reqHeaders.Set("User-Agent", c.s.userAgent())
81974	var body io.Reader = nil
81975	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
81976	if err != nil {
81977		return nil, err
81978	}
81979	reqHeaders.Set("Content-Type", "application/json")
81980	c.urlParams_.Set("alt", alt)
81981	c.urlParams_.Set("prettyPrint", "false")
81982	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks")
81983	urls += "?" + c.urlParams_.Encode()
81984	req, err := http.NewRequest("POST", urls, body)
81985	if err != nil {
81986		return nil, err
81987	}
81988	req.Header = reqHeaders
81989	googleapi.Expand(req.URL, map[string]string{
81990		"project": c.project,
81991		"region":  c.region,
81992	})
81993	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81994}
81995
81996// Do executes the "compute.regionDisks.insert" call.
81997// Exactly one of *Operation or error will be non-nil. Any non-2xx
81998// status code is an error. Response headers are in either
81999// *Operation.ServerResponse.Header or (if a response was returned at
82000// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82001// to check whether the returned error was because
82002// http.StatusNotModified was returned.
82003func (c *RegionDisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82004	gensupport.SetOptions(c.urlParams_, opts...)
82005	res, err := c.doRequest("json")
82006	if res != nil && res.StatusCode == http.StatusNotModified {
82007		if res.Body != nil {
82008			res.Body.Close()
82009		}
82010		return nil, &googleapi.Error{
82011			Code:   res.StatusCode,
82012			Header: res.Header,
82013		}
82014	}
82015	if err != nil {
82016		return nil, err
82017	}
82018	defer googleapi.CloseBody(res)
82019	if err := googleapi.CheckResponse(res); err != nil {
82020		return nil, err
82021	}
82022	ret := &Operation{
82023		ServerResponse: googleapi.ServerResponse{
82024			Header:         res.Header,
82025			HTTPStatusCode: res.StatusCode,
82026		},
82027	}
82028	target := &ret
82029	if err := gensupport.DecodeResponse(target, res); err != nil {
82030		return nil, err
82031	}
82032	return ret, nil
82033	// {
82034	//   "description": "Creates a persistent regional disk in the specified project using the data included in the request.",
82035	//   "httpMethod": "POST",
82036	//   "id": "compute.regionDisks.insert",
82037	//   "parameterOrder": [
82038	//     "project",
82039	//     "region"
82040	//   ],
82041	//   "parameters": {
82042	//     "project": {
82043	//       "description": "Project ID for this request.",
82044	//       "location": "path",
82045	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82046	//       "required": true,
82047	//       "type": "string"
82048	//     },
82049	//     "region": {
82050	//       "description": "Name of the region for this request.",
82051	//       "location": "path",
82052	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82053	//       "required": true,
82054	//       "type": "string"
82055	//     },
82056	//     "requestId": {
82057	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82058	//       "location": "query",
82059	//       "type": "string"
82060	//     },
82061	//     "sourceImage": {
82062	//       "description": "Optional. Source image to restore onto a disk.",
82063	//       "location": "query",
82064	//       "type": "string"
82065	//     }
82066	//   },
82067	//   "path": "{project}/regions/{region}/disks",
82068	//   "request": {
82069	//     "$ref": "Disk"
82070	//   },
82071	//   "response": {
82072	//     "$ref": "Operation"
82073	//   },
82074	//   "scopes": [
82075	//     "https://www.googleapis.com/auth/cloud-platform",
82076	//     "https://www.googleapis.com/auth/compute"
82077	//   ]
82078	// }
82079
82080}
82081
82082// method id "compute.regionDisks.list":
82083
82084type RegionDisksListCall struct {
82085	s            *Service
82086	project      string
82087	region       string
82088	urlParams_   gensupport.URLParams
82089	ifNoneMatch_ string
82090	ctx_         context.Context
82091	header_      http.Header
82092}
82093
82094// List: Retrieves the list of persistent disks contained within the
82095// specified region.
82096func (r *RegionDisksService) List(project string, region string) *RegionDisksListCall {
82097	c := &RegionDisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82098	c.project = project
82099	c.region = region
82100	return c
82101}
82102
82103// Filter sets the optional parameter "filter": A filter expression that
82104// filters resources listed in the response. The expression must specify
82105// the field name, a comparison operator, and the value that you want to
82106// use for filtering. The value must be a string, a number, or a
82107// boolean. The comparison operator must be either =, !=, >, or <.
82108//
82109// For example, if you are filtering Compute Engine instances, you can
82110// exclude instances named example-instance by specifying name !=
82111// example-instance.
82112//
82113// You can also filter nested fields. For example, you could specify
82114// scheduling.automaticRestart = false to include instances only if they
82115// are not scheduled for automatic restarts. You can use filtering on
82116// nested fields to filter based on resource labels.
82117//
82118// To filter on multiple expressions, provide each separate expression
82119// within parentheses. For example, (scheduling.automaticRestart = true)
82120// (cpuPlatform = "Intel Skylake"). By default, each expression is an
82121// AND expression. However, you can include AND and OR expressions
82122// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
82123// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
82124// true).
82125func (c *RegionDisksListCall) Filter(filter string) *RegionDisksListCall {
82126	c.urlParams_.Set("filter", filter)
82127	return c
82128}
82129
82130// MaxResults sets the optional parameter "maxResults": The maximum
82131// number of results per page that should be returned. If the number of
82132// available results is larger than maxResults, Compute Engine returns a
82133// nextPageToken that can be used to get the next page of results in
82134// subsequent list requests. Acceptable values are 0 to 500, inclusive.
82135// (Default: 500)
82136func (c *RegionDisksListCall) MaxResults(maxResults int64) *RegionDisksListCall {
82137	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
82138	return c
82139}
82140
82141// OrderBy sets the optional parameter "orderBy": Sorts list results by
82142// a certain order. By default, results are returned in alphanumerical
82143// order based on the resource name.
82144//
82145// You can also sort results in descending order based on the creation
82146// timestamp using orderBy="creationTimestamp desc". This sorts results
82147// based on the creationTimestamp field in reverse chronological order
82148// (newest result first). Use this to sort resources like operations so
82149// that the newest operation is returned first.
82150//
82151// Currently, only sorting by name or creationTimestamp desc is
82152// supported.
82153func (c *RegionDisksListCall) OrderBy(orderBy string) *RegionDisksListCall {
82154	c.urlParams_.Set("orderBy", orderBy)
82155	return c
82156}
82157
82158// PageToken sets the optional parameter "pageToken": Specifies a page
82159// token to use. Set pageToken to the nextPageToken returned by a
82160// previous list request to get the next page of results.
82161func (c *RegionDisksListCall) PageToken(pageToken string) *RegionDisksListCall {
82162	c.urlParams_.Set("pageToken", pageToken)
82163	return c
82164}
82165
82166// Fields allows partial responses to be retrieved. See
82167// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82168// for more information.
82169func (c *RegionDisksListCall) Fields(s ...googleapi.Field) *RegionDisksListCall {
82170	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82171	return c
82172}
82173
82174// IfNoneMatch sets the optional parameter which makes the operation
82175// fail if the object's ETag matches the given value. This is useful for
82176// getting updates only after the object has changed since the last
82177// request. Use googleapi.IsNotModified to check whether the response
82178// error from Do is the result of In-None-Match.
82179func (c *RegionDisksListCall) IfNoneMatch(entityTag string) *RegionDisksListCall {
82180	c.ifNoneMatch_ = entityTag
82181	return c
82182}
82183
82184// Context sets the context to be used in this call's Do method. Any
82185// pending HTTP request will be aborted if the provided context is
82186// canceled.
82187func (c *RegionDisksListCall) Context(ctx context.Context) *RegionDisksListCall {
82188	c.ctx_ = ctx
82189	return c
82190}
82191
82192// Header returns an http.Header that can be modified by the caller to
82193// add HTTP headers to the request.
82194func (c *RegionDisksListCall) Header() http.Header {
82195	if c.header_ == nil {
82196		c.header_ = make(http.Header)
82197	}
82198	return c.header_
82199}
82200
82201func (c *RegionDisksListCall) doRequest(alt string) (*http.Response, error) {
82202	reqHeaders := make(http.Header)
82203	for k, v := range c.header_ {
82204		reqHeaders[k] = v
82205	}
82206	reqHeaders.Set("User-Agent", c.s.userAgent())
82207	if c.ifNoneMatch_ != "" {
82208		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82209	}
82210	var body io.Reader = nil
82211	c.urlParams_.Set("alt", alt)
82212	c.urlParams_.Set("prettyPrint", "false")
82213	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks")
82214	urls += "?" + c.urlParams_.Encode()
82215	req, err := http.NewRequest("GET", urls, body)
82216	if err != nil {
82217		return nil, err
82218	}
82219	req.Header = reqHeaders
82220	googleapi.Expand(req.URL, map[string]string{
82221		"project": c.project,
82222		"region":  c.region,
82223	})
82224	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82225}
82226
82227// Do executes the "compute.regionDisks.list" call.
82228// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
82229// code is an error. Response headers are in either
82230// *DiskList.ServerResponse.Header or (if a response was returned at
82231// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82232// to check whether the returned error was because
82233// http.StatusNotModified was returned.
82234func (c *RegionDisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
82235	gensupport.SetOptions(c.urlParams_, opts...)
82236	res, err := c.doRequest("json")
82237	if res != nil && res.StatusCode == http.StatusNotModified {
82238		if res.Body != nil {
82239			res.Body.Close()
82240		}
82241		return nil, &googleapi.Error{
82242			Code:   res.StatusCode,
82243			Header: res.Header,
82244		}
82245	}
82246	if err != nil {
82247		return nil, err
82248	}
82249	defer googleapi.CloseBody(res)
82250	if err := googleapi.CheckResponse(res); err != nil {
82251		return nil, err
82252	}
82253	ret := &DiskList{
82254		ServerResponse: googleapi.ServerResponse{
82255			Header:         res.Header,
82256			HTTPStatusCode: res.StatusCode,
82257		},
82258	}
82259	target := &ret
82260	if err := gensupport.DecodeResponse(target, res); err != nil {
82261		return nil, err
82262	}
82263	return ret, nil
82264	// {
82265	//   "description": "Retrieves the list of persistent disks contained within the specified region.",
82266	//   "httpMethod": "GET",
82267	//   "id": "compute.regionDisks.list",
82268	//   "parameterOrder": [
82269	//     "project",
82270	//     "region"
82271	//   ],
82272	//   "parameters": {
82273	//     "filter": {
82274	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
82275	//       "location": "query",
82276	//       "type": "string"
82277	//     },
82278	//     "maxResults": {
82279	//       "default": "500",
82280	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
82281	//       "format": "uint32",
82282	//       "location": "query",
82283	//       "minimum": "0",
82284	//       "type": "integer"
82285	//     },
82286	//     "orderBy": {
82287	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
82288	//       "location": "query",
82289	//       "type": "string"
82290	//     },
82291	//     "pageToken": {
82292	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
82293	//       "location": "query",
82294	//       "type": "string"
82295	//     },
82296	//     "project": {
82297	//       "description": "Project ID for this request.",
82298	//       "location": "path",
82299	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82300	//       "required": true,
82301	//       "type": "string"
82302	//     },
82303	//     "region": {
82304	//       "description": "Name of the region for this request.",
82305	//       "location": "path",
82306	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82307	//       "required": true,
82308	//       "type": "string"
82309	//     }
82310	//   },
82311	//   "path": "{project}/regions/{region}/disks",
82312	//   "response": {
82313	//     "$ref": "DiskList"
82314	//   },
82315	//   "scopes": [
82316	//     "https://www.googleapis.com/auth/cloud-platform",
82317	//     "https://www.googleapis.com/auth/compute",
82318	//     "https://www.googleapis.com/auth/compute.readonly"
82319	//   ]
82320	// }
82321
82322}
82323
82324// Pages invokes f for each page of results.
82325// A non-nil error returned from f will halt the iteration.
82326// The provided context supersedes any context provided to the Context method.
82327func (c *RegionDisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
82328	c.ctx_ = ctx
82329	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
82330	for {
82331		x, err := c.Do()
82332		if err != nil {
82333			return err
82334		}
82335		if err := f(x); err != nil {
82336			return err
82337		}
82338		if x.NextPageToken == "" {
82339			return nil
82340		}
82341		c.PageToken(x.NextPageToken)
82342	}
82343}
82344
82345// method id "compute.regionDisks.resize":
82346
82347type RegionDisksResizeCall struct {
82348	s                        *Service
82349	project                  string
82350	region                   string
82351	disk                     string
82352	regiondisksresizerequest *RegionDisksResizeRequest
82353	urlParams_               gensupport.URLParams
82354	ctx_                     context.Context
82355	header_                  http.Header
82356}
82357
82358// Resize: Resizes the specified regional persistent disk.
82359func (r *RegionDisksService) Resize(project string, region string, disk string, regiondisksresizerequest *RegionDisksResizeRequest) *RegionDisksResizeCall {
82360	c := &RegionDisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82361	c.project = project
82362	c.region = region
82363	c.disk = disk
82364	c.regiondisksresizerequest = regiondisksresizerequest
82365	return c
82366}
82367
82368// RequestId sets the optional parameter "requestId": An optional
82369// request ID to identify requests. Specify a unique request ID so that
82370// if you must retry your request, the server will know to ignore the
82371// request if it has already been completed.
82372//
82373// For example, consider a situation where you make an initial request
82374// and the request times out. If you make the request again with the
82375// same request ID, the server can check if original operation with the
82376// same request ID was received, and if so, will ignore the second
82377// request. This prevents clients from accidentally creating duplicate
82378// commitments.
82379//
82380// The request ID must be a valid UUID with the exception that zero UUID
82381// is not supported (00000000-0000-0000-0000-000000000000).
82382func (c *RegionDisksResizeCall) RequestId(requestId string) *RegionDisksResizeCall {
82383	c.urlParams_.Set("requestId", requestId)
82384	return c
82385}
82386
82387// Fields allows partial responses to be retrieved. See
82388// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82389// for more information.
82390func (c *RegionDisksResizeCall) Fields(s ...googleapi.Field) *RegionDisksResizeCall {
82391	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82392	return c
82393}
82394
82395// Context sets the context to be used in this call's Do method. Any
82396// pending HTTP request will be aborted if the provided context is
82397// canceled.
82398func (c *RegionDisksResizeCall) Context(ctx context.Context) *RegionDisksResizeCall {
82399	c.ctx_ = ctx
82400	return c
82401}
82402
82403// Header returns an http.Header that can be modified by the caller to
82404// add HTTP headers to the request.
82405func (c *RegionDisksResizeCall) Header() http.Header {
82406	if c.header_ == nil {
82407		c.header_ = make(http.Header)
82408	}
82409	return c.header_
82410}
82411
82412func (c *RegionDisksResizeCall) doRequest(alt string) (*http.Response, error) {
82413	reqHeaders := make(http.Header)
82414	for k, v := range c.header_ {
82415		reqHeaders[k] = v
82416	}
82417	reqHeaders.Set("User-Agent", c.s.userAgent())
82418	var body io.Reader = nil
82419	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksresizerequest)
82420	if err != nil {
82421		return nil, err
82422	}
82423	reqHeaders.Set("Content-Type", "application/json")
82424	c.urlParams_.Set("alt", alt)
82425	c.urlParams_.Set("prettyPrint", "false")
82426	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/resize")
82427	urls += "?" + c.urlParams_.Encode()
82428	req, err := http.NewRequest("POST", urls, body)
82429	if err != nil {
82430		return nil, err
82431	}
82432	req.Header = reqHeaders
82433	googleapi.Expand(req.URL, map[string]string{
82434		"project": c.project,
82435		"region":  c.region,
82436		"disk":    c.disk,
82437	})
82438	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82439}
82440
82441// Do executes the "compute.regionDisks.resize" call.
82442// Exactly one of *Operation or error will be non-nil. Any non-2xx
82443// status code is an error. Response headers are in either
82444// *Operation.ServerResponse.Header or (if a response was returned at
82445// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82446// to check whether the returned error was because
82447// http.StatusNotModified was returned.
82448func (c *RegionDisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82449	gensupport.SetOptions(c.urlParams_, opts...)
82450	res, err := c.doRequest("json")
82451	if res != nil && res.StatusCode == http.StatusNotModified {
82452		if res.Body != nil {
82453			res.Body.Close()
82454		}
82455		return nil, &googleapi.Error{
82456			Code:   res.StatusCode,
82457			Header: res.Header,
82458		}
82459	}
82460	if err != nil {
82461		return nil, err
82462	}
82463	defer googleapi.CloseBody(res)
82464	if err := googleapi.CheckResponse(res); err != nil {
82465		return nil, err
82466	}
82467	ret := &Operation{
82468		ServerResponse: googleapi.ServerResponse{
82469			Header:         res.Header,
82470			HTTPStatusCode: res.StatusCode,
82471		},
82472	}
82473	target := &ret
82474	if err := gensupport.DecodeResponse(target, res); err != nil {
82475		return nil, err
82476	}
82477	return ret, nil
82478	// {
82479	//   "description": "Resizes the specified regional persistent disk.",
82480	//   "httpMethod": "POST",
82481	//   "id": "compute.regionDisks.resize",
82482	//   "parameterOrder": [
82483	//     "project",
82484	//     "region",
82485	//     "disk"
82486	//   ],
82487	//   "parameters": {
82488	//     "disk": {
82489	//       "description": "Name of the regional persistent disk.",
82490	//       "location": "path",
82491	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82492	//       "required": true,
82493	//       "type": "string"
82494	//     },
82495	//     "project": {
82496	//       "description": "The project ID for this request.",
82497	//       "location": "path",
82498	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82499	//       "required": true,
82500	//       "type": "string"
82501	//     },
82502	//     "region": {
82503	//       "description": "Name of the region for this request.",
82504	//       "location": "path",
82505	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82506	//       "required": true,
82507	//       "type": "string"
82508	//     },
82509	//     "requestId": {
82510	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82511	//       "location": "query",
82512	//       "type": "string"
82513	//     }
82514	//   },
82515	//   "path": "{project}/regions/{region}/disks/{disk}/resize",
82516	//   "request": {
82517	//     "$ref": "RegionDisksResizeRequest"
82518	//   },
82519	//   "response": {
82520	//     "$ref": "Operation"
82521	//   },
82522	//   "scopes": [
82523	//     "https://www.googleapis.com/auth/cloud-platform",
82524	//     "https://www.googleapis.com/auth/compute"
82525	//   ]
82526	// }
82527
82528}
82529
82530// method id "compute.regionDisks.setLabels":
82531
82532type RegionDisksSetLabelsCall struct {
82533	s                      *Service
82534	project                string
82535	region                 string
82536	resource               string
82537	regionsetlabelsrequest *RegionSetLabelsRequest
82538	urlParams_             gensupport.URLParams
82539	ctx_                   context.Context
82540	header_                http.Header
82541}
82542
82543// SetLabels: Sets the labels on the target regional disk.
82544func (r *RegionDisksService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *RegionDisksSetLabelsCall {
82545	c := &RegionDisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82546	c.project = project
82547	c.region = region
82548	c.resource = resource
82549	c.regionsetlabelsrequest = regionsetlabelsrequest
82550	return c
82551}
82552
82553// RequestId sets the optional parameter "requestId": An optional
82554// request ID to identify requests. Specify a unique request ID so that
82555// if you must retry your request, the server will know to ignore the
82556// request if it has already been completed.
82557//
82558// For example, consider a situation where you make an initial request
82559// and the request times out. If you make the request again with the
82560// same request ID, the server can check if original operation with the
82561// same request ID was received, and if so, will ignore the second
82562// request. This prevents clients from accidentally creating duplicate
82563// commitments.
82564//
82565// The request ID must be a valid UUID with the exception that zero UUID
82566// is not supported (00000000-0000-0000-0000-000000000000).
82567func (c *RegionDisksSetLabelsCall) RequestId(requestId string) *RegionDisksSetLabelsCall {
82568	c.urlParams_.Set("requestId", requestId)
82569	return c
82570}
82571
82572// Fields allows partial responses to be retrieved. See
82573// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82574// for more information.
82575func (c *RegionDisksSetLabelsCall) Fields(s ...googleapi.Field) *RegionDisksSetLabelsCall {
82576	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82577	return c
82578}
82579
82580// Context sets the context to be used in this call's Do method. Any
82581// pending HTTP request will be aborted if the provided context is
82582// canceled.
82583func (c *RegionDisksSetLabelsCall) Context(ctx context.Context) *RegionDisksSetLabelsCall {
82584	c.ctx_ = ctx
82585	return c
82586}
82587
82588// Header returns an http.Header that can be modified by the caller to
82589// add HTTP headers to the request.
82590func (c *RegionDisksSetLabelsCall) Header() http.Header {
82591	if c.header_ == nil {
82592		c.header_ = make(http.Header)
82593	}
82594	return c.header_
82595}
82596
82597func (c *RegionDisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
82598	reqHeaders := make(http.Header)
82599	for k, v := range c.header_ {
82600		reqHeaders[k] = v
82601	}
82602	reqHeaders.Set("User-Agent", c.s.userAgent())
82603	var body io.Reader = nil
82604	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
82605	if err != nil {
82606		return nil, err
82607	}
82608	reqHeaders.Set("Content-Type", "application/json")
82609	c.urlParams_.Set("alt", alt)
82610	c.urlParams_.Set("prettyPrint", "false")
82611	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/setLabels")
82612	urls += "?" + c.urlParams_.Encode()
82613	req, err := http.NewRequest("POST", urls, body)
82614	if err != nil {
82615		return nil, err
82616	}
82617	req.Header = reqHeaders
82618	googleapi.Expand(req.URL, map[string]string{
82619		"project":  c.project,
82620		"region":   c.region,
82621		"resource": c.resource,
82622	})
82623	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82624}
82625
82626// Do executes the "compute.regionDisks.setLabels" call.
82627// Exactly one of *Operation or error will be non-nil. Any non-2xx
82628// status code is an error. Response headers are in either
82629// *Operation.ServerResponse.Header or (if a response was returned at
82630// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82631// to check whether the returned error was because
82632// http.StatusNotModified was returned.
82633func (c *RegionDisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82634	gensupport.SetOptions(c.urlParams_, opts...)
82635	res, err := c.doRequest("json")
82636	if res != nil && res.StatusCode == http.StatusNotModified {
82637		if res.Body != nil {
82638			res.Body.Close()
82639		}
82640		return nil, &googleapi.Error{
82641			Code:   res.StatusCode,
82642			Header: res.Header,
82643		}
82644	}
82645	if err != nil {
82646		return nil, err
82647	}
82648	defer googleapi.CloseBody(res)
82649	if err := googleapi.CheckResponse(res); err != nil {
82650		return nil, err
82651	}
82652	ret := &Operation{
82653		ServerResponse: googleapi.ServerResponse{
82654			Header:         res.Header,
82655			HTTPStatusCode: res.StatusCode,
82656		},
82657	}
82658	target := &ret
82659	if err := gensupport.DecodeResponse(target, res); err != nil {
82660		return nil, err
82661	}
82662	return ret, nil
82663	// {
82664	//   "description": "Sets the labels on the target regional disk.",
82665	//   "httpMethod": "POST",
82666	//   "id": "compute.regionDisks.setLabels",
82667	//   "parameterOrder": [
82668	//     "project",
82669	//     "region",
82670	//     "resource"
82671	//   ],
82672	//   "parameters": {
82673	//     "project": {
82674	//       "description": "Project ID for this request.",
82675	//       "location": "path",
82676	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82677	//       "required": true,
82678	//       "type": "string"
82679	//     },
82680	//     "region": {
82681	//       "description": "The region for this request.",
82682	//       "location": "path",
82683	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82684	//       "required": true,
82685	//       "type": "string"
82686	//     },
82687	//     "requestId": {
82688	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82689	//       "location": "query",
82690	//       "type": "string"
82691	//     },
82692	//     "resource": {
82693	//       "description": "Name or id of the resource for this request.",
82694	//       "location": "path",
82695	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82696	//       "required": true,
82697	//       "type": "string"
82698	//     }
82699	//   },
82700	//   "path": "{project}/regions/{region}/disks/{resource}/setLabels",
82701	//   "request": {
82702	//     "$ref": "RegionSetLabelsRequest"
82703	//   },
82704	//   "response": {
82705	//     "$ref": "Operation"
82706	//   },
82707	//   "scopes": [
82708	//     "https://www.googleapis.com/auth/cloud-platform",
82709	//     "https://www.googleapis.com/auth/compute"
82710	//   ]
82711	// }
82712
82713}
82714
82715// method id "compute.regionDisks.testIamPermissions":
82716
82717type RegionDisksTestIamPermissionsCall struct {
82718	s                      *Service
82719	project                string
82720	region                 string
82721	resource               string
82722	testpermissionsrequest *TestPermissionsRequest
82723	urlParams_             gensupport.URLParams
82724	ctx_                   context.Context
82725	header_                http.Header
82726}
82727
82728// TestIamPermissions: Returns permissions that a caller has on the
82729// specified resource.
82730func (r *RegionDisksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionDisksTestIamPermissionsCall {
82731	c := &RegionDisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82732	c.project = project
82733	c.region = region
82734	c.resource = resource
82735	c.testpermissionsrequest = testpermissionsrequest
82736	return c
82737}
82738
82739// Fields allows partial responses to be retrieved. See
82740// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82741// for more information.
82742func (c *RegionDisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionDisksTestIamPermissionsCall {
82743	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82744	return c
82745}
82746
82747// Context sets the context to be used in this call's Do method. Any
82748// pending HTTP request will be aborted if the provided context is
82749// canceled.
82750func (c *RegionDisksTestIamPermissionsCall) Context(ctx context.Context) *RegionDisksTestIamPermissionsCall {
82751	c.ctx_ = ctx
82752	return c
82753}
82754
82755// Header returns an http.Header that can be modified by the caller to
82756// add HTTP headers to the request.
82757func (c *RegionDisksTestIamPermissionsCall) Header() http.Header {
82758	if c.header_ == nil {
82759		c.header_ = make(http.Header)
82760	}
82761	return c.header_
82762}
82763
82764func (c *RegionDisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
82765	reqHeaders := make(http.Header)
82766	for k, v := range c.header_ {
82767		reqHeaders[k] = v
82768	}
82769	reqHeaders.Set("User-Agent", c.s.userAgent())
82770	var body io.Reader = nil
82771	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
82772	if err != nil {
82773		return nil, err
82774	}
82775	reqHeaders.Set("Content-Type", "application/json")
82776	c.urlParams_.Set("alt", alt)
82777	c.urlParams_.Set("prettyPrint", "false")
82778	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/testIamPermissions")
82779	urls += "?" + c.urlParams_.Encode()
82780	req, err := http.NewRequest("POST", urls, body)
82781	if err != nil {
82782		return nil, err
82783	}
82784	req.Header = reqHeaders
82785	googleapi.Expand(req.URL, map[string]string{
82786		"project":  c.project,
82787		"region":   c.region,
82788		"resource": c.resource,
82789	})
82790	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82791}
82792
82793// Do executes the "compute.regionDisks.testIamPermissions" call.
82794// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
82795// non-2xx status code is an error. Response headers are in either
82796// *TestPermissionsResponse.ServerResponse.Header or (if a response was
82797// returned at all) in error.(*googleapi.Error).Header. Use
82798// googleapi.IsNotModified to check whether the returned error was
82799// because http.StatusNotModified was returned.
82800func (c *RegionDisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
82801	gensupport.SetOptions(c.urlParams_, opts...)
82802	res, err := c.doRequest("json")
82803	if res != nil && res.StatusCode == http.StatusNotModified {
82804		if res.Body != nil {
82805			res.Body.Close()
82806		}
82807		return nil, &googleapi.Error{
82808			Code:   res.StatusCode,
82809			Header: res.Header,
82810		}
82811	}
82812	if err != nil {
82813		return nil, err
82814	}
82815	defer googleapi.CloseBody(res)
82816	if err := googleapi.CheckResponse(res); err != nil {
82817		return nil, err
82818	}
82819	ret := &TestPermissionsResponse{
82820		ServerResponse: googleapi.ServerResponse{
82821			Header:         res.Header,
82822			HTTPStatusCode: res.StatusCode,
82823		},
82824	}
82825	target := &ret
82826	if err := gensupport.DecodeResponse(target, res); err != nil {
82827		return nil, err
82828	}
82829	return ret, nil
82830	// {
82831	//   "description": "Returns permissions that a caller has on the specified resource.",
82832	//   "httpMethod": "POST",
82833	//   "id": "compute.regionDisks.testIamPermissions",
82834	//   "parameterOrder": [
82835	//     "project",
82836	//     "region",
82837	//     "resource"
82838	//   ],
82839	//   "parameters": {
82840	//     "project": {
82841	//       "description": "Project ID for this request.",
82842	//       "location": "path",
82843	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82844	//       "required": true,
82845	//       "type": "string"
82846	//     },
82847	//     "region": {
82848	//       "description": "The name of the region for this request.",
82849	//       "location": "path",
82850	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82851	//       "required": true,
82852	//       "type": "string"
82853	//     },
82854	//     "resource": {
82855	//       "description": "Name or id of the resource for this request.",
82856	//       "location": "path",
82857	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82858	//       "required": true,
82859	//       "type": "string"
82860	//     }
82861	//   },
82862	//   "path": "{project}/regions/{region}/disks/{resource}/testIamPermissions",
82863	//   "request": {
82864	//     "$ref": "TestPermissionsRequest"
82865	//   },
82866	//   "response": {
82867	//     "$ref": "TestPermissionsResponse"
82868	//   },
82869	//   "scopes": [
82870	//     "https://www.googleapis.com/auth/cloud-platform",
82871	//     "https://www.googleapis.com/auth/compute",
82872	//     "https://www.googleapis.com/auth/compute.readonly"
82873	//   ]
82874	// }
82875
82876}
82877
82878// method id "compute.regionInstanceGroupManagers.abandonInstances":
82879
82880type RegionInstanceGroupManagersAbandonInstancesCall struct {
82881	s                                                  *Service
82882	project                                            string
82883	region                                             string
82884	instanceGroupManager                               string
82885	regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest
82886	urlParams_                                         gensupport.URLParams
82887	ctx_                                               context.Context
82888	header_                                            http.Header
82889}
82890
82891// AbandonInstances: Flags the specified instances to be immediately
82892// removed from the managed instance group. Abandoning an instance does
82893// not delete the instance, but it does remove the instance from any
82894// target pools that are applied by the managed instance group. This
82895// method reduces the targetSize of the managed instance group by the
82896// number of instances that you abandon. This operation is marked as
82897// DONE when the action is scheduled even if the instances have not yet
82898// been removed from the group. You must separately verify the status of
82899// the abandoning action with the listmanagedinstances method.
82900//
82901// If the group is part of a backend service that has enabled connection
82902// draining, it can take up to 60 seconds after the connection draining
82903// duration has elapsed before the VM instance is removed or
82904// deleted.
82905//
82906// You can specify a maximum of 1000 instances with this method per
82907// request.
82908func (r *RegionInstanceGroupManagersService) AbandonInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest) *RegionInstanceGroupManagersAbandonInstancesCall {
82909	c := &RegionInstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82910	c.project = project
82911	c.region = region
82912	c.instanceGroupManager = instanceGroupManager
82913	c.regioninstancegroupmanagersabandoninstancesrequest = regioninstancegroupmanagersabandoninstancesrequest
82914	return c
82915}
82916
82917// RequestId sets the optional parameter "requestId": An optional
82918// request ID to identify requests. Specify a unique request ID so that
82919// if you must retry your request, the server will know to ignore the
82920// request if it has already been completed.
82921//
82922// For example, consider a situation where you make an initial request
82923// and the request times out. If you make the request again with the
82924// same request ID, the server can check if original operation with the
82925// same request ID was received, and if so, will ignore the second
82926// request. This prevents clients from accidentally creating duplicate
82927// commitments.
82928//
82929// The request ID must be a valid UUID with the exception that zero UUID
82930// is not supported (00000000-0000-0000-0000-000000000000).
82931func (c *RegionInstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersAbandonInstancesCall {
82932	c.urlParams_.Set("requestId", requestId)
82933	return c
82934}
82935
82936// Fields allows partial responses to be retrieved. See
82937// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82938// for more information.
82939func (c *RegionInstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersAbandonInstancesCall {
82940	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82941	return c
82942}
82943
82944// Context sets the context to be used in this call's Do method. Any
82945// pending HTTP request will be aborted if the provided context is
82946// canceled.
82947func (c *RegionInstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersAbandonInstancesCall {
82948	c.ctx_ = ctx
82949	return c
82950}
82951
82952// Header returns an http.Header that can be modified by the caller to
82953// add HTTP headers to the request.
82954func (c *RegionInstanceGroupManagersAbandonInstancesCall) Header() http.Header {
82955	if c.header_ == nil {
82956		c.header_ = make(http.Header)
82957	}
82958	return c.header_
82959}
82960
82961func (c *RegionInstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
82962	reqHeaders := make(http.Header)
82963	for k, v := range c.header_ {
82964		reqHeaders[k] = v
82965	}
82966	reqHeaders.Set("User-Agent", c.s.userAgent())
82967	var body io.Reader = nil
82968	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersabandoninstancesrequest)
82969	if err != nil {
82970		return nil, err
82971	}
82972	reqHeaders.Set("Content-Type", "application/json")
82973	c.urlParams_.Set("alt", alt)
82974	c.urlParams_.Set("prettyPrint", "false")
82975	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
82976	urls += "?" + c.urlParams_.Encode()
82977	req, err := http.NewRequest("POST", urls, body)
82978	if err != nil {
82979		return nil, err
82980	}
82981	req.Header = reqHeaders
82982	googleapi.Expand(req.URL, map[string]string{
82983		"project":              c.project,
82984		"region":               c.region,
82985		"instanceGroupManager": c.instanceGroupManager,
82986	})
82987	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82988}
82989
82990// Do executes the "compute.regionInstanceGroupManagers.abandonInstances" call.
82991// Exactly one of *Operation or error will be non-nil. Any non-2xx
82992// status code is an error. Response headers are in either
82993// *Operation.ServerResponse.Header or (if a response was returned at
82994// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82995// to check whether the returned error was because
82996// http.StatusNotModified was returned.
82997func (c *RegionInstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82998	gensupport.SetOptions(c.urlParams_, opts...)
82999	res, err := c.doRequest("json")
83000	if res != nil && res.StatusCode == http.StatusNotModified {
83001		if res.Body != nil {
83002			res.Body.Close()
83003		}
83004		return nil, &googleapi.Error{
83005			Code:   res.StatusCode,
83006			Header: res.Header,
83007		}
83008	}
83009	if err != nil {
83010		return nil, err
83011	}
83012	defer googleapi.CloseBody(res)
83013	if err := googleapi.CheckResponse(res); err != nil {
83014		return nil, err
83015	}
83016	ret := &Operation{
83017		ServerResponse: googleapi.ServerResponse{
83018			Header:         res.Header,
83019			HTTPStatusCode: res.StatusCode,
83020		},
83021	}
83022	target := &ret
83023	if err := gensupport.DecodeResponse(target, res); err != nil {
83024		return nil, err
83025	}
83026	return ret, nil
83027	// {
83028	//   "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.",
83029	//   "httpMethod": "POST",
83030	//   "id": "compute.regionInstanceGroupManagers.abandonInstances",
83031	//   "parameterOrder": [
83032	//     "project",
83033	//     "region",
83034	//     "instanceGroupManager"
83035	//   ],
83036	//   "parameters": {
83037	//     "instanceGroupManager": {
83038	//       "description": "Name of the managed instance group.",
83039	//       "location": "path",
83040	//       "required": true,
83041	//       "type": "string"
83042	//     },
83043	//     "project": {
83044	//       "description": "Project ID for this request.",
83045	//       "location": "path",
83046	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83047	//       "required": true,
83048	//       "type": "string"
83049	//     },
83050	//     "region": {
83051	//       "description": "Name of the region scoping this request.",
83052	//       "location": "path",
83053	//       "required": true,
83054	//       "type": "string"
83055	//     },
83056	//     "requestId": {
83057	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83058	//       "location": "query",
83059	//       "type": "string"
83060	//     }
83061	//   },
83062	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
83063	//   "request": {
83064	//     "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest"
83065	//   },
83066	//   "response": {
83067	//     "$ref": "Operation"
83068	//   },
83069	//   "scopes": [
83070	//     "https://www.googleapis.com/auth/cloud-platform",
83071	//     "https://www.googleapis.com/auth/compute"
83072	//   ]
83073	// }
83074
83075}
83076
83077// method id "compute.regionInstanceGroupManagers.delete":
83078
83079type RegionInstanceGroupManagersDeleteCall struct {
83080	s                    *Service
83081	project              string
83082	region               string
83083	instanceGroupManager string
83084	urlParams_           gensupport.URLParams
83085	ctx_                 context.Context
83086	header_              http.Header
83087}
83088
83089// Delete: Deletes the specified managed instance group and all of the
83090// instances in that group.
83091func (r *RegionInstanceGroupManagersService) Delete(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersDeleteCall {
83092	c := &RegionInstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83093	c.project = project
83094	c.region = region
83095	c.instanceGroupManager = instanceGroupManager
83096	return c
83097}
83098
83099// RequestId sets the optional parameter "requestId": An optional
83100// request ID to identify requests. Specify a unique request ID so that
83101// if you must retry your request, the server will know to ignore the
83102// request if it has already been completed.
83103//
83104// For example, consider a situation where you make an initial request
83105// and the request times out. If you make the request again with the
83106// same request ID, the server can check if original operation with the
83107// same request ID was received, and if so, will ignore the second
83108// request. This prevents clients from accidentally creating duplicate
83109// commitments.
83110//
83111// The request ID must be a valid UUID with the exception that zero UUID
83112// is not supported (00000000-0000-0000-0000-000000000000).
83113func (c *RegionInstanceGroupManagersDeleteCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteCall {
83114	c.urlParams_.Set("requestId", requestId)
83115	return c
83116}
83117
83118// Fields allows partial responses to be retrieved. See
83119// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83120// for more information.
83121func (c *RegionInstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteCall {
83122	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83123	return c
83124}
83125
83126// Context sets the context to be used in this call's Do method. Any
83127// pending HTTP request will be aborted if the provided context is
83128// canceled.
83129func (c *RegionInstanceGroupManagersDeleteCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteCall {
83130	c.ctx_ = ctx
83131	return c
83132}
83133
83134// Header returns an http.Header that can be modified by the caller to
83135// add HTTP headers to the request.
83136func (c *RegionInstanceGroupManagersDeleteCall) Header() http.Header {
83137	if c.header_ == nil {
83138		c.header_ = make(http.Header)
83139	}
83140	return c.header_
83141}
83142
83143func (c *RegionInstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
83144	reqHeaders := make(http.Header)
83145	for k, v := range c.header_ {
83146		reqHeaders[k] = v
83147	}
83148	reqHeaders.Set("User-Agent", c.s.userAgent())
83149	var body io.Reader = nil
83150	c.urlParams_.Set("alt", alt)
83151	c.urlParams_.Set("prettyPrint", "false")
83152	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
83153	urls += "?" + c.urlParams_.Encode()
83154	req, err := http.NewRequest("DELETE", urls, body)
83155	if err != nil {
83156		return nil, err
83157	}
83158	req.Header = reqHeaders
83159	googleapi.Expand(req.URL, map[string]string{
83160		"project":              c.project,
83161		"region":               c.region,
83162		"instanceGroupManager": c.instanceGroupManager,
83163	})
83164	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83165}
83166
83167// Do executes the "compute.regionInstanceGroupManagers.delete" call.
83168// Exactly one of *Operation or error will be non-nil. Any non-2xx
83169// status code is an error. Response headers are in either
83170// *Operation.ServerResponse.Header or (if a response was returned at
83171// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83172// to check whether the returned error was because
83173// http.StatusNotModified was returned.
83174func (c *RegionInstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83175	gensupport.SetOptions(c.urlParams_, opts...)
83176	res, err := c.doRequest("json")
83177	if res != nil && res.StatusCode == http.StatusNotModified {
83178		if res.Body != nil {
83179			res.Body.Close()
83180		}
83181		return nil, &googleapi.Error{
83182			Code:   res.StatusCode,
83183			Header: res.Header,
83184		}
83185	}
83186	if err != nil {
83187		return nil, err
83188	}
83189	defer googleapi.CloseBody(res)
83190	if err := googleapi.CheckResponse(res); err != nil {
83191		return nil, err
83192	}
83193	ret := &Operation{
83194		ServerResponse: googleapi.ServerResponse{
83195			Header:         res.Header,
83196			HTTPStatusCode: res.StatusCode,
83197		},
83198	}
83199	target := &ret
83200	if err := gensupport.DecodeResponse(target, res); err != nil {
83201		return nil, err
83202	}
83203	return ret, nil
83204	// {
83205	//   "description": "Deletes the specified managed instance group and all of the instances in that group.",
83206	//   "httpMethod": "DELETE",
83207	//   "id": "compute.regionInstanceGroupManagers.delete",
83208	//   "parameterOrder": [
83209	//     "project",
83210	//     "region",
83211	//     "instanceGroupManager"
83212	//   ],
83213	//   "parameters": {
83214	//     "instanceGroupManager": {
83215	//       "description": "Name of the managed instance group to delete.",
83216	//       "location": "path",
83217	//       "required": true,
83218	//       "type": "string"
83219	//     },
83220	//     "project": {
83221	//       "description": "Project ID for this request.",
83222	//       "location": "path",
83223	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83224	//       "required": true,
83225	//       "type": "string"
83226	//     },
83227	//     "region": {
83228	//       "description": "Name of the region scoping this request.",
83229	//       "location": "path",
83230	//       "required": true,
83231	//       "type": "string"
83232	//     },
83233	//     "requestId": {
83234	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83235	//       "location": "query",
83236	//       "type": "string"
83237	//     }
83238	//   },
83239	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
83240	//   "response": {
83241	//     "$ref": "Operation"
83242	//   },
83243	//   "scopes": [
83244	//     "https://www.googleapis.com/auth/cloud-platform",
83245	//     "https://www.googleapis.com/auth/compute"
83246	//   ]
83247	// }
83248
83249}
83250
83251// method id "compute.regionInstanceGroupManagers.deleteInstances":
83252
83253type RegionInstanceGroupManagersDeleteInstancesCall struct {
83254	s                                                 *Service
83255	project                                           string
83256	region                                            string
83257	instanceGroupManager                              string
83258	regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest
83259	urlParams_                                        gensupport.URLParams
83260	ctx_                                              context.Context
83261	header_                                           http.Header
83262}
83263
83264// DeleteInstances: Flags the specified instances in the managed
83265// instance group to be immediately deleted. The instances are also
83266// removed from any target pools of which they were a member. This
83267// method reduces the targetSize of the managed instance group by the
83268// number of instances that you delete. The deleteInstances operation is
83269// marked DONE if the deleteInstances request is successful. The
83270// underlying actions take additional time. You must separately verify
83271// the status of the deleting action with the listmanagedinstances
83272// method.
83273//
83274// If the group is part of a backend service that has enabled connection
83275// draining, it can take up to 60 seconds after the connection draining
83276// duration has elapsed before the VM instance is removed or
83277// deleted.
83278//
83279// You can specify a maximum of 1000 instances with this method per
83280// request.
83281func (r *RegionInstanceGroupManagersService) DeleteInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest) *RegionInstanceGroupManagersDeleteInstancesCall {
83282	c := &RegionInstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83283	c.project = project
83284	c.region = region
83285	c.instanceGroupManager = instanceGroupManager
83286	c.regioninstancegroupmanagersdeleteinstancesrequest = regioninstancegroupmanagersdeleteinstancesrequest
83287	return c
83288}
83289
83290// RequestId sets the optional parameter "requestId": An optional
83291// request ID to identify requests. Specify a unique request ID so that
83292// if you must retry your request, the server will know to ignore the
83293// request if it has already been completed.
83294//
83295// For example, consider a situation where you make an initial request
83296// and the request times out. If you make the request again with the
83297// same request ID, the server can check if original operation with the
83298// same request ID was received, and if so, will ignore the second
83299// request. This prevents clients from accidentally creating duplicate
83300// commitments.
83301//
83302// The request ID must be a valid UUID with the exception that zero UUID
83303// is not supported (00000000-0000-0000-0000-000000000000).
83304func (c *RegionInstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteInstancesCall {
83305	c.urlParams_.Set("requestId", requestId)
83306	return c
83307}
83308
83309// Fields allows partial responses to be retrieved. See
83310// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83311// for more information.
83312func (c *RegionInstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteInstancesCall {
83313	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83314	return c
83315}
83316
83317// Context sets the context to be used in this call's Do method. Any
83318// pending HTTP request will be aborted if the provided context is
83319// canceled.
83320func (c *RegionInstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteInstancesCall {
83321	c.ctx_ = ctx
83322	return c
83323}
83324
83325// Header returns an http.Header that can be modified by the caller to
83326// add HTTP headers to the request.
83327func (c *RegionInstanceGroupManagersDeleteInstancesCall) Header() http.Header {
83328	if c.header_ == nil {
83329		c.header_ = make(http.Header)
83330	}
83331	return c.header_
83332}
83333
83334func (c *RegionInstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
83335	reqHeaders := make(http.Header)
83336	for k, v := range c.header_ {
83337		reqHeaders[k] = v
83338	}
83339	reqHeaders.Set("User-Agent", c.s.userAgent())
83340	var body io.Reader = nil
83341	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersdeleteinstancesrequest)
83342	if err != nil {
83343		return nil, err
83344	}
83345	reqHeaders.Set("Content-Type", "application/json")
83346	c.urlParams_.Set("alt", alt)
83347	c.urlParams_.Set("prettyPrint", "false")
83348	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
83349	urls += "?" + c.urlParams_.Encode()
83350	req, err := http.NewRequest("POST", urls, body)
83351	if err != nil {
83352		return nil, err
83353	}
83354	req.Header = reqHeaders
83355	googleapi.Expand(req.URL, map[string]string{
83356		"project":              c.project,
83357		"region":               c.region,
83358		"instanceGroupManager": c.instanceGroupManager,
83359	})
83360	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83361}
83362
83363// Do executes the "compute.regionInstanceGroupManagers.deleteInstances" call.
83364// Exactly one of *Operation or error will be non-nil. Any non-2xx
83365// status code is an error. Response headers are in either
83366// *Operation.ServerResponse.Header or (if a response was returned at
83367// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83368// to check whether the returned error was because
83369// http.StatusNotModified was returned.
83370func (c *RegionInstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83371	gensupport.SetOptions(c.urlParams_, opts...)
83372	res, err := c.doRequest("json")
83373	if res != nil && res.StatusCode == http.StatusNotModified {
83374		if res.Body != nil {
83375			res.Body.Close()
83376		}
83377		return nil, &googleapi.Error{
83378			Code:   res.StatusCode,
83379			Header: res.Header,
83380		}
83381	}
83382	if err != nil {
83383		return nil, err
83384	}
83385	defer googleapi.CloseBody(res)
83386	if err := googleapi.CheckResponse(res); err != nil {
83387		return nil, err
83388	}
83389	ret := &Operation{
83390		ServerResponse: googleapi.ServerResponse{
83391			Header:         res.Header,
83392			HTTPStatusCode: res.StatusCode,
83393		},
83394	}
83395	target := &ret
83396	if err := gensupport.DecodeResponse(target, res); err != nil {
83397		return nil, err
83398	}
83399	return ret, nil
83400	// {
83401	//   "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.",
83402	//   "httpMethod": "POST",
83403	//   "id": "compute.regionInstanceGroupManagers.deleteInstances",
83404	//   "parameterOrder": [
83405	//     "project",
83406	//     "region",
83407	//     "instanceGroupManager"
83408	//   ],
83409	//   "parameters": {
83410	//     "instanceGroupManager": {
83411	//       "description": "Name of the managed instance group.",
83412	//       "location": "path",
83413	//       "required": true,
83414	//       "type": "string"
83415	//     },
83416	//     "project": {
83417	//       "description": "Project ID for this request.",
83418	//       "location": "path",
83419	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83420	//       "required": true,
83421	//       "type": "string"
83422	//     },
83423	//     "region": {
83424	//       "description": "Name of the region scoping this request.",
83425	//       "location": "path",
83426	//       "required": true,
83427	//       "type": "string"
83428	//     },
83429	//     "requestId": {
83430	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83431	//       "location": "query",
83432	//       "type": "string"
83433	//     }
83434	//   },
83435	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
83436	//   "request": {
83437	//     "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest"
83438	//   },
83439	//   "response": {
83440	//     "$ref": "Operation"
83441	//   },
83442	//   "scopes": [
83443	//     "https://www.googleapis.com/auth/cloud-platform",
83444	//     "https://www.googleapis.com/auth/compute"
83445	//   ]
83446	// }
83447
83448}
83449
83450// method id "compute.regionInstanceGroupManagers.get":
83451
83452type RegionInstanceGroupManagersGetCall struct {
83453	s                    *Service
83454	project              string
83455	region               string
83456	instanceGroupManager string
83457	urlParams_           gensupport.URLParams
83458	ifNoneMatch_         string
83459	ctx_                 context.Context
83460	header_              http.Header
83461}
83462
83463// Get: Returns all of the details about the specified managed instance
83464// group.
83465func (r *RegionInstanceGroupManagersService) Get(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersGetCall {
83466	c := &RegionInstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83467	c.project = project
83468	c.region = region
83469	c.instanceGroupManager = instanceGroupManager
83470	return c
83471}
83472
83473// Fields allows partial responses to be retrieved. See
83474// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83475// for more information.
83476func (c *RegionInstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersGetCall {
83477	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83478	return c
83479}
83480
83481// IfNoneMatch sets the optional parameter which makes the operation
83482// fail if the object's ETag matches the given value. This is useful for
83483// getting updates only after the object has changed since the last
83484// request. Use googleapi.IsNotModified to check whether the response
83485// error from Do is the result of In-None-Match.
83486func (c *RegionInstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersGetCall {
83487	c.ifNoneMatch_ = entityTag
83488	return c
83489}
83490
83491// Context sets the context to be used in this call's Do method. Any
83492// pending HTTP request will be aborted if the provided context is
83493// canceled.
83494func (c *RegionInstanceGroupManagersGetCall) Context(ctx context.Context) *RegionInstanceGroupManagersGetCall {
83495	c.ctx_ = ctx
83496	return c
83497}
83498
83499// Header returns an http.Header that can be modified by the caller to
83500// add HTTP headers to the request.
83501func (c *RegionInstanceGroupManagersGetCall) Header() http.Header {
83502	if c.header_ == nil {
83503		c.header_ = make(http.Header)
83504	}
83505	return c.header_
83506}
83507
83508func (c *RegionInstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
83509	reqHeaders := make(http.Header)
83510	for k, v := range c.header_ {
83511		reqHeaders[k] = v
83512	}
83513	reqHeaders.Set("User-Agent", c.s.userAgent())
83514	if c.ifNoneMatch_ != "" {
83515		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
83516	}
83517	var body io.Reader = nil
83518	c.urlParams_.Set("alt", alt)
83519	c.urlParams_.Set("prettyPrint", "false")
83520	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
83521	urls += "?" + c.urlParams_.Encode()
83522	req, err := http.NewRequest("GET", urls, body)
83523	if err != nil {
83524		return nil, err
83525	}
83526	req.Header = reqHeaders
83527	googleapi.Expand(req.URL, map[string]string{
83528		"project":              c.project,
83529		"region":               c.region,
83530		"instanceGroupManager": c.instanceGroupManager,
83531	})
83532	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83533}
83534
83535// Do executes the "compute.regionInstanceGroupManagers.get" call.
83536// Exactly one of *InstanceGroupManager or error will be non-nil. Any
83537// non-2xx status code is an error. Response headers are in either
83538// *InstanceGroupManager.ServerResponse.Header or (if a response was
83539// returned at all) in error.(*googleapi.Error).Header. Use
83540// googleapi.IsNotModified to check whether the returned error was
83541// because http.StatusNotModified was returned.
83542func (c *RegionInstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
83543	gensupport.SetOptions(c.urlParams_, opts...)
83544	res, err := c.doRequest("json")
83545	if res != nil && res.StatusCode == http.StatusNotModified {
83546		if res.Body != nil {
83547			res.Body.Close()
83548		}
83549		return nil, &googleapi.Error{
83550			Code:   res.StatusCode,
83551			Header: res.Header,
83552		}
83553	}
83554	if err != nil {
83555		return nil, err
83556	}
83557	defer googleapi.CloseBody(res)
83558	if err := googleapi.CheckResponse(res); err != nil {
83559		return nil, err
83560	}
83561	ret := &InstanceGroupManager{
83562		ServerResponse: googleapi.ServerResponse{
83563			Header:         res.Header,
83564			HTTPStatusCode: res.StatusCode,
83565		},
83566	}
83567	target := &ret
83568	if err := gensupport.DecodeResponse(target, res); err != nil {
83569		return nil, err
83570	}
83571	return ret, nil
83572	// {
83573	//   "description": "Returns all of the details about the specified managed instance group.",
83574	//   "httpMethod": "GET",
83575	//   "id": "compute.regionInstanceGroupManagers.get",
83576	//   "parameterOrder": [
83577	//     "project",
83578	//     "region",
83579	//     "instanceGroupManager"
83580	//   ],
83581	//   "parameters": {
83582	//     "instanceGroupManager": {
83583	//       "description": "Name of the managed instance group to return.",
83584	//       "location": "path",
83585	//       "required": true,
83586	//       "type": "string"
83587	//     },
83588	//     "project": {
83589	//       "description": "Project ID for this request.",
83590	//       "location": "path",
83591	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83592	//       "required": true,
83593	//       "type": "string"
83594	//     },
83595	//     "region": {
83596	//       "description": "Name of the region scoping this request.",
83597	//       "location": "path",
83598	//       "required": true,
83599	//       "type": "string"
83600	//     }
83601	//   },
83602	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
83603	//   "response": {
83604	//     "$ref": "InstanceGroupManager"
83605	//   },
83606	//   "scopes": [
83607	//     "https://www.googleapis.com/auth/cloud-platform",
83608	//     "https://www.googleapis.com/auth/compute",
83609	//     "https://www.googleapis.com/auth/compute.readonly"
83610	//   ]
83611	// }
83612
83613}
83614
83615// method id "compute.regionInstanceGroupManagers.insert":
83616
83617type RegionInstanceGroupManagersInsertCall struct {
83618	s                    *Service
83619	project              string
83620	region               string
83621	instancegroupmanager *InstanceGroupManager
83622	urlParams_           gensupport.URLParams
83623	ctx_                 context.Context
83624	header_              http.Header
83625}
83626
83627// Insert: Creates a managed instance group using the information that
83628// you specify in the request. After the group is created, instances in
83629// the group are created using the specified instance template. This
83630// operation is marked as DONE when the group is created even if the
83631// instances in the group have not yet been created. You must separately
83632// verify the status of the individual instances with the
83633// listmanagedinstances method.
83634//
83635// A regional managed instance group can contain up to 2000 instances.
83636func (r *RegionInstanceGroupManagersService) Insert(project string, region string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersInsertCall {
83637	c := &RegionInstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83638	c.project = project
83639	c.region = region
83640	c.instancegroupmanager = instancegroupmanager
83641	return c
83642}
83643
83644// RequestId sets the optional parameter "requestId": An optional
83645// request ID to identify requests. Specify a unique request ID so that
83646// if you must retry your request, the server will know to ignore the
83647// request if it has already been completed.
83648//
83649// For example, consider a situation where you make an initial request
83650// and the request times out. If you make the request again with the
83651// same request ID, the server can check if original operation with the
83652// same request ID was received, and if so, will ignore the second
83653// request. This prevents clients from accidentally creating duplicate
83654// commitments.
83655//
83656// The request ID must be a valid UUID with the exception that zero UUID
83657// is not supported (00000000-0000-0000-0000-000000000000).
83658func (c *RegionInstanceGroupManagersInsertCall) RequestId(requestId string) *RegionInstanceGroupManagersInsertCall {
83659	c.urlParams_.Set("requestId", requestId)
83660	return c
83661}
83662
83663// Fields allows partial responses to be retrieved. See
83664// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83665// for more information.
83666func (c *RegionInstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersInsertCall {
83667	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83668	return c
83669}
83670
83671// Context sets the context to be used in this call's Do method. Any
83672// pending HTTP request will be aborted if the provided context is
83673// canceled.
83674func (c *RegionInstanceGroupManagersInsertCall) Context(ctx context.Context) *RegionInstanceGroupManagersInsertCall {
83675	c.ctx_ = ctx
83676	return c
83677}
83678
83679// Header returns an http.Header that can be modified by the caller to
83680// add HTTP headers to the request.
83681func (c *RegionInstanceGroupManagersInsertCall) Header() http.Header {
83682	if c.header_ == nil {
83683		c.header_ = make(http.Header)
83684	}
83685	return c.header_
83686}
83687
83688func (c *RegionInstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
83689	reqHeaders := make(http.Header)
83690	for k, v := range c.header_ {
83691		reqHeaders[k] = v
83692	}
83693	reqHeaders.Set("User-Agent", c.s.userAgent())
83694	var body io.Reader = nil
83695	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
83696	if err != nil {
83697		return nil, err
83698	}
83699	reqHeaders.Set("Content-Type", "application/json")
83700	c.urlParams_.Set("alt", alt)
83701	c.urlParams_.Set("prettyPrint", "false")
83702	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers")
83703	urls += "?" + c.urlParams_.Encode()
83704	req, err := http.NewRequest("POST", urls, body)
83705	if err != nil {
83706		return nil, err
83707	}
83708	req.Header = reqHeaders
83709	googleapi.Expand(req.URL, map[string]string{
83710		"project": c.project,
83711		"region":  c.region,
83712	})
83713	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83714}
83715
83716// Do executes the "compute.regionInstanceGroupManagers.insert" call.
83717// Exactly one of *Operation or error will be non-nil. Any non-2xx
83718// status code is an error. Response headers are in either
83719// *Operation.ServerResponse.Header or (if a response was returned at
83720// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83721// to check whether the returned error was because
83722// http.StatusNotModified was returned.
83723func (c *RegionInstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83724	gensupport.SetOptions(c.urlParams_, opts...)
83725	res, err := c.doRequest("json")
83726	if res != nil && res.StatusCode == http.StatusNotModified {
83727		if res.Body != nil {
83728			res.Body.Close()
83729		}
83730		return nil, &googleapi.Error{
83731			Code:   res.StatusCode,
83732			Header: res.Header,
83733		}
83734	}
83735	if err != nil {
83736		return nil, err
83737	}
83738	defer googleapi.CloseBody(res)
83739	if err := googleapi.CheckResponse(res); err != nil {
83740		return nil, err
83741	}
83742	ret := &Operation{
83743		ServerResponse: googleapi.ServerResponse{
83744			Header:         res.Header,
83745			HTTPStatusCode: res.StatusCode,
83746		},
83747	}
83748	target := &ret
83749	if err := gensupport.DecodeResponse(target, res); err != nil {
83750		return nil, err
83751	}
83752	return ret, nil
83753	// {
83754	//   "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.",
83755	//   "httpMethod": "POST",
83756	//   "id": "compute.regionInstanceGroupManagers.insert",
83757	//   "parameterOrder": [
83758	//     "project",
83759	//     "region"
83760	//   ],
83761	//   "parameters": {
83762	//     "project": {
83763	//       "description": "Project ID for this request.",
83764	//       "location": "path",
83765	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83766	//       "required": true,
83767	//       "type": "string"
83768	//     },
83769	//     "region": {
83770	//       "description": "Name of the region scoping this request.",
83771	//       "location": "path",
83772	//       "required": true,
83773	//       "type": "string"
83774	//     },
83775	//     "requestId": {
83776	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83777	//       "location": "query",
83778	//       "type": "string"
83779	//     }
83780	//   },
83781	//   "path": "{project}/regions/{region}/instanceGroupManagers",
83782	//   "request": {
83783	//     "$ref": "InstanceGroupManager"
83784	//   },
83785	//   "response": {
83786	//     "$ref": "Operation"
83787	//   },
83788	//   "scopes": [
83789	//     "https://www.googleapis.com/auth/cloud-platform",
83790	//     "https://www.googleapis.com/auth/compute"
83791	//   ]
83792	// }
83793
83794}
83795
83796// method id "compute.regionInstanceGroupManagers.list":
83797
83798type RegionInstanceGroupManagersListCall struct {
83799	s            *Service
83800	project      string
83801	region       string
83802	urlParams_   gensupport.URLParams
83803	ifNoneMatch_ string
83804	ctx_         context.Context
83805	header_      http.Header
83806}
83807
83808// List: Retrieves the list of managed instance groups that are
83809// contained within the specified region.
83810func (r *RegionInstanceGroupManagersService) List(project string, region string) *RegionInstanceGroupManagersListCall {
83811	c := &RegionInstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83812	c.project = project
83813	c.region = region
83814	return c
83815}
83816
83817// Filter sets the optional parameter "filter": A filter expression that
83818// filters resources listed in the response. The expression must specify
83819// the field name, a comparison operator, and the value that you want to
83820// use for filtering. The value must be a string, a number, or a
83821// boolean. The comparison operator must be either =, !=, >, or <.
83822//
83823// For example, if you are filtering Compute Engine instances, you can
83824// exclude instances named example-instance by specifying name !=
83825// example-instance.
83826//
83827// You can also filter nested fields. For example, you could specify
83828// scheduling.automaticRestart = false to include instances only if they
83829// are not scheduled for automatic restarts. You can use filtering on
83830// nested fields to filter based on resource labels.
83831//
83832// To filter on multiple expressions, provide each separate expression
83833// within parentheses. For example, (scheduling.automaticRestart = true)
83834// (cpuPlatform = "Intel Skylake"). By default, each expression is an
83835// AND expression. However, you can include AND and OR expressions
83836// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
83837// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
83838// true).
83839func (c *RegionInstanceGroupManagersListCall) Filter(filter string) *RegionInstanceGroupManagersListCall {
83840	c.urlParams_.Set("filter", filter)
83841	return c
83842}
83843
83844// MaxResults sets the optional parameter "maxResults": The maximum
83845// number of results per page that should be returned. If the number of
83846// available results is larger than maxResults, Compute Engine returns a
83847// nextPageToken that can be used to get the next page of results in
83848// subsequent list requests. Acceptable values are 0 to 500, inclusive.
83849// (Default: 500)
83850func (c *RegionInstanceGroupManagersListCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListCall {
83851	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
83852	return c
83853}
83854
83855// OrderBy sets the optional parameter "orderBy": Sorts list results by
83856// a certain order. By default, results are returned in alphanumerical
83857// order based on the resource name.
83858//
83859// You can also sort results in descending order based on the creation
83860// timestamp using orderBy="creationTimestamp desc". This sorts results
83861// based on the creationTimestamp field in reverse chronological order
83862// (newest result first). Use this to sort resources like operations so
83863// that the newest operation is returned first.
83864//
83865// Currently, only sorting by name or creationTimestamp desc is
83866// supported.
83867func (c *RegionInstanceGroupManagersListCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListCall {
83868	c.urlParams_.Set("orderBy", orderBy)
83869	return c
83870}
83871
83872// PageToken sets the optional parameter "pageToken": Specifies a page
83873// token to use. Set pageToken to the nextPageToken returned by a
83874// previous list request to get the next page of results.
83875func (c *RegionInstanceGroupManagersListCall) PageToken(pageToken string) *RegionInstanceGroupManagersListCall {
83876	c.urlParams_.Set("pageToken", pageToken)
83877	return c
83878}
83879
83880// Fields allows partial responses to be retrieved. See
83881// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83882// for more information.
83883func (c *RegionInstanceGroupManagersListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListCall {
83884	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83885	return c
83886}
83887
83888// IfNoneMatch sets the optional parameter which makes the operation
83889// fail if the object's ETag matches the given value. This is useful for
83890// getting updates only after the object has changed since the last
83891// request. Use googleapi.IsNotModified to check whether the response
83892// error from Do is the result of In-None-Match.
83893func (c *RegionInstanceGroupManagersListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListCall {
83894	c.ifNoneMatch_ = entityTag
83895	return c
83896}
83897
83898// Context sets the context to be used in this call's Do method. Any
83899// pending HTTP request will be aborted if the provided context is
83900// canceled.
83901func (c *RegionInstanceGroupManagersListCall) Context(ctx context.Context) *RegionInstanceGroupManagersListCall {
83902	c.ctx_ = ctx
83903	return c
83904}
83905
83906// Header returns an http.Header that can be modified by the caller to
83907// add HTTP headers to the request.
83908func (c *RegionInstanceGroupManagersListCall) Header() http.Header {
83909	if c.header_ == nil {
83910		c.header_ = make(http.Header)
83911	}
83912	return c.header_
83913}
83914
83915func (c *RegionInstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
83916	reqHeaders := make(http.Header)
83917	for k, v := range c.header_ {
83918		reqHeaders[k] = v
83919	}
83920	reqHeaders.Set("User-Agent", c.s.userAgent())
83921	if c.ifNoneMatch_ != "" {
83922		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
83923	}
83924	var body io.Reader = nil
83925	c.urlParams_.Set("alt", alt)
83926	c.urlParams_.Set("prettyPrint", "false")
83927	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers")
83928	urls += "?" + c.urlParams_.Encode()
83929	req, err := http.NewRequest("GET", urls, body)
83930	if err != nil {
83931		return nil, err
83932	}
83933	req.Header = reqHeaders
83934	googleapi.Expand(req.URL, map[string]string{
83935		"project": c.project,
83936		"region":  c.region,
83937	})
83938	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83939}
83940
83941// Do executes the "compute.regionInstanceGroupManagers.list" call.
83942// Exactly one of *RegionInstanceGroupManagerList or error will be
83943// non-nil. Any non-2xx status code is an error. Response headers are in
83944// either *RegionInstanceGroupManagerList.ServerResponse.Header or (if a
83945// response was returned at all) in error.(*googleapi.Error).Header. Use
83946// googleapi.IsNotModified to check whether the returned error was
83947// because http.StatusNotModified was returned.
83948func (c *RegionInstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagerList, error) {
83949	gensupport.SetOptions(c.urlParams_, opts...)
83950	res, err := c.doRequest("json")
83951	if res != nil && res.StatusCode == http.StatusNotModified {
83952		if res.Body != nil {
83953			res.Body.Close()
83954		}
83955		return nil, &googleapi.Error{
83956			Code:   res.StatusCode,
83957			Header: res.Header,
83958		}
83959	}
83960	if err != nil {
83961		return nil, err
83962	}
83963	defer googleapi.CloseBody(res)
83964	if err := googleapi.CheckResponse(res); err != nil {
83965		return nil, err
83966	}
83967	ret := &RegionInstanceGroupManagerList{
83968		ServerResponse: googleapi.ServerResponse{
83969			Header:         res.Header,
83970			HTTPStatusCode: res.StatusCode,
83971		},
83972	}
83973	target := &ret
83974	if err := gensupport.DecodeResponse(target, res); err != nil {
83975		return nil, err
83976	}
83977	return ret, nil
83978	// {
83979	//   "description": "Retrieves the list of managed instance groups that are contained within the specified region.",
83980	//   "httpMethod": "GET",
83981	//   "id": "compute.regionInstanceGroupManagers.list",
83982	//   "parameterOrder": [
83983	//     "project",
83984	//     "region"
83985	//   ],
83986	//   "parameters": {
83987	//     "filter": {
83988	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
83989	//       "location": "query",
83990	//       "type": "string"
83991	//     },
83992	//     "maxResults": {
83993	//       "default": "500",
83994	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
83995	//       "format": "uint32",
83996	//       "location": "query",
83997	//       "minimum": "0",
83998	//       "type": "integer"
83999	//     },
84000	//     "orderBy": {
84001	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
84002	//       "location": "query",
84003	//       "type": "string"
84004	//     },
84005	//     "pageToken": {
84006	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
84007	//       "location": "query",
84008	//       "type": "string"
84009	//     },
84010	//     "project": {
84011	//       "description": "Project ID for this request.",
84012	//       "location": "path",
84013	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84014	//       "required": true,
84015	//       "type": "string"
84016	//     },
84017	//     "region": {
84018	//       "description": "Name of the region scoping this request.",
84019	//       "location": "path",
84020	//       "required": true,
84021	//       "type": "string"
84022	//     }
84023	//   },
84024	//   "path": "{project}/regions/{region}/instanceGroupManagers",
84025	//   "response": {
84026	//     "$ref": "RegionInstanceGroupManagerList"
84027	//   },
84028	//   "scopes": [
84029	//     "https://www.googleapis.com/auth/cloud-platform",
84030	//     "https://www.googleapis.com/auth/compute",
84031	//     "https://www.googleapis.com/auth/compute.readonly"
84032	//   ]
84033	// }
84034
84035}
84036
84037// Pages invokes f for each page of results.
84038// A non-nil error returned from f will halt the iteration.
84039// The provided context supersedes any context provided to the Context method.
84040func (c *RegionInstanceGroupManagersListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagerList) error) error {
84041	c.ctx_ = ctx
84042	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
84043	for {
84044		x, err := c.Do()
84045		if err != nil {
84046			return err
84047		}
84048		if err := f(x); err != nil {
84049			return err
84050		}
84051		if x.NextPageToken == "" {
84052			return nil
84053		}
84054		c.PageToken(x.NextPageToken)
84055	}
84056}
84057
84058// method id "compute.regionInstanceGroupManagers.listManagedInstances":
84059
84060type RegionInstanceGroupManagersListManagedInstancesCall struct {
84061	s                    *Service
84062	project              string
84063	region               string
84064	instanceGroupManager string
84065	urlParams_           gensupport.URLParams
84066	ctx_                 context.Context
84067	header_              http.Header
84068}
84069
84070// ListManagedInstances: Lists the instances in the managed instance
84071// group and instances that are scheduled to be created. The list
84072// includes any current actions that the group has scheduled for its
84073// instances.
84074func (r *RegionInstanceGroupManagersService) ListManagedInstances(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListManagedInstancesCall {
84075	c := &RegionInstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84076	c.project = project
84077	c.region = region
84078	c.instanceGroupManager = instanceGroupManager
84079	return c
84080}
84081
84082// Filter sets the optional parameter "filter": A filter expression that
84083// filters resources listed in the response. The expression must specify
84084// the field name, a comparison operator, and the value that you want to
84085// use for filtering. The value must be a string, a number, or a
84086// boolean. The comparison operator must be either =, !=, >, or <.
84087//
84088// For example, if you are filtering Compute Engine instances, you can
84089// exclude instances named example-instance by specifying name !=
84090// example-instance.
84091//
84092// You can also filter nested fields. For example, you could specify
84093// scheduling.automaticRestart = false to include instances only if they
84094// are not scheduled for automatic restarts. You can use filtering on
84095// nested fields to filter based on resource labels.
84096//
84097// To filter on multiple expressions, provide each separate expression
84098// within parentheses. For example, (scheduling.automaticRestart = true)
84099// (cpuPlatform = "Intel Skylake"). By default, each expression is an
84100// AND expression. However, you can include AND and OR expressions
84101// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
84102// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
84103// true).
84104func (c *RegionInstanceGroupManagersListManagedInstancesCall) Filter(filter string) *RegionInstanceGroupManagersListManagedInstancesCall {
84105	c.urlParams_.Set("filter", filter)
84106	return c
84107}
84108
84109// MaxResults sets the optional parameter "maxResults": The maximum
84110// number of results per page that should be returned. If the number of
84111// available results is larger than maxResults, Compute Engine returns a
84112// nextPageToken that can be used to get the next page of results in
84113// subsequent list requests. Acceptable values are 0 to 500, inclusive.
84114// (Default: 500)
84115func (c *RegionInstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListManagedInstancesCall {
84116	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
84117	return c
84118}
84119
84120// OrderBy sets the optional parameter "order_by": Sorts list results by
84121// a certain order. By default, results are returned in alphanumerical
84122// order based on the resource name.
84123//
84124// You can also sort results in descending order based on the creation
84125// timestamp using orderBy="creationTimestamp desc". This sorts results
84126// based on the creationTimestamp field in reverse chronological order
84127// (newest result first). Use this to sort resources like operations so
84128// that the newest operation is returned first.
84129//
84130// Currently, only sorting by name or creationTimestamp desc is
84131// supported.
84132func (c *RegionInstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListManagedInstancesCall {
84133	c.urlParams_.Set("order_by", orderBy)
84134	return c
84135}
84136
84137// PageToken sets the optional parameter "pageToken": Specifies a page
84138// token to use. Set pageToken to the nextPageToken returned by a
84139// previous list request to get the next page of results.
84140func (c *RegionInstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *RegionInstanceGroupManagersListManagedInstancesCall {
84141	c.urlParams_.Set("pageToken", pageToken)
84142	return c
84143}
84144
84145// Fields allows partial responses to be retrieved. See
84146// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84147// for more information.
84148func (c *RegionInstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListManagedInstancesCall {
84149	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84150	return c
84151}
84152
84153// Context sets the context to be used in this call's Do method. Any
84154// pending HTTP request will be aborted if the provided context is
84155// canceled.
84156func (c *RegionInstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersListManagedInstancesCall {
84157	c.ctx_ = ctx
84158	return c
84159}
84160
84161// Header returns an http.Header that can be modified by the caller to
84162// add HTTP headers to the request.
84163func (c *RegionInstanceGroupManagersListManagedInstancesCall) Header() http.Header {
84164	if c.header_ == nil {
84165		c.header_ = make(http.Header)
84166	}
84167	return c.header_
84168}
84169
84170func (c *RegionInstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
84171	reqHeaders := make(http.Header)
84172	for k, v := range c.header_ {
84173		reqHeaders[k] = v
84174	}
84175	reqHeaders.Set("User-Agent", c.s.userAgent())
84176	var body io.Reader = nil
84177	c.urlParams_.Set("alt", alt)
84178	c.urlParams_.Set("prettyPrint", "false")
84179	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
84180	urls += "?" + c.urlParams_.Encode()
84181	req, err := http.NewRequest("POST", urls, body)
84182	if err != nil {
84183		return nil, err
84184	}
84185	req.Header = reqHeaders
84186	googleapi.Expand(req.URL, map[string]string{
84187		"project":              c.project,
84188		"region":               c.region,
84189		"instanceGroupManager": c.instanceGroupManager,
84190	})
84191	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84192}
84193
84194// Do executes the "compute.regionInstanceGroupManagers.listManagedInstances" call.
84195// Exactly one of *RegionInstanceGroupManagersListInstancesResponse or
84196// error will be non-nil. Any non-2xx status code is an error. Response
84197// headers are in either
84198// *RegionInstanceGroupManagersListInstancesResponse.ServerResponse.Heade
84199// r or (if a response was returned at all) in
84200// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
84201// whether the returned error was because http.StatusNotModified was
84202// returned.
84203func (c *RegionInstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstancesResponse, error) {
84204	gensupport.SetOptions(c.urlParams_, opts...)
84205	res, err := c.doRequest("json")
84206	if res != nil && res.StatusCode == http.StatusNotModified {
84207		if res.Body != nil {
84208			res.Body.Close()
84209		}
84210		return nil, &googleapi.Error{
84211			Code:   res.StatusCode,
84212			Header: res.Header,
84213		}
84214	}
84215	if err != nil {
84216		return nil, err
84217	}
84218	defer googleapi.CloseBody(res)
84219	if err := googleapi.CheckResponse(res); err != nil {
84220		return nil, err
84221	}
84222	ret := &RegionInstanceGroupManagersListInstancesResponse{
84223		ServerResponse: googleapi.ServerResponse{
84224			Header:         res.Header,
84225			HTTPStatusCode: res.StatusCode,
84226		},
84227	}
84228	target := &ret
84229	if err := gensupport.DecodeResponse(target, res); err != nil {
84230		return nil, err
84231	}
84232	return ret, nil
84233	// {
84234	//   "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.",
84235	//   "httpMethod": "POST",
84236	//   "id": "compute.regionInstanceGroupManagers.listManagedInstances",
84237	//   "parameterOrder": [
84238	//     "project",
84239	//     "region",
84240	//     "instanceGroupManager"
84241	//   ],
84242	//   "parameters": {
84243	//     "filter": {
84244	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
84245	//       "location": "query",
84246	//       "type": "string"
84247	//     },
84248	//     "instanceGroupManager": {
84249	//       "description": "The name of the managed instance group.",
84250	//       "location": "path",
84251	//       "required": true,
84252	//       "type": "string"
84253	//     },
84254	//     "maxResults": {
84255	//       "default": "500",
84256	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
84257	//       "format": "uint32",
84258	//       "location": "query",
84259	//       "minimum": "0",
84260	//       "type": "integer"
84261	//     },
84262	//     "order_by": {
84263	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
84264	//       "location": "query",
84265	//       "type": "string"
84266	//     },
84267	//     "pageToken": {
84268	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
84269	//       "location": "query",
84270	//       "type": "string"
84271	//     },
84272	//     "project": {
84273	//       "description": "Project ID for this request.",
84274	//       "location": "path",
84275	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84276	//       "required": true,
84277	//       "type": "string"
84278	//     },
84279	//     "region": {
84280	//       "description": "Name of the region scoping this request.",
84281	//       "location": "path",
84282	//       "required": true,
84283	//       "type": "string"
84284	//     }
84285	//   },
84286	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
84287	//   "response": {
84288	//     "$ref": "RegionInstanceGroupManagersListInstancesResponse"
84289	//   },
84290	//   "scopes": [
84291	//     "https://www.googleapis.com/auth/cloud-platform",
84292	//     "https://www.googleapis.com/auth/compute",
84293	//     "https://www.googleapis.com/auth/compute.readonly"
84294	//   ]
84295	// }
84296
84297}
84298
84299// method id "compute.regionInstanceGroupManagers.patch":
84300
84301type RegionInstanceGroupManagersPatchCall struct {
84302	s                    *Service
84303	project              string
84304	region               string
84305	instanceGroupManager string
84306	instancegroupmanager *InstanceGroupManager
84307	urlParams_           gensupport.URLParams
84308	ctx_                 context.Context
84309	header_              http.Header
84310}
84311
84312// Patch: Updates a managed instance group using the information that
84313// you specify in the request. This operation is marked as DONE when the
84314// group is patched even if the instances in the group are still in the
84315// process of being patched. You must separately verify the status of
84316// the individual instances with the listmanagedinstances method. This
84317// method supports PATCH semantics and uses the JSON merge patch format
84318// and processing rules.
84319func (r *RegionInstanceGroupManagersService) Patch(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersPatchCall {
84320	c := &RegionInstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84321	c.project = project
84322	c.region = region
84323	c.instanceGroupManager = instanceGroupManager
84324	c.instancegroupmanager = instancegroupmanager
84325	return c
84326}
84327
84328// RequestId sets the optional parameter "requestId": An optional
84329// request ID to identify requests. Specify a unique request ID so that
84330// if you must retry your request, the server will know to ignore the
84331// request if it has already been completed.
84332//
84333// For example, consider a situation where you make an initial request
84334// and the request times out. If you make the request again with the
84335// same request ID, the server can check if original operation with the
84336// same request ID was received, and if so, will ignore the second
84337// request. This prevents clients from accidentally creating duplicate
84338// commitments.
84339//
84340// The request ID must be a valid UUID with the exception that zero UUID
84341// is not supported (00000000-0000-0000-0000-000000000000).
84342func (c *RegionInstanceGroupManagersPatchCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchCall {
84343	c.urlParams_.Set("requestId", requestId)
84344	return c
84345}
84346
84347// Fields allows partial responses to be retrieved. See
84348// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84349// for more information.
84350func (c *RegionInstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchCall {
84351	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84352	return c
84353}
84354
84355// Context sets the context to be used in this call's Do method. Any
84356// pending HTTP request will be aborted if the provided context is
84357// canceled.
84358func (c *RegionInstanceGroupManagersPatchCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchCall {
84359	c.ctx_ = ctx
84360	return c
84361}
84362
84363// Header returns an http.Header that can be modified by the caller to
84364// add HTTP headers to the request.
84365func (c *RegionInstanceGroupManagersPatchCall) Header() http.Header {
84366	if c.header_ == nil {
84367		c.header_ = make(http.Header)
84368	}
84369	return c.header_
84370}
84371
84372func (c *RegionInstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
84373	reqHeaders := make(http.Header)
84374	for k, v := range c.header_ {
84375		reqHeaders[k] = v
84376	}
84377	reqHeaders.Set("User-Agent", c.s.userAgent())
84378	var body io.Reader = nil
84379	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
84380	if err != nil {
84381		return nil, err
84382	}
84383	reqHeaders.Set("Content-Type", "application/json")
84384	c.urlParams_.Set("alt", alt)
84385	c.urlParams_.Set("prettyPrint", "false")
84386	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
84387	urls += "?" + c.urlParams_.Encode()
84388	req, err := http.NewRequest("PATCH", urls, body)
84389	if err != nil {
84390		return nil, err
84391	}
84392	req.Header = reqHeaders
84393	googleapi.Expand(req.URL, map[string]string{
84394		"project":              c.project,
84395		"region":               c.region,
84396		"instanceGroupManager": c.instanceGroupManager,
84397	})
84398	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84399}
84400
84401// Do executes the "compute.regionInstanceGroupManagers.patch" call.
84402// Exactly one of *Operation or error will be non-nil. Any non-2xx
84403// status code is an error. Response headers are in either
84404// *Operation.ServerResponse.Header or (if a response was returned at
84405// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84406// to check whether the returned error was because
84407// http.StatusNotModified was returned.
84408func (c *RegionInstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84409	gensupport.SetOptions(c.urlParams_, opts...)
84410	res, err := c.doRequest("json")
84411	if res != nil && res.StatusCode == http.StatusNotModified {
84412		if res.Body != nil {
84413			res.Body.Close()
84414		}
84415		return nil, &googleapi.Error{
84416			Code:   res.StatusCode,
84417			Header: res.Header,
84418		}
84419	}
84420	if err != nil {
84421		return nil, err
84422	}
84423	defer googleapi.CloseBody(res)
84424	if err := googleapi.CheckResponse(res); err != nil {
84425		return nil, err
84426	}
84427	ret := &Operation{
84428		ServerResponse: googleapi.ServerResponse{
84429			Header:         res.Header,
84430			HTTPStatusCode: res.StatusCode,
84431		},
84432	}
84433	target := &ret
84434	if err := gensupport.DecodeResponse(target, res); err != nil {
84435		return nil, err
84436	}
84437	return ret, nil
84438	// {
84439	//   "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.",
84440	//   "httpMethod": "PATCH",
84441	//   "id": "compute.regionInstanceGroupManagers.patch",
84442	//   "parameterOrder": [
84443	//     "project",
84444	//     "region",
84445	//     "instanceGroupManager"
84446	//   ],
84447	//   "parameters": {
84448	//     "instanceGroupManager": {
84449	//       "description": "The name of the instance group manager.",
84450	//       "location": "path",
84451	//       "required": true,
84452	//       "type": "string"
84453	//     },
84454	//     "project": {
84455	//       "description": "Project ID for this request.",
84456	//       "location": "path",
84457	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84458	//       "required": true,
84459	//       "type": "string"
84460	//     },
84461	//     "region": {
84462	//       "description": "Name of the region scoping this request.",
84463	//       "location": "path",
84464	//       "required": true,
84465	//       "type": "string"
84466	//     },
84467	//     "requestId": {
84468	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84469	//       "location": "query",
84470	//       "type": "string"
84471	//     }
84472	//   },
84473	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
84474	//   "request": {
84475	//     "$ref": "InstanceGroupManager"
84476	//   },
84477	//   "response": {
84478	//     "$ref": "Operation"
84479	//   },
84480	//   "scopes": [
84481	//     "https://www.googleapis.com/auth/cloud-platform",
84482	//     "https://www.googleapis.com/auth/compute"
84483	//   ]
84484	// }
84485
84486}
84487
84488// method id "compute.regionInstanceGroupManagers.recreateInstances":
84489
84490type RegionInstanceGroupManagersRecreateInstancesCall struct {
84491	s                                          *Service
84492	project                                    string
84493	region                                     string
84494	instanceGroupManager                       string
84495	regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest
84496	urlParams_                                 gensupport.URLParams
84497	ctx_                                       context.Context
84498	header_                                    http.Header
84499}
84500
84501// RecreateInstances: Flags the specified instances in the managed
84502// instance group to be immediately recreated. The instances are deleted
84503// and recreated using the current instance template for the managed
84504// instance group. This operation is marked as DONE when the flag is set
84505// even if the instances have not yet been recreated. You must
84506// separately verify the status of the recreating action with the
84507// listmanagedinstances method.
84508//
84509// If the group is part of a backend service that has enabled connection
84510// draining, it can take up to 60 seconds after the connection draining
84511// duration has elapsed before the VM instance is removed or
84512// deleted.
84513//
84514// You can specify a maximum of 1000 instances with this method per
84515// request.
84516func (r *RegionInstanceGroupManagersService) RecreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest) *RegionInstanceGroupManagersRecreateInstancesCall {
84517	c := &RegionInstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84518	c.project = project
84519	c.region = region
84520	c.instanceGroupManager = instanceGroupManager
84521	c.regioninstancegroupmanagersrecreaterequest = regioninstancegroupmanagersrecreaterequest
84522	return c
84523}
84524
84525// RequestId sets the optional parameter "requestId": An optional
84526// request ID to identify requests. Specify a unique request ID so that
84527// if you must retry your request, the server will know to ignore the
84528// request if it has already been completed.
84529//
84530// For example, consider a situation where you make an initial request
84531// and the request times out. If you make the request again with the
84532// same request ID, the server can check if original operation with the
84533// same request ID was received, and if so, will ignore the second
84534// request. This prevents clients from accidentally creating duplicate
84535// commitments.
84536//
84537// The request ID must be a valid UUID with the exception that zero UUID
84538// is not supported (00000000-0000-0000-0000-000000000000).
84539func (c *RegionInstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersRecreateInstancesCall {
84540	c.urlParams_.Set("requestId", requestId)
84541	return c
84542}
84543
84544// Fields allows partial responses to be retrieved. See
84545// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84546// for more information.
84547func (c *RegionInstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersRecreateInstancesCall {
84548	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84549	return c
84550}
84551
84552// Context sets the context to be used in this call's Do method. Any
84553// pending HTTP request will be aborted if the provided context is
84554// canceled.
84555func (c *RegionInstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersRecreateInstancesCall {
84556	c.ctx_ = ctx
84557	return c
84558}
84559
84560// Header returns an http.Header that can be modified by the caller to
84561// add HTTP headers to the request.
84562func (c *RegionInstanceGroupManagersRecreateInstancesCall) Header() http.Header {
84563	if c.header_ == nil {
84564		c.header_ = make(http.Header)
84565	}
84566	return c.header_
84567}
84568
84569func (c *RegionInstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
84570	reqHeaders := make(http.Header)
84571	for k, v := range c.header_ {
84572		reqHeaders[k] = v
84573	}
84574	reqHeaders.Set("User-Agent", c.s.userAgent())
84575	var body io.Reader = nil
84576	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersrecreaterequest)
84577	if err != nil {
84578		return nil, err
84579	}
84580	reqHeaders.Set("Content-Type", "application/json")
84581	c.urlParams_.Set("alt", alt)
84582	c.urlParams_.Set("prettyPrint", "false")
84583	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
84584	urls += "?" + c.urlParams_.Encode()
84585	req, err := http.NewRequest("POST", urls, body)
84586	if err != nil {
84587		return nil, err
84588	}
84589	req.Header = reqHeaders
84590	googleapi.Expand(req.URL, map[string]string{
84591		"project":              c.project,
84592		"region":               c.region,
84593		"instanceGroupManager": c.instanceGroupManager,
84594	})
84595	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84596}
84597
84598// Do executes the "compute.regionInstanceGroupManagers.recreateInstances" call.
84599// Exactly one of *Operation or error will be non-nil. Any non-2xx
84600// status code is an error. Response headers are in either
84601// *Operation.ServerResponse.Header or (if a response was returned at
84602// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84603// to check whether the returned error was because
84604// http.StatusNotModified was returned.
84605func (c *RegionInstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84606	gensupport.SetOptions(c.urlParams_, opts...)
84607	res, err := c.doRequest("json")
84608	if res != nil && res.StatusCode == http.StatusNotModified {
84609		if res.Body != nil {
84610			res.Body.Close()
84611		}
84612		return nil, &googleapi.Error{
84613			Code:   res.StatusCode,
84614			Header: res.Header,
84615		}
84616	}
84617	if err != nil {
84618		return nil, err
84619	}
84620	defer googleapi.CloseBody(res)
84621	if err := googleapi.CheckResponse(res); err != nil {
84622		return nil, err
84623	}
84624	ret := &Operation{
84625		ServerResponse: googleapi.ServerResponse{
84626			Header:         res.Header,
84627			HTTPStatusCode: res.StatusCode,
84628		},
84629	}
84630	target := &ret
84631	if err := gensupport.DecodeResponse(target, res); err != nil {
84632		return nil, err
84633	}
84634	return ret, nil
84635	// {
84636	//   "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.",
84637	//   "httpMethod": "POST",
84638	//   "id": "compute.regionInstanceGroupManagers.recreateInstances",
84639	//   "parameterOrder": [
84640	//     "project",
84641	//     "region",
84642	//     "instanceGroupManager"
84643	//   ],
84644	//   "parameters": {
84645	//     "instanceGroupManager": {
84646	//       "description": "Name of the managed instance group.",
84647	//       "location": "path",
84648	//       "required": true,
84649	//       "type": "string"
84650	//     },
84651	//     "project": {
84652	//       "description": "Project ID for this request.",
84653	//       "location": "path",
84654	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84655	//       "required": true,
84656	//       "type": "string"
84657	//     },
84658	//     "region": {
84659	//       "description": "Name of the region scoping this request.",
84660	//       "location": "path",
84661	//       "required": true,
84662	//       "type": "string"
84663	//     },
84664	//     "requestId": {
84665	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84666	//       "location": "query",
84667	//       "type": "string"
84668	//     }
84669	//   },
84670	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
84671	//   "request": {
84672	//     "$ref": "RegionInstanceGroupManagersRecreateRequest"
84673	//   },
84674	//   "response": {
84675	//     "$ref": "Operation"
84676	//   },
84677	//   "scopes": [
84678	//     "https://www.googleapis.com/auth/cloud-platform",
84679	//     "https://www.googleapis.com/auth/compute"
84680	//   ]
84681	// }
84682
84683}
84684
84685// method id "compute.regionInstanceGroupManagers.resize":
84686
84687type RegionInstanceGroupManagersResizeCall struct {
84688	s                    *Service
84689	project              string
84690	region               string
84691	instanceGroupManager string
84692	urlParams_           gensupport.URLParams
84693	ctx_                 context.Context
84694	header_              http.Header
84695}
84696
84697// Resize: Changes the intended size of the managed instance group. If
84698// you increase the size, the group creates new instances using the
84699// current instance template. If you decrease the size, the group
84700// deletes one or more instances.
84701//
84702// The resize operation is marked DONE if the resize request is
84703// successful. The underlying actions take additional time. You must
84704// separately verify the status of the creating or deleting actions with
84705// the listmanagedinstances method.
84706//
84707// If the group is part of a backend service that has enabled connection
84708// draining, it can take up to 60 seconds after the connection draining
84709// duration has elapsed before the VM instance is removed or deleted.
84710func (r *RegionInstanceGroupManagersService) Resize(project string, region string, instanceGroupManager string, size int64) *RegionInstanceGroupManagersResizeCall {
84711	c := &RegionInstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84712	c.project = project
84713	c.region = region
84714	c.instanceGroupManager = instanceGroupManager
84715	c.urlParams_.Set("size", fmt.Sprint(size))
84716	return c
84717}
84718
84719// RequestId sets the optional parameter "requestId": An optional
84720// request ID to identify requests. Specify a unique request ID so that
84721// if you must retry your request, the server will know to ignore the
84722// request if it has already been completed.
84723//
84724// For example, consider a situation where you make an initial request
84725// and the request times out. If you make the request again with the
84726// same request ID, the server can check if original operation with the
84727// same request ID was received, and if so, will ignore the second
84728// request. This prevents clients from accidentally creating duplicate
84729// commitments.
84730//
84731// The request ID must be a valid UUID with the exception that zero UUID
84732// is not supported (00000000-0000-0000-0000-000000000000).
84733func (c *RegionInstanceGroupManagersResizeCall) RequestId(requestId string) *RegionInstanceGroupManagersResizeCall {
84734	c.urlParams_.Set("requestId", requestId)
84735	return c
84736}
84737
84738// Fields allows partial responses to be retrieved. See
84739// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84740// for more information.
84741func (c *RegionInstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersResizeCall {
84742	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84743	return c
84744}
84745
84746// Context sets the context to be used in this call's Do method. Any
84747// pending HTTP request will be aborted if the provided context is
84748// canceled.
84749func (c *RegionInstanceGroupManagersResizeCall) Context(ctx context.Context) *RegionInstanceGroupManagersResizeCall {
84750	c.ctx_ = ctx
84751	return c
84752}
84753
84754// Header returns an http.Header that can be modified by the caller to
84755// add HTTP headers to the request.
84756func (c *RegionInstanceGroupManagersResizeCall) Header() http.Header {
84757	if c.header_ == nil {
84758		c.header_ = make(http.Header)
84759	}
84760	return c.header_
84761}
84762
84763func (c *RegionInstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
84764	reqHeaders := make(http.Header)
84765	for k, v := range c.header_ {
84766		reqHeaders[k] = v
84767	}
84768	reqHeaders.Set("User-Agent", c.s.userAgent())
84769	var body io.Reader = nil
84770	c.urlParams_.Set("alt", alt)
84771	c.urlParams_.Set("prettyPrint", "false")
84772	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize")
84773	urls += "?" + c.urlParams_.Encode()
84774	req, err := http.NewRequest("POST", urls, body)
84775	if err != nil {
84776		return nil, err
84777	}
84778	req.Header = reqHeaders
84779	googleapi.Expand(req.URL, map[string]string{
84780		"project":              c.project,
84781		"region":               c.region,
84782		"instanceGroupManager": c.instanceGroupManager,
84783	})
84784	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84785}
84786
84787// Do executes the "compute.regionInstanceGroupManagers.resize" call.
84788// Exactly one of *Operation or error will be non-nil. Any non-2xx
84789// status code is an error. Response headers are in either
84790// *Operation.ServerResponse.Header or (if a response was returned at
84791// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84792// to check whether the returned error was because
84793// http.StatusNotModified was returned.
84794func (c *RegionInstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84795	gensupport.SetOptions(c.urlParams_, opts...)
84796	res, err := c.doRequest("json")
84797	if res != nil && res.StatusCode == http.StatusNotModified {
84798		if res.Body != nil {
84799			res.Body.Close()
84800		}
84801		return nil, &googleapi.Error{
84802			Code:   res.StatusCode,
84803			Header: res.Header,
84804		}
84805	}
84806	if err != nil {
84807		return nil, err
84808	}
84809	defer googleapi.CloseBody(res)
84810	if err := googleapi.CheckResponse(res); err != nil {
84811		return nil, err
84812	}
84813	ret := &Operation{
84814		ServerResponse: googleapi.ServerResponse{
84815			Header:         res.Header,
84816			HTTPStatusCode: res.StatusCode,
84817		},
84818	}
84819	target := &ret
84820	if err := gensupport.DecodeResponse(target, res); err != nil {
84821		return nil, err
84822	}
84823	return ret, nil
84824	// {
84825	//   "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.",
84826	//   "httpMethod": "POST",
84827	//   "id": "compute.regionInstanceGroupManagers.resize",
84828	//   "parameterOrder": [
84829	//     "project",
84830	//     "region",
84831	//     "instanceGroupManager",
84832	//     "size"
84833	//   ],
84834	//   "parameters": {
84835	//     "instanceGroupManager": {
84836	//       "description": "Name of the managed instance group.",
84837	//       "location": "path",
84838	//       "required": true,
84839	//       "type": "string"
84840	//     },
84841	//     "project": {
84842	//       "description": "Project ID for this request.",
84843	//       "location": "path",
84844	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84845	//       "required": true,
84846	//       "type": "string"
84847	//     },
84848	//     "region": {
84849	//       "description": "Name of the region scoping this request.",
84850	//       "location": "path",
84851	//       "required": true,
84852	//       "type": "string"
84853	//     },
84854	//     "requestId": {
84855	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84856	//       "location": "query",
84857	//       "type": "string"
84858	//     },
84859	//     "size": {
84860	//       "description": "Number of instances that should exist in this instance group manager.",
84861	//       "format": "int32",
84862	//       "location": "query",
84863	//       "minimum": "0",
84864	//       "required": true,
84865	//       "type": "integer"
84866	//     }
84867	//   },
84868	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize",
84869	//   "response": {
84870	//     "$ref": "Operation"
84871	//   },
84872	//   "scopes": [
84873	//     "https://www.googleapis.com/auth/cloud-platform",
84874	//     "https://www.googleapis.com/auth/compute"
84875	//   ]
84876	// }
84877
84878}
84879
84880// method id "compute.regionInstanceGroupManagers.setInstanceTemplate":
84881
84882type RegionInstanceGroupManagersSetInstanceTemplateCall struct {
84883	s                                             *Service
84884	project                                       string
84885	region                                        string
84886	instanceGroupManager                          string
84887	regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest
84888	urlParams_                                    gensupport.URLParams
84889	ctx_                                          context.Context
84890	header_                                       http.Header
84891}
84892
84893// SetInstanceTemplate: Sets the instance template to use when creating
84894// new instances or recreating instances in this group. Existing
84895// instances are not affected.
84896func (r *RegionInstanceGroupManagersService) SetInstanceTemplate(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest) *RegionInstanceGroupManagersSetInstanceTemplateCall {
84897	c := &RegionInstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84898	c.project = project
84899	c.region = region
84900	c.instanceGroupManager = instanceGroupManager
84901	c.regioninstancegroupmanagerssettemplaterequest = regioninstancegroupmanagerssettemplaterequest
84902	return c
84903}
84904
84905// RequestId sets the optional parameter "requestId": An optional
84906// request ID to identify requests. Specify a unique request ID so that
84907// if you must retry your request, the server will know to ignore the
84908// request if it has already been completed.
84909//
84910// For example, consider a situation where you make an initial request
84911// and the request times out. If you make the request again with the
84912// same request ID, the server can check if original operation with the
84913// same request ID was received, and if so, will ignore the second
84914// request. This prevents clients from accidentally creating duplicate
84915// commitments.
84916//
84917// The request ID must be a valid UUID with the exception that zero UUID
84918// is not supported (00000000-0000-0000-0000-000000000000).
84919func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *RegionInstanceGroupManagersSetInstanceTemplateCall {
84920	c.urlParams_.Set("requestId", requestId)
84921	return c
84922}
84923
84924// Fields allows partial responses to be retrieved. See
84925// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84926// for more information.
84927func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetInstanceTemplateCall {
84928	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84929	return c
84930}
84931
84932// Context sets the context to be used in this call's Do method. Any
84933// pending HTTP request will be aborted if the provided context is
84934// canceled.
84935func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetInstanceTemplateCall {
84936	c.ctx_ = ctx
84937	return c
84938}
84939
84940// Header returns an http.Header that can be modified by the caller to
84941// add HTTP headers to the request.
84942func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
84943	if c.header_ == nil {
84944		c.header_ = make(http.Header)
84945	}
84946	return c.header_
84947}
84948
84949func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
84950	reqHeaders := make(http.Header)
84951	for k, v := range c.header_ {
84952		reqHeaders[k] = v
84953	}
84954	reqHeaders.Set("User-Agent", c.s.userAgent())
84955	var body io.Reader = nil
84956	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettemplaterequest)
84957	if err != nil {
84958		return nil, err
84959	}
84960	reqHeaders.Set("Content-Type", "application/json")
84961	c.urlParams_.Set("alt", alt)
84962	c.urlParams_.Set("prettyPrint", "false")
84963	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
84964	urls += "?" + c.urlParams_.Encode()
84965	req, err := http.NewRequest("POST", urls, body)
84966	if err != nil {
84967		return nil, err
84968	}
84969	req.Header = reqHeaders
84970	googleapi.Expand(req.URL, map[string]string{
84971		"project":              c.project,
84972		"region":               c.region,
84973		"instanceGroupManager": c.instanceGroupManager,
84974	})
84975	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84976}
84977
84978// Do executes the "compute.regionInstanceGroupManagers.setInstanceTemplate" call.
84979// Exactly one of *Operation or error will be non-nil. Any non-2xx
84980// status code is an error. Response headers are in either
84981// *Operation.ServerResponse.Header or (if a response was returned at
84982// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84983// to check whether the returned error was because
84984// http.StatusNotModified was returned.
84985func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84986	gensupport.SetOptions(c.urlParams_, opts...)
84987	res, err := c.doRequest("json")
84988	if res != nil && res.StatusCode == http.StatusNotModified {
84989		if res.Body != nil {
84990			res.Body.Close()
84991		}
84992		return nil, &googleapi.Error{
84993			Code:   res.StatusCode,
84994			Header: res.Header,
84995		}
84996	}
84997	if err != nil {
84998		return nil, err
84999	}
85000	defer googleapi.CloseBody(res)
85001	if err := googleapi.CheckResponse(res); err != nil {
85002		return nil, err
85003	}
85004	ret := &Operation{
85005		ServerResponse: googleapi.ServerResponse{
85006			Header:         res.Header,
85007			HTTPStatusCode: res.StatusCode,
85008		},
85009	}
85010	target := &ret
85011	if err := gensupport.DecodeResponse(target, res); err != nil {
85012		return nil, err
85013	}
85014	return ret, nil
85015	// {
85016	//   "description": "Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected.",
85017	//   "httpMethod": "POST",
85018	//   "id": "compute.regionInstanceGroupManagers.setInstanceTemplate",
85019	//   "parameterOrder": [
85020	//     "project",
85021	//     "region",
85022	//     "instanceGroupManager"
85023	//   ],
85024	//   "parameters": {
85025	//     "instanceGroupManager": {
85026	//       "description": "The name of the managed instance group.",
85027	//       "location": "path",
85028	//       "required": true,
85029	//       "type": "string"
85030	//     },
85031	//     "project": {
85032	//       "description": "Project ID for this request.",
85033	//       "location": "path",
85034	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85035	//       "required": true,
85036	//       "type": "string"
85037	//     },
85038	//     "region": {
85039	//       "description": "Name of the region scoping this request.",
85040	//       "location": "path",
85041	//       "required": true,
85042	//       "type": "string"
85043	//     },
85044	//     "requestId": {
85045	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
85046	//       "location": "query",
85047	//       "type": "string"
85048	//     }
85049	//   },
85050	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
85051	//   "request": {
85052	//     "$ref": "RegionInstanceGroupManagersSetTemplateRequest"
85053	//   },
85054	//   "response": {
85055	//     "$ref": "Operation"
85056	//   },
85057	//   "scopes": [
85058	//     "https://www.googleapis.com/auth/cloud-platform",
85059	//     "https://www.googleapis.com/auth/compute"
85060	//   ]
85061	// }
85062
85063}
85064
85065// method id "compute.regionInstanceGroupManagers.setTargetPools":
85066
85067type RegionInstanceGroupManagersSetTargetPoolsCall struct {
85068	s                                                *Service
85069	project                                          string
85070	region                                           string
85071	instanceGroupManager                             string
85072	regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest
85073	urlParams_                                       gensupport.URLParams
85074	ctx_                                             context.Context
85075	header_                                          http.Header
85076}
85077
85078// SetTargetPools: Modifies the target pools to which all new instances
85079// in this group are assigned. Existing instances in the group are not
85080// affected.
85081func (r *RegionInstanceGroupManagersService) SetTargetPools(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest) *RegionInstanceGroupManagersSetTargetPoolsCall {
85082	c := &RegionInstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85083	c.project = project
85084	c.region = region
85085	c.instanceGroupManager = instanceGroupManager
85086	c.regioninstancegroupmanagerssettargetpoolsrequest = regioninstancegroupmanagerssettargetpoolsrequest
85087	return c
85088}
85089
85090// RequestId sets the optional parameter "requestId": An optional
85091// request ID to identify requests. Specify a unique request ID so that
85092// if you must retry your request, the server will know to ignore the
85093// request if it has already been completed.
85094//
85095// For example, consider a situation where you make an initial request
85096// and the request times out. If you make the request again with the
85097// same request ID, the server can check if original operation with the
85098// same request ID was received, and if so, will ignore the second
85099// request. This prevents clients from accidentally creating duplicate
85100// commitments.
85101//
85102// The request ID must be a valid UUID with the exception that zero UUID
85103// is not supported (00000000-0000-0000-0000-000000000000).
85104func (c *RegionInstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *RegionInstanceGroupManagersSetTargetPoolsCall {
85105	c.urlParams_.Set("requestId", requestId)
85106	return c
85107}
85108
85109// Fields allows partial responses to be retrieved. See
85110// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85111// for more information.
85112func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetTargetPoolsCall {
85113	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85114	return c
85115}
85116
85117// Context sets the context to be used in this call's Do method. Any
85118// pending HTTP request will be aborted if the provided context is
85119// canceled.
85120func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetTargetPoolsCall {
85121	c.ctx_ = ctx
85122	return c
85123}
85124
85125// Header returns an http.Header that can be modified by the caller to
85126// add HTTP headers to the request.
85127func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
85128	if c.header_ == nil {
85129		c.header_ = make(http.Header)
85130	}
85131	return c.header_
85132}
85133
85134func (c *RegionInstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
85135	reqHeaders := make(http.Header)
85136	for k, v := range c.header_ {
85137		reqHeaders[k] = v
85138	}
85139	reqHeaders.Set("User-Agent", c.s.userAgent())
85140	var body io.Reader = nil
85141	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettargetpoolsrequest)
85142	if err != nil {
85143		return nil, err
85144	}
85145	reqHeaders.Set("Content-Type", "application/json")
85146	c.urlParams_.Set("alt", alt)
85147	c.urlParams_.Set("prettyPrint", "false")
85148	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
85149	urls += "?" + c.urlParams_.Encode()
85150	req, err := http.NewRequest("POST", urls, body)
85151	if err != nil {
85152		return nil, err
85153	}
85154	req.Header = reqHeaders
85155	googleapi.Expand(req.URL, map[string]string{
85156		"project":              c.project,
85157		"region":               c.region,
85158		"instanceGroupManager": c.instanceGroupManager,
85159	})
85160	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85161}
85162
85163// Do executes the "compute.regionInstanceGroupManagers.setTargetPools" call.
85164// Exactly one of *Operation or error will be non-nil. Any non-2xx
85165// status code is an error. Response headers are in either
85166// *Operation.ServerResponse.Header or (if a response was returned at
85167// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85168// to check whether the returned error was because
85169// http.StatusNotModified was returned.
85170func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85171	gensupport.SetOptions(c.urlParams_, opts...)
85172	res, err := c.doRequest("json")
85173	if res != nil && res.StatusCode == http.StatusNotModified {
85174		if res.Body != nil {
85175			res.Body.Close()
85176		}
85177		return nil, &googleapi.Error{
85178			Code:   res.StatusCode,
85179			Header: res.Header,
85180		}
85181	}
85182	if err != nil {
85183		return nil, err
85184	}
85185	defer googleapi.CloseBody(res)
85186	if err := googleapi.CheckResponse(res); err != nil {
85187		return nil, err
85188	}
85189	ret := &Operation{
85190		ServerResponse: googleapi.ServerResponse{
85191			Header:         res.Header,
85192			HTTPStatusCode: res.StatusCode,
85193		},
85194	}
85195	target := &ret
85196	if err := gensupport.DecodeResponse(target, res); err != nil {
85197		return nil, err
85198	}
85199	return ret, nil
85200	// {
85201	//   "description": "Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.",
85202	//   "httpMethod": "POST",
85203	//   "id": "compute.regionInstanceGroupManagers.setTargetPools",
85204	//   "parameterOrder": [
85205	//     "project",
85206	//     "region",
85207	//     "instanceGroupManager"
85208	//   ],
85209	//   "parameters": {
85210	//     "instanceGroupManager": {
85211	//       "description": "Name of the managed instance group.",
85212	//       "location": "path",
85213	//       "required": true,
85214	//       "type": "string"
85215	//     },
85216	//     "project": {
85217	//       "description": "Project ID for this request.",
85218	//       "location": "path",
85219	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85220	//       "required": true,
85221	//       "type": "string"
85222	//     },
85223	//     "region": {
85224	//       "description": "Name of the region scoping this request.",
85225	//       "location": "path",
85226	//       "required": true,
85227	//       "type": "string"
85228	//     },
85229	//     "requestId": {
85230	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
85231	//       "location": "query",
85232	//       "type": "string"
85233	//     }
85234	//   },
85235	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
85236	//   "request": {
85237	//     "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest"
85238	//   },
85239	//   "response": {
85240	//     "$ref": "Operation"
85241	//   },
85242	//   "scopes": [
85243	//     "https://www.googleapis.com/auth/cloud-platform",
85244	//     "https://www.googleapis.com/auth/compute"
85245	//   ]
85246	// }
85247
85248}
85249
85250// method id "compute.regionInstanceGroups.get":
85251
85252type RegionInstanceGroupsGetCall struct {
85253	s             *Service
85254	project       string
85255	region        string
85256	instanceGroup string
85257	urlParams_    gensupport.URLParams
85258	ifNoneMatch_  string
85259	ctx_          context.Context
85260	header_       http.Header
85261}
85262
85263// Get: Returns the specified instance group resource.
85264func (r *RegionInstanceGroupsService) Get(project string, region string, instanceGroup string) *RegionInstanceGroupsGetCall {
85265	c := &RegionInstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85266	c.project = project
85267	c.region = region
85268	c.instanceGroup = instanceGroup
85269	return c
85270}
85271
85272// Fields allows partial responses to be retrieved. See
85273// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85274// for more information.
85275func (c *RegionInstanceGroupsGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsGetCall {
85276	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85277	return c
85278}
85279
85280// IfNoneMatch sets the optional parameter which makes the operation
85281// fail if the object's ETag matches the given value. This is useful for
85282// getting updates only after the object has changed since the last
85283// request. Use googleapi.IsNotModified to check whether the response
85284// error from Do is the result of In-None-Match.
85285func (c *RegionInstanceGroupsGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsGetCall {
85286	c.ifNoneMatch_ = entityTag
85287	return c
85288}
85289
85290// Context sets the context to be used in this call's Do method. Any
85291// pending HTTP request will be aborted if the provided context is
85292// canceled.
85293func (c *RegionInstanceGroupsGetCall) Context(ctx context.Context) *RegionInstanceGroupsGetCall {
85294	c.ctx_ = ctx
85295	return c
85296}
85297
85298// Header returns an http.Header that can be modified by the caller to
85299// add HTTP headers to the request.
85300func (c *RegionInstanceGroupsGetCall) Header() http.Header {
85301	if c.header_ == nil {
85302		c.header_ = make(http.Header)
85303	}
85304	return c.header_
85305}
85306
85307func (c *RegionInstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
85308	reqHeaders := make(http.Header)
85309	for k, v := range c.header_ {
85310		reqHeaders[k] = v
85311	}
85312	reqHeaders.Set("User-Agent", c.s.userAgent())
85313	if c.ifNoneMatch_ != "" {
85314		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85315	}
85316	var body io.Reader = nil
85317	c.urlParams_.Set("alt", alt)
85318	c.urlParams_.Set("prettyPrint", "false")
85319	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}")
85320	urls += "?" + c.urlParams_.Encode()
85321	req, err := http.NewRequest("GET", urls, body)
85322	if err != nil {
85323		return nil, err
85324	}
85325	req.Header = reqHeaders
85326	googleapi.Expand(req.URL, map[string]string{
85327		"project":       c.project,
85328		"region":        c.region,
85329		"instanceGroup": c.instanceGroup,
85330	})
85331	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85332}
85333
85334// Do executes the "compute.regionInstanceGroups.get" call.
85335// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
85336// status code is an error. Response headers are in either
85337// *InstanceGroup.ServerResponse.Header or (if a response was returned
85338// at all) in error.(*googleapi.Error).Header. Use
85339// googleapi.IsNotModified to check whether the returned error was
85340// because http.StatusNotModified was returned.
85341func (c *RegionInstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
85342	gensupport.SetOptions(c.urlParams_, opts...)
85343	res, err := c.doRequest("json")
85344	if res != nil && res.StatusCode == http.StatusNotModified {
85345		if res.Body != nil {
85346			res.Body.Close()
85347		}
85348		return nil, &googleapi.Error{
85349			Code:   res.StatusCode,
85350			Header: res.Header,
85351		}
85352	}
85353	if err != nil {
85354		return nil, err
85355	}
85356	defer googleapi.CloseBody(res)
85357	if err := googleapi.CheckResponse(res); err != nil {
85358		return nil, err
85359	}
85360	ret := &InstanceGroup{
85361		ServerResponse: googleapi.ServerResponse{
85362			Header:         res.Header,
85363			HTTPStatusCode: res.StatusCode,
85364		},
85365	}
85366	target := &ret
85367	if err := gensupport.DecodeResponse(target, res); err != nil {
85368		return nil, err
85369	}
85370	return ret, nil
85371	// {
85372	//   "description": "Returns the specified instance group resource.",
85373	//   "httpMethod": "GET",
85374	//   "id": "compute.regionInstanceGroups.get",
85375	//   "parameterOrder": [
85376	//     "project",
85377	//     "region",
85378	//     "instanceGroup"
85379	//   ],
85380	//   "parameters": {
85381	//     "instanceGroup": {
85382	//       "description": "Name of the instance group resource to return.",
85383	//       "location": "path",
85384	//       "required": true,
85385	//       "type": "string"
85386	//     },
85387	//     "project": {
85388	//       "description": "Project ID for this request.",
85389	//       "location": "path",
85390	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85391	//       "required": true,
85392	//       "type": "string"
85393	//     },
85394	//     "region": {
85395	//       "description": "Name of the region scoping this request.",
85396	//       "location": "path",
85397	//       "required": true,
85398	//       "type": "string"
85399	//     }
85400	//   },
85401	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}",
85402	//   "response": {
85403	//     "$ref": "InstanceGroup"
85404	//   },
85405	//   "scopes": [
85406	//     "https://www.googleapis.com/auth/cloud-platform",
85407	//     "https://www.googleapis.com/auth/compute",
85408	//     "https://www.googleapis.com/auth/compute.readonly"
85409	//   ]
85410	// }
85411
85412}
85413
85414// method id "compute.regionInstanceGroups.list":
85415
85416type RegionInstanceGroupsListCall struct {
85417	s            *Service
85418	project      string
85419	region       string
85420	urlParams_   gensupport.URLParams
85421	ifNoneMatch_ string
85422	ctx_         context.Context
85423	header_      http.Header
85424}
85425
85426// List: Retrieves the list of instance group resources contained within
85427// the specified region.
85428func (r *RegionInstanceGroupsService) List(project string, region string) *RegionInstanceGroupsListCall {
85429	c := &RegionInstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85430	c.project = project
85431	c.region = region
85432	return c
85433}
85434
85435// Filter sets the optional parameter "filter": A filter expression that
85436// filters resources listed in the response. The expression must specify
85437// the field name, a comparison operator, and the value that you want to
85438// use for filtering. The value must be a string, a number, or a
85439// boolean. The comparison operator must be either =, !=, >, or <.
85440//
85441// For example, if you are filtering Compute Engine instances, you can
85442// exclude instances named example-instance by specifying name !=
85443// example-instance.
85444//
85445// You can also filter nested fields. For example, you could specify
85446// scheduling.automaticRestart = false to include instances only if they
85447// are not scheduled for automatic restarts. You can use filtering on
85448// nested fields to filter based on resource labels.
85449//
85450// To filter on multiple expressions, provide each separate expression
85451// within parentheses. For example, (scheduling.automaticRestart = true)
85452// (cpuPlatform = "Intel Skylake"). By default, each expression is an
85453// AND expression. However, you can include AND and OR expressions
85454// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
85455// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
85456// true).
85457func (c *RegionInstanceGroupsListCall) Filter(filter string) *RegionInstanceGroupsListCall {
85458	c.urlParams_.Set("filter", filter)
85459	return c
85460}
85461
85462// MaxResults sets the optional parameter "maxResults": The maximum
85463// number of results per page that should be returned. If the number of
85464// available results is larger than maxResults, Compute Engine returns a
85465// nextPageToken that can be used to get the next page of results in
85466// subsequent list requests. Acceptable values are 0 to 500, inclusive.
85467// (Default: 500)
85468func (c *RegionInstanceGroupsListCall) MaxResults(maxResults int64) *RegionInstanceGroupsListCall {
85469	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
85470	return c
85471}
85472
85473// OrderBy sets the optional parameter "orderBy": Sorts list results by
85474// a certain order. By default, results are returned in alphanumerical
85475// order based on the resource name.
85476//
85477// You can also sort results in descending order based on the creation
85478// timestamp using orderBy="creationTimestamp desc". This sorts results
85479// based on the creationTimestamp field in reverse chronological order
85480// (newest result first). Use this to sort resources like operations so
85481// that the newest operation is returned first.
85482//
85483// Currently, only sorting by name or creationTimestamp desc is
85484// supported.
85485func (c *RegionInstanceGroupsListCall) OrderBy(orderBy string) *RegionInstanceGroupsListCall {
85486	c.urlParams_.Set("orderBy", orderBy)
85487	return c
85488}
85489
85490// PageToken sets the optional parameter "pageToken": Specifies a page
85491// token to use. Set pageToken to the nextPageToken returned by a
85492// previous list request to get the next page of results.
85493func (c *RegionInstanceGroupsListCall) PageToken(pageToken string) *RegionInstanceGroupsListCall {
85494	c.urlParams_.Set("pageToken", pageToken)
85495	return c
85496}
85497
85498// Fields allows partial responses to be retrieved. See
85499// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85500// for more information.
85501func (c *RegionInstanceGroupsListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListCall {
85502	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85503	return c
85504}
85505
85506// IfNoneMatch sets the optional parameter which makes the operation
85507// fail if the object's ETag matches the given value. This is useful for
85508// getting updates only after the object has changed since the last
85509// request. Use googleapi.IsNotModified to check whether the response
85510// error from Do is the result of In-None-Match.
85511func (c *RegionInstanceGroupsListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsListCall {
85512	c.ifNoneMatch_ = entityTag
85513	return c
85514}
85515
85516// Context sets the context to be used in this call's Do method. Any
85517// pending HTTP request will be aborted if the provided context is
85518// canceled.
85519func (c *RegionInstanceGroupsListCall) Context(ctx context.Context) *RegionInstanceGroupsListCall {
85520	c.ctx_ = ctx
85521	return c
85522}
85523
85524// Header returns an http.Header that can be modified by the caller to
85525// add HTTP headers to the request.
85526func (c *RegionInstanceGroupsListCall) Header() http.Header {
85527	if c.header_ == nil {
85528		c.header_ = make(http.Header)
85529	}
85530	return c.header_
85531}
85532
85533func (c *RegionInstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
85534	reqHeaders := make(http.Header)
85535	for k, v := range c.header_ {
85536		reqHeaders[k] = v
85537	}
85538	reqHeaders.Set("User-Agent", c.s.userAgent())
85539	if c.ifNoneMatch_ != "" {
85540		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85541	}
85542	var body io.Reader = nil
85543	c.urlParams_.Set("alt", alt)
85544	c.urlParams_.Set("prettyPrint", "false")
85545	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups")
85546	urls += "?" + c.urlParams_.Encode()
85547	req, err := http.NewRequest("GET", urls, body)
85548	if err != nil {
85549		return nil, err
85550	}
85551	req.Header = reqHeaders
85552	googleapi.Expand(req.URL, map[string]string{
85553		"project": c.project,
85554		"region":  c.region,
85555	})
85556	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85557}
85558
85559// Do executes the "compute.regionInstanceGroups.list" call.
85560// Exactly one of *RegionInstanceGroupList or error will be non-nil. Any
85561// non-2xx status code is an error. Response headers are in either
85562// *RegionInstanceGroupList.ServerResponse.Header or (if a response was
85563// returned at all) in error.(*googleapi.Error).Header. Use
85564// googleapi.IsNotModified to check whether the returned error was
85565// because http.StatusNotModified was returned.
85566func (c *RegionInstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupList, error) {
85567	gensupport.SetOptions(c.urlParams_, opts...)
85568	res, err := c.doRequest("json")
85569	if res != nil && res.StatusCode == http.StatusNotModified {
85570		if res.Body != nil {
85571			res.Body.Close()
85572		}
85573		return nil, &googleapi.Error{
85574			Code:   res.StatusCode,
85575			Header: res.Header,
85576		}
85577	}
85578	if err != nil {
85579		return nil, err
85580	}
85581	defer googleapi.CloseBody(res)
85582	if err := googleapi.CheckResponse(res); err != nil {
85583		return nil, err
85584	}
85585	ret := &RegionInstanceGroupList{
85586		ServerResponse: googleapi.ServerResponse{
85587			Header:         res.Header,
85588			HTTPStatusCode: res.StatusCode,
85589		},
85590	}
85591	target := &ret
85592	if err := gensupport.DecodeResponse(target, res); err != nil {
85593		return nil, err
85594	}
85595	return ret, nil
85596	// {
85597	//   "description": "Retrieves the list of instance group resources contained within the specified region.",
85598	//   "httpMethod": "GET",
85599	//   "id": "compute.regionInstanceGroups.list",
85600	//   "parameterOrder": [
85601	//     "project",
85602	//     "region"
85603	//   ],
85604	//   "parameters": {
85605	//     "filter": {
85606	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
85607	//       "location": "query",
85608	//       "type": "string"
85609	//     },
85610	//     "maxResults": {
85611	//       "default": "500",
85612	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
85613	//       "format": "uint32",
85614	//       "location": "query",
85615	//       "minimum": "0",
85616	//       "type": "integer"
85617	//     },
85618	//     "orderBy": {
85619	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
85620	//       "location": "query",
85621	//       "type": "string"
85622	//     },
85623	//     "pageToken": {
85624	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
85625	//       "location": "query",
85626	//       "type": "string"
85627	//     },
85628	//     "project": {
85629	//       "description": "Project ID for this request.",
85630	//       "location": "path",
85631	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85632	//       "required": true,
85633	//       "type": "string"
85634	//     },
85635	//     "region": {
85636	//       "description": "Name of the region scoping this request.",
85637	//       "location": "path",
85638	//       "required": true,
85639	//       "type": "string"
85640	//     }
85641	//   },
85642	//   "path": "{project}/regions/{region}/instanceGroups",
85643	//   "response": {
85644	//     "$ref": "RegionInstanceGroupList"
85645	//   },
85646	//   "scopes": [
85647	//     "https://www.googleapis.com/auth/cloud-platform",
85648	//     "https://www.googleapis.com/auth/compute",
85649	//     "https://www.googleapis.com/auth/compute.readonly"
85650	//   ]
85651	// }
85652
85653}
85654
85655// Pages invokes f for each page of results.
85656// A non-nil error returned from f will halt the iteration.
85657// The provided context supersedes any context provided to the Context method.
85658func (c *RegionInstanceGroupsListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupList) error) error {
85659	c.ctx_ = ctx
85660	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
85661	for {
85662		x, err := c.Do()
85663		if err != nil {
85664			return err
85665		}
85666		if err := f(x); err != nil {
85667			return err
85668		}
85669		if x.NextPageToken == "" {
85670			return nil
85671		}
85672		c.PageToken(x.NextPageToken)
85673	}
85674}
85675
85676// method id "compute.regionInstanceGroups.listInstances":
85677
85678type RegionInstanceGroupsListInstancesCall struct {
85679	s                                        *Service
85680	project                                  string
85681	region                                   string
85682	instanceGroup                            string
85683	regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest
85684	urlParams_                               gensupport.URLParams
85685	ctx_                                     context.Context
85686	header_                                  http.Header
85687}
85688
85689// ListInstances: Lists the instances in the specified instance group
85690// and displays information about the named ports. Depending on the
85691// specified options, this method can list all instances or only the
85692// instances that are running.
85693func (r *RegionInstanceGroupsService) ListInstances(project string, region string, instanceGroup string, regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest) *RegionInstanceGroupsListInstancesCall {
85694	c := &RegionInstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85695	c.project = project
85696	c.region = region
85697	c.instanceGroup = instanceGroup
85698	c.regioninstancegroupslistinstancesrequest = regioninstancegroupslistinstancesrequest
85699	return c
85700}
85701
85702// Filter sets the optional parameter "filter": A filter expression that
85703// filters resources listed in the response. The expression must specify
85704// the field name, a comparison operator, and the value that you want to
85705// use for filtering. The value must be a string, a number, or a
85706// boolean. The comparison operator must be either =, !=, >, or <.
85707//
85708// For example, if you are filtering Compute Engine instances, you can
85709// exclude instances named example-instance by specifying name !=
85710// example-instance.
85711//
85712// You can also filter nested fields. For example, you could specify
85713// scheduling.automaticRestart = false to include instances only if they
85714// are not scheduled for automatic restarts. You can use filtering on
85715// nested fields to filter based on resource labels.
85716//
85717// To filter on multiple expressions, provide each separate expression
85718// within parentheses. For example, (scheduling.automaticRestart = true)
85719// (cpuPlatform = "Intel Skylake"). By default, each expression is an
85720// AND expression. However, you can include AND and OR expressions
85721// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
85722// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
85723// true).
85724func (c *RegionInstanceGroupsListInstancesCall) Filter(filter string) *RegionInstanceGroupsListInstancesCall {
85725	c.urlParams_.Set("filter", filter)
85726	return c
85727}
85728
85729// MaxResults sets the optional parameter "maxResults": The maximum
85730// number of results per page that should be returned. If the number of
85731// available results is larger than maxResults, Compute Engine returns a
85732// nextPageToken that can be used to get the next page of results in
85733// subsequent list requests. Acceptable values are 0 to 500, inclusive.
85734// (Default: 500)
85735func (c *RegionInstanceGroupsListInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupsListInstancesCall {
85736	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
85737	return c
85738}
85739
85740// OrderBy sets the optional parameter "orderBy": Sorts list results by
85741// a certain order. By default, results are returned in alphanumerical
85742// order based on the resource name.
85743//
85744// You can also sort results in descending order based on the creation
85745// timestamp using orderBy="creationTimestamp desc". This sorts results
85746// based on the creationTimestamp field in reverse chronological order
85747// (newest result first). Use this to sort resources like operations so
85748// that the newest operation is returned first.
85749//
85750// Currently, only sorting by name or creationTimestamp desc is
85751// supported.
85752func (c *RegionInstanceGroupsListInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupsListInstancesCall {
85753	c.urlParams_.Set("orderBy", orderBy)
85754	return c
85755}
85756
85757// PageToken sets the optional parameter "pageToken": Specifies a page
85758// token to use. Set pageToken to the nextPageToken returned by a
85759// previous list request to get the next page of results.
85760func (c *RegionInstanceGroupsListInstancesCall) PageToken(pageToken string) *RegionInstanceGroupsListInstancesCall {
85761	c.urlParams_.Set("pageToken", pageToken)
85762	return c
85763}
85764
85765// Fields allows partial responses to be retrieved. See
85766// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85767// for more information.
85768func (c *RegionInstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListInstancesCall {
85769	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85770	return c
85771}
85772
85773// Context sets the context to be used in this call's Do method. Any
85774// pending HTTP request will be aborted if the provided context is
85775// canceled.
85776func (c *RegionInstanceGroupsListInstancesCall) Context(ctx context.Context) *RegionInstanceGroupsListInstancesCall {
85777	c.ctx_ = ctx
85778	return c
85779}
85780
85781// Header returns an http.Header that can be modified by the caller to
85782// add HTTP headers to the request.
85783func (c *RegionInstanceGroupsListInstancesCall) Header() http.Header {
85784	if c.header_ == nil {
85785		c.header_ = make(http.Header)
85786	}
85787	return c.header_
85788}
85789
85790func (c *RegionInstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
85791	reqHeaders := make(http.Header)
85792	for k, v := range c.header_ {
85793		reqHeaders[k] = v
85794	}
85795	reqHeaders.Set("User-Agent", c.s.userAgent())
85796	var body io.Reader = nil
85797	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupslistinstancesrequest)
85798	if err != nil {
85799		return nil, err
85800	}
85801	reqHeaders.Set("Content-Type", "application/json")
85802	c.urlParams_.Set("alt", alt)
85803	c.urlParams_.Set("prettyPrint", "false")
85804	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances")
85805	urls += "?" + c.urlParams_.Encode()
85806	req, err := http.NewRequest("POST", urls, body)
85807	if err != nil {
85808		return nil, err
85809	}
85810	req.Header = reqHeaders
85811	googleapi.Expand(req.URL, map[string]string{
85812		"project":       c.project,
85813		"region":        c.region,
85814		"instanceGroup": c.instanceGroup,
85815	})
85816	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85817}
85818
85819// Do executes the "compute.regionInstanceGroups.listInstances" call.
85820// Exactly one of *RegionInstanceGroupsListInstances or error will be
85821// non-nil. Any non-2xx status code is an error. Response headers are in
85822// either *RegionInstanceGroupsListInstances.ServerResponse.Header or
85823// (if a response was returned at all) in
85824// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
85825// whether the returned error was because http.StatusNotModified was
85826// returned.
85827func (c *RegionInstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupsListInstances, error) {
85828	gensupport.SetOptions(c.urlParams_, opts...)
85829	res, err := c.doRequest("json")
85830	if res != nil && res.StatusCode == http.StatusNotModified {
85831		if res.Body != nil {
85832			res.Body.Close()
85833		}
85834		return nil, &googleapi.Error{
85835			Code:   res.StatusCode,
85836			Header: res.Header,
85837		}
85838	}
85839	if err != nil {
85840		return nil, err
85841	}
85842	defer googleapi.CloseBody(res)
85843	if err := googleapi.CheckResponse(res); err != nil {
85844		return nil, err
85845	}
85846	ret := &RegionInstanceGroupsListInstances{
85847		ServerResponse: googleapi.ServerResponse{
85848			Header:         res.Header,
85849			HTTPStatusCode: res.StatusCode,
85850		},
85851	}
85852	target := &ret
85853	if err := gensupport.DecodeResponse(target, res); err != nil {
85854		return nil, err
85855	}
85856	return ret, nil
85857	// {
85858	//   "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.",
85859	//   "httpMethod": "POST",
85860	//   "id": "compute.regionInstanceGroups.listInstances",
85861	//   "parameterOrder": [
85862	//     "project",
85863	//     "region",
85864	//     "instanceGroup"
85865	//   ],
85866	//   "parameters": {
85867	//     "filter": {
85868	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
85869	//       "location": "query",
85870	//       "type": "string"
85871	//     },
85872	//     "instanceGroup": {
85873	//       "description": "Name of the regional instance group for which we want to list the instances.",
85874	//       "location": "path",
85875	//       "required": true,
85876	//       "type": "string"
85877	//     },
85878	//     "maxResults": {
85879	//       "default": "500",
85880	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
85881	//       "format": "uint32",
85882	//       "location": "query",
85883	//       "minimum": "0",
85884	//       "type": "integer"
85885	//     },
85886	//     "orderBy": {
85887	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
85888	//       "location": "query",
85889	//       "type": "string"
85890	//     },
85891	//     "pageToken": {
85892	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
85893	//       "location": "query",
85894	//       "type": "string"
85895	//     },
85896	//     "project": {
85897	//       "description": "Project ID for this request.",
85898	//       "location": "path",
85899	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85900	//       "required": true,
85901	//       "type": "string"
85902	//     },
85903	//     "region": {
85904	//       "description": "Name of the region scoping this request.",
85905	//       "location": "path",
85906	//       "required": true,
85907	//       "type": "string"
85908	//     }
85909	//   },
85910	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances",
85911	//   "request": {
85912	//     "$ref": "RegionInstanceGroupsListInstancesRequest"
85913	//   },
85914	//   "response": {
85915	//     "$ref": "RegionInstanceGroupsListInstances"
85916	//   },
85917	//   "scopes": [
85918	//     "https://www.googleapis.com/auth/cloud-platform",
85919	//     "https://www.googleapis.com/auth/compute",
85920	//     "https://www.googleapis.com/auth/compute.readonly"
85921	//   ]
85922	// }
85923
85924}
85925
85926// Pages invokes f for each page of results.
85927// A non-nil error returned from f will halt the iteration.
85928// The provided context supersedes any context provided to the Context method.
85929func (c *RegionInstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupsListInstances) error) error {
85930	c.ctx_ = ctx
85931	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
85932	for {
85933		x, err := c.Do()
85934		if err != nil {
85935			return err
85936		}
85937		if err := f(x); err != nil {
85938			return err
85939		}
85940		if x.NextPageToken == "" {
85941			return nil
85942		}
85943		c.PageToken(x.NextPageToken)
85944	}
85945}
85946
85947// method id "compute.regionInstanceGroups.setNamedPorts":
85948
85949type RegionInstanceGroupsSetNamedPortsCall struct {
85950	s                                        *Service
85951	project                                  string
85952	region                                   string
85953	instanceGroup                            string
85954	regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest
85955	urlParams_                               gensupport.URLParams
85956	ctx_                                     context.Context
85957	header_                                  http.Header
85958}
85959
85960// SetNamedPorts: Sets the named ports for the specified regional
85961// instance group.
85962func (r *RegionInstanceGroupsService) SetNamedPorts(project string, region string, instanceGroup string, regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest) *RegionInstanceGroupsSetNamedPortsCall {
85963	c := &RegionInstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85964	c.project = project
85965	c.region = region
85966	c.instanceGroup = instanceGroup
85967	c.regioninstancegroupssetnamedportsrequest = regioninstancegroupssetnamedportsrequest
85968	return c
85969}
85970
85971// RequestId sets the optional parameter "requestId": An optional
85972// request ID to identify requests. Specify a unique request ID so that
85973// if you must retry your request, the server will know to ignore the
85974// request if it has already been completed.
85975//
85976// For example, consider a situation where you make an initial request
85977// and the request times out. If you make the request again with the
85978// same request ID, the server can check if original operation with the
85979// same request ID was received, and if so, will ignore the second
85980// request. This prevents clients from accidentally creating duplicate
85981// commitments.
85982//
85983// The request ID must be a valid UUID with the exception that zero UUID
85984// is not supported (00000000-0000-0000-0000-000000000000).
85985func (c *RegionInstanceGroupsSetNamedPortsCall) RequestId(requestId string) *RegionInstanceGroupsSetNamedPortsCall {
85986	c.urlParams_.Set("requestId", requestId)
85987	return c
85988}
85989
85990// Fields allows partial responses to be retrieved. See
85991// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85992// for more information.
85993func (c *RegionInstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsSetNamedPortsCall {
85994	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85995	return c
85996}
85997
85998// Context sets the context to be used in this call's Do method. Any
85999// pending HTTP request will be aborted if the provided context is
86000// canceled.
86001func (c *RegionInstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *RegionInstanceGroupsSetNamedPortsCall {
86002	c.ctx_ = ctx
86003	return c
86004}
86005
86006// Header returns an http.Header that can be modified by the caller to
86007// add HTTP headers to the request.
86008func (c *RegionInstanceGroupsSetNamedPortsCall) Header() http.Header {
86009	if c.header_ == nil {
86010		c.header_ = make(http.Header)
86011	}
86012	return c.header_
86013}
86014
86015func (c *RegionInstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
86016	reqHeaders := make(http.Header)
86017	for k, v := range c.header_ {
86018		reqHeaders[k] = v
86019	}
86020	reqHeaders.Set("User-Agent", c.s.userAgent())
86021	var body io.Reader = nil
86022	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupssetnamedportsrequest)
86023	if err != nil {
86024		return nil, err
86025	}
86026	reqHeaders.Set("Content-Type", "application/json")
86027	c.urlParams_.Set("alt", alt)
86028	c.urlParams_.Set("prettyPrint", "false")
86029	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts")
86030	urls += "?" + c.urlParams_.Encode()
86031	req, err := http.NewRequest("POST", urls, body)
86032	if err != nil {
86033		return nil, err
86034	}
86035	req.Header = reqHeaders
86036	googleapi.Expand(req.URL, map[string]string{
86037		"project":       c.project,
86038		"region":        c.region,
86039		"instanceGroup": c.instanceGroup,
86040	})
86041	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86042}
86043
86044// Do executes the "compute.regionInstanceGroups.setNamedPorts" call.
86045// Exactly one of *Operation or error will be non-nil. Any non-2xx
86046// status code is an error. Response headers are in either
86047// *Operation.ServerResponse.Header or (if a response was returned at
86048// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86049// to check whether the returned error was because
86050// http.StatusNotModified was returned.
86051func (c *RegionInstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86052	gensupport.SetOptions(c.urlParams_, opts...)
86053	res, err := c.doRequest("json")
86054	if res != nil && res.StatusCode == http.StatusNotModified {
86055		if res.Body != nil {
86056			res.Body.Close()
86057		}
86058		return nil, &googleapi.Error{
86059			Code:   res.StatusCode,
86060			Header: res.Header,
86061		}
86062	}
86063	if err != nil {
86064		return nil, err
86065	}
86066	defer googleapi.CloseBody(res)
86067	if err := googleapi.CheckResponse(res); err != nil {
86068		return nil, err
86069	}
86070	ret := &Operation{
86071		ServerResponse: googleapi.ServerResponse{
86072			Header:         res.Header,
86073			HTTPStatusCode: res.StatusCode,
86074		},
86075	}
86076	target := &ret
86077	if err := gensupport.DecodeResponse(target, res); err != nil {
86078		return nil, err
86079	}
86080	return ret, nil
86081	// {
86082	//   "description": "Sets the named ports for the specified regional instance group.",
86083	//   "httpMethod": "POST",
86084	//   "id": "compute.regionInstanceGroups.setNamedPorts",
86085	//   "parameterOrder": [
86086	//     "project",
86087	//     "region",
86088	//     "instanceGroup"
86089	//   ],
86090	//   "parameters": {
86091	//     "instanceGroup": {
86092	//       "description": "The name of the regional instance group where the named ports are updated.",
86093	//       "location": "path",
86094	//       "required": true,
86095	//       "type": "string"
86096	//     },
86097	//     "project": {
86098	//       "description": "Project ID for this request.",
86099	//       "location": "path",
86100	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86101	//       "required": true,
86102	//       "type": "string"
86103	//     },
86104	//     "region": {
86105	//       "description": "Name of the region scoping this request.",
86106	//       "location": "path",
86107	//       "required": true,
86108	//       "type": "string"
86109	//     },
86110	//     "requestId": {
86111	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86112	//       "location": "query",
86113	//       "type": "string"
86114	//     }
86115	//   },
86116	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts",
86117	//   "request": {
86118	//     "$ref": "RegionInstanceGroupsSetNamedPortsRequest"
86119	//   },
86120	//   "response": {
86121	//     "$ref": "Operation"
86122	//   },
86123	//   "scopes": [
86124	//     "https://www.googleapis.com/auth/cloud-platform",
86125	//     "https://www.googleapis.com/auth/compute"
86126	//   ]
86127	// }
86128
86129}
86130
86131// method id "compute.regionOperations.delete":
86132
86133type RegionOperationsDeleteCall struct {
86134	s          *Service
86135	project    string
86136	region     string
86137	operation  string
86138	urlParams_ gensupport.URLParams
86139	ctx_       context.Context
86140	header_    http.Header
86141}
86142
86143// Delete: Deletes the specified region-specific Operations resource.
86144// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/delete
86145func (r *RegionOperationsService) Delete(project string, region string, operation string) *RegionOperationsDeleteCall {
86146	c := &RegionOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86147	c.project = project
86148	c.region = region
86149	c.operation = operation
86150	return c
86151}
86152
86153// Fields allows partial responses to be retrieved. See
86154// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86155// for more information.
86156func (c *RegionOperationsDeleteCall) Fields(s ...googleapi.Field) *RegionOperationsDeleteCall {
86157	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86158	return c
86159}
86160
86161// Context sets the context to be used in this call's Do method. Any
86162// pending HTTP request will be aborted if the provided context is
86163// canceled.
86164func (c *RegionOperationsDeleteCall) Context(ctx context.Context) *RegionOperationsDeleteCall {
86165	c.ctx_ = ctx
86166	return c
86167}
86168
86169// Header returns an http.Header that can be modified by the caller to
86170// add HTTP headers to the request.
86171func (c *RegionOperationsDeleteCall) Header() http.Header {
86172	if c.header_ == nil {
86173		c.header_ = make(http.Header)
86174	}
86175	return c.header_
86176}
86177
86178func (c *RegionOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
86179	reqHeaders := make(http.Header)
86180	for k, v := range c.header_ {
86181		reqHeaders[k] = v
86182	}
86183	reqHeaders.Set("User-Agent", c.s.userAgent())
86184	var body io.Reader = nil
86185	c.urlParams_.Set("alt", alt)
86186	c.urlParams_.Set("prettyPrint", "false")
86187	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}")
86188	urls += "?" + c.urlParams_.Encode()
86189	req, err := http.NewRequest("DELETE", urls, body)
86190	if err != nil {
86191		return nil, err
86192	}
86193	req.Header = reqHeaders
86194	googleapi.Expand(req.URL, map[string]string{
86195		"project":   c.project,
86196		"region":    c.region,
86197		"operation": c.operation,
86198	})
86199	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86200}
86201
86202// Do executes the "compute.regionOperations.delete" call.
86203func (c *RegionOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
86204	gensupport.SetOptions(c.urlParams_, opts...)
86205	res, err := c.doRequest("json")
86206	if err != nil {
86207		return err
86208	}
86209	defer googleapi.CloseBody(res)
86210	if err := googleapi.CheckResponse(res); err != nil {
86211		return err
86212	}
86213	return nil
86214	// {
86215	//   "description": "Deletes the specified region-specific Operations resource.",
86216	//   "httpMethod": "DELETE",
86217	//   "id": "compute.regionOperations.delete",
86218	//   "parameterOrder": [
86219	//     "project",
86220	//     "region",
86221	//     "operation"
86222	//   ],
86223	//   "parameters": {
86224	//     "operation": {
86225	//       "description": "Name of the Operations resource to delete.",
86226	//       "location": "path",
86227	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86228	//       "required": true,
86229	//       "type": "string"
86230	//     },
86231	//     "project": {
86232	//       "description": "Project ID for this request.",
86233	//       "location": "path",
86234	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86235	//       "required": true,
86236	//       "type": "string"
86237	//     },
86238	//     "region": {
86239	//       "description": "Name of the region for this request.",
86240	//       "location": "path",
86241	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86242	//       "required": true,
86243	//       "type": "string"
86244	//     }
86245	//   },
86246	//   "path": "{project}/regions/{region}/operations/{operation}",
86247	//   "scopes": [
86248	//     "https://www.googleapis.com/auth/cloud-platform",
86249	//     "https://www.googleapis.com/auth/compute"
86250	//   ]
86251	// }
86252
86253}
86254
86255// method id "compute.regionOperations.get":
86256
86257type RegionOperationsGetCall struct {
86258	s            *Service
86259	project      string
86260	region       string
86261	operation    string
86262	urlParams_   gensupport.URLParams
86263	ifNoneMatch_ string
86264	ctx_         context.Context
86265	header_      http.Header
86266}
86267
86268// Get: Retrieves the specified region-specific Operations resource.
86269// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/get
86270func (r *RegionOperationsService) Get(project string, region string, operation string) *RegionOperationsGetCall {
86271	c := &RegionOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86272	c.project = project
86273	c.region = region
86274	c.operation = operation
86275	return c
86276}
86277
86278// Fields allows partial responses to be retrieved. See
86279// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86280// for more information.
86281func (c *RegionOperationsGetCall) Fields(s ...googleapi.Field) *RegionOperationsGetCall {
86282	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86283	return c
86284}
86285
86286// IfNoneMatch sets the optional parameter which makes the operation
86287// fail if the object's ETag matches the given value. This is useful for
86288// getting updates only after the object has changed since the last
86289// request. Use googleapi.IsNotModified to check whether the response
86290// error from Do is the result of In-None-Match.
86291func (c *RegionOperationsGetCall) IfNoneMatch(entityTag string) *RegionOperationsGetCall {
86292	c.ifNoneMatch_ = entityTag
86293	return c
86294}
86295
86296// Context sets the context to be used in this call's Do method. Any
86297// pending HTTP request will be aborted if the provided context is
86298// canceled.
86299func (c *RegionOperationsGetCall) Context(ctx context.Context) *RegionOperationsGetCall {
86300	c.ctx_ = ctx
86301	return c
86302}
86303
86304// Header returns an http.Header that can be modified by the caller to
86305// add HTTP headers to the request.
86306func (c *RegionOperationsGetCall) Header() http.Header {
86307	if c.header_ == nil {
86308		c.header_ = make(http.Header)
86309	}
86310	return c.header_
86311}
86312
86313func (c *RegionOperationsGetCall) doRequest(alt string) (*http.Response, error) {
86314	reqHeaders := make(http.Header)
86315	for k, v := range c.header_ {
86316		reqHeaders[k] = v
86317	}
86318	reqHeaders.Set("User-Agent", c.s.userAgent())
86319	if c.ifNoneMatch_ != "" {
86320		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86321	}
86322	var body io.Reader = nil
86323	c.urlParams_.Set("alt", alt)
86324	c.urlParams_.Set("prettyPrint", "false")
86325	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}")
86326	urls += "?" + c.urlParams_.Encode()
86327	req, err := http.NewRequest("GET", urls, body)
86328	if err != nil {
86329		return nil, err
86330	}
86331	req.Header = reqHeaders
86332	googleapi.Expand(req.URL, map[string]string{
86333		"project":   c.project,
86334		"region":    c.region,
86335		"operation": c.operation,
86336	})
86337	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86338}
86339
86340// Do executes the "compute.regionOperations.get" call.
86341// Exactly one of *Operation or error will be non-nil. Any non-2xx
86342// status code is an error. Response headers are in either
86343// *Operation.ServerResponse.Header or (if a response was returned at
86344// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86345// to check whether the returned error was because
86346// http.StatusNotModified was returned.
86347func (c *RegionOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86348	gensupport.SetOptions(c.urlParams_, opts...)
86349	res, err := c.doRequest("json")
86350	if res != nil && res.StatusCode == http.StatusNotModified {
86351		if res.Body != nil {
86352			res.Body.Close()
86353		}
86354		return nil, &googleapi.Error{
86355			Code:   res.StatusCode,
86356			Header: res.Header,
86357		}
86358	}
86359	if err != nil {
86360		return nil, err
86361	}
86362	defer googleapi.CloseBody(res)
86363	if err := googleapi.CheckResponse(res); err != nil {
86364		return nil, err
86365	}
86366	ret := &Operation{
86367		ServerResponse: googleapi.ServerResponse{
86368			Header:         res.Header,
86369			HTTPStatusCode: res.StatusCode,
86370		},
86371	}
86372	target := &ret
86373	if err := gensupport.DecodeResponse(target, res); err != nil {
86374		return nil, err
86375	}
86376	return ret, nil
86377	// {
86378	//   "description": "Retrieves the specified region-specific Operations resource.",
86379	//   "httpMethod": "GET",
86380	//   "id": "compute.regionOperations.get",
86381	//   "parameterOrder": [
86382	//     "project",
86383	//     "region",
86384	//     "operation"
86385	//   ],
86386	//   "parameters": {
86387	//     "operation": {
86388	//       "description": "Name of the Operations resource to return.",
86389	//       "location": "path",
86390	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86391	//       "required": true,
86392	//       "type": "string"
86393	//     },
86394	//     "project": {
86395	//       "description": "Project ID for this request.",
86396	//       "location": "path",
86397	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86398	//       "required": true,
86399	//       "type": "string"
86400	//     },
86401	//     "region": {
86402	//       "description": "Name of the region for this request.",
86403	//       "location": "path",
86404	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86405	//       "required": true,
86406	//       "type": "string"
86407	//     }
86408	//   },
86409	//   "path": "{project}/regions/{region}/operations/{operation}",
86410	//   "response": {
86411	//     "$ref": "Operation"
86412	//   },
86413	//   "scopes": [
86414	//     "https://www.googleapis.com/auth/cloud-platform",
86415	//     "https://www.googleapis.com/auth/compute",
86416	//     "https://www.googleapis.com/auth/compute.readonly"
86417	//   ]
86418	// }
86419
86420}
86421
86422// method id "compute.regionOperations.list":
86423
86424type RegionOperationsListCall struct {
86425	s            *Service
86426	project      string
86427	region       string
86428	urlParams_   gensupport.URLParams
86429	ifNoneMatch_ string
86430	ctx_         context.Context
86431	header_      http.Header
86432}
86433
86434// List: Retrieves a list of Operation resources contained within the
86435// specified region.
86436// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/list
86437func (r *RegionOperationsService) List(project string, region string) *RegionOperationsListCall {
86438	c := &RegionOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86439	c.project = project
86440	c.region = region
86441	return c
86442}
86443
86444// Filter sets the optional parameter "filter": A filter expression that
86445// filters resources listed in the response. The expression must specify
86446// the field name, a comparison operator, and the value that you want to
86447// use for filtering. The value must be a string, a number, or a
86448// boolean. The comparison operator must be either =, !=, >, or <.
86449//
86450// For example, if you are filtering Compute Engine instances, you can
86451// exclude instances named example-instance by specifying name !=
86452// example-instance.
86453//
86454// You can also filter nested fields. For example, you could specify
86455// scheduling.automaticRestart = false to include instances only if they
86456// are not scheduled for automatic restarts. You can use filtering on
86457// nested fields to filter based on resource labels.
86458//
86459// To filter on multiple expressions, provide each separate expression
86460// within parentheses. For example, (scheduling.automaticRestart = true)
86461// (cpuPlatform = "Intel Skylake"). By default, each expression is an
86462// AND expression. However, you can include AND and OR expressions
86463// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
86464// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
86465// true).
86466func (c *RegionOperationsListCall) Filter(filter string) *RegionOperationsListCall {
86467	c.urlParams_.Set("filter", filter)
86468	return c
86469}
86470
86471// MaxResults sets the optional parameter "maxResults": The maximum
86472// number of results per page that should be returned. If the number of
86473// available results is larger than maxResults, Compute Engine returns a
86474// nextPageToken that can be used to get the next page of results in
86475// subsequent list requests. Acceptable values are 0 to 500, inclusive.
86476// (Default: 500)
86477func (c *RegionOperationsListCall) MaxResults(maxResults int64) *RegionOperationsListCall {
86478	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
86479	return c
86480}
86481
86482// OrderBy sets the optional parameter "orderBy": Sorts list results by
86483// a certain order. By default, results are returned in alphanumerical
86484// order based on the resource name.
86485//
86486// You can also sort results in descending order based on the creation
86487// timestamp using orderBy="creationTimestamp desc". This sorts results
86488// based on the creationTimestamp field in reverse chronological order
86489// (newest result first). Use this to sort resources like operations so
86490// that the newest operation is returned first.
86491//
86492// Currently, only sorting by name or creationTimestamp desc is
86493// supported.
86494func (c *RegionOperationsListCall) OrderBy(orderBy string) *RegionOperationsListCall {
86495	c.urlParams_.Set("orderBy", orderBy)
86496	return c
86497}
86498
86499// PageToken sets the optional parameter "pageToken": Specifies a page
86500// token to use. Set pageToken to the nextPageToken returned by a
86501// previous list request to get the next page of results.
86502func (c *RegionOperationsListCall) PageToken(pageToken string) *RegionOperationsListCall {
86503	c.urlParams_.Set("pageToken", pageToken)
86504	return c
86505}
86506
86507// Fields allows partial responses to be retrieved. See
86508// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86509// for more information.
86510func (c *RegionOperationsListCall) Fields(s ...googleapi.Field) *RegionOperationsListCall {
86511	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86512	return c
86513}
86514
86515// IfNoneMatch sets the optional parameter which makes the operation
86516// fail if the object's ETag matches the given value. This is useful for
86517// getting updates only after the object has changed since the last
86518// request. Use googleapi.IsNotModified to check whether the response
86519// error from Do is the result of In-None-Match.
86520func (c *RegionOperationsListCall) IfNoneMatch(entityTag string) *RegionOperationsListCall {
86521	c.ifNoneMatch_ = entityTag
86522	return c
86523}
86524
86525// Context sets the context to be used in this call's Do method. Any
86526// pending HTTP request will be aborted if the provided context is
86527// canceled.
86528func (c *RegionOperationsListCall) Context(ctx context.Context) *RegionOperationsListCall {
86529	c.ctx_ = ctx
86530	return c
86531}
86532
86533// Header returns an http.Header that can be modified by the caller to
86534// add HTTP headers to the request.
86535func (c *RegionOperationsListCall) Header() http.Header {
86536	if c.header_ == nil {
86537		c.header_ = make(http.Header)
86538	}
86539	return c.header_
86540}
86541
86542func (c *RegionOperationsListCall) doRequest(alt string) (*http.Response, error) {
86543	reqHeaders := make(http.Header)
86544	for k, v := range c.header_ {
86545		reqHeaders[k] = v
86546	}
86547	reqHeaders.Set("User-Agent", c.s.userAgent())
86548	if c.ifNoneMatch_ != "" {
86549		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86550	}
86551	var body io.Reader = nil
86552	c.urlParams_.Set("alt", alt)
86553	c.urlParams_.Set("prettyPrint", "false")
86554	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations")
86555	urls += "?" + c.urlParams_.Encode()
86556	req, err := http.NewRequest("GET", urls, body)
86557	if err != nil {
86558		return nil, err
86559	}
86560	req.Header = reqHeaders
86561	googleapi.Expand(req.URL, map[string]string{
86562		"project": c.project,
86563		"region":  c.region,
86564	})
86565	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86566}
86567
86568// Do executes the "compute.regionOperations.list" call.
86569// Exactly one of *OperationList or error will be non-nil. Any non-2xx
86570// status code is an error. Response headers are in either
86571// *OperationList.ServerResponse.Header or (if a response was returned
86572// at all) in error.(*googleapi.Error).Header. Use
86573// googleapi.IsNotModified to check whether the returned error was
86574// because http.StatusNotModified was returned.
86575func (c *RegionOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
86576	gensupport.SetOptions(c.urlParams_, opts...)
86577	res, err := c.doRequest("json")
86578	if res != nil && res.StatusCode == http.StatusNotModified {
86579		if res.Body != nil {
86580			res.Body.Close()
86581		}
86582		return nil, &googleapi.Error{
86583			Code:   res.StatusCode,
86584			Header: res.Header,
86585		}
86586	}
86587	if err != nil {
86588		return nil, err
86589	}
86590	defer googleapi.CloseBody(res)
86591	if err := googleapi.CheckResponse(res); err != nil {
86592		return nil, err
86593	}
86594	ret := &OperationList{
86595		ServerResponse: googleapi.ServerResponse{
86596			Header:         res.Header,
86597			HTTPStatusCode: res.StatusCode,
86598		},
86599	}
86600	target := &ret
86601	if err := gensupport.DecodeResponse(target, res); err != nil {
86602		return nil, err
86603	}
86604	return ret, nil
86605	// {
86606	//   "description": "Retrieves a list of Operation resources contained within the specified region.",
86607	//   "httpMethod": "GET",
86608	//   "id": "compute.regionOperations.list",
86609	//   "parameterOrder": [
86610	//     "project",
86611	//     "region"
86612	//   ],
86613	//   "parameters": {
86614	//     "filter": {
86615	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
86616	//       "location": "query",
86617	//       "type": "string"
86618	//     },
86619	//     "maxResults": {
86620	//       "default": "500",
86621	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
86622	//       "format": "uint32",
86623	//       "location": "query",
86624	//       "minimum": "0",
86625	//       "type": "integer"
86626	//     },
86627	//     "orderBy": {
86628	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
86629	//       "location": "query",
86630	//       "type": "string"
86631	//     },
86632	//     "pageToken": {
86633	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
86634	//       "location": "query",
86635	//       "type": "string"
86636	//     },
86637	//     "project": {
86638	//       "description": "Project ID for this request.",
86639	//       "location": "path",
86640	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86641	//       "required": true,
86642	//       "type": "string"
86643	//     },
86644	//     "region": {
86645	//       "description": "Name of the region for this request.",
86646	//       "location": "path",
86647	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86648	//       "required": true,
86649	//       "type": "string"
86650	//     }
86651	//   },
86652	//   "path": "{project}/regions/{region}/operations",
86653	//   "response": {
86654	//     "$ref": "OperationList"
86655	//   },
86656	//   "scopes": [
86657	//     "https://www.googleapis.com/auth/cloud-platform",
86658	//     "https://www.googleapis.com/auth/compute",
86659	//     "https://www.googleapis.com/auth/compute.readonly"
86660	//   ]
86661	// }
86662
86663}
86664
86665// Pages invokes f for each page of results.
86666// A non-nil error returned from f will halt the iteration.
86667// The provided context supersedes any context provided to the Context method.
86668func (c *RegionOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
86669	c.ctx_ = ctx
86670	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
86671	for {
86672		x, err := c.Do()
86673		if err != nil {
86674			return err
86675		}
86676		if err := f(x); err != nil {
86677			return err
86678		}
86679		if x.NextPageToken == "" {
86680			return nil
86681		}
86682		c.PageToken(x.NextPageToken)
86683	}
86684}
86685
86686// method id "compute.regions.get":
86687
86688type RegionsGetCall struct {
86689	s            *Service
86690	project      string
86691	region       string
86692	urlParams_   gensupport.URLParams
86693	ifNoneMatch_ string
86694	ctx_         context.Context
86695	header_      http.Header
86696}
86697
86698// Get: Returns the specified Region resource. Gets a list of available
86699// regions by making a list() request.
86700// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/get
86701func (r *RegionsService) Get(project string, region string) *RegionsGetCall {
86702	c := &RegionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86703	c.project = project
86704	c.region = region
86705	return c
86706}
86707
86708// Fields allows partial responses to be retrieved. See
86709// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86710// for more information.
86711func (c *RegionsGetCall) Fields(s ...googleapi.Field) *RegionsGetCall {
86712	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86713	return c
86714}
86715
86716// IfNoneMatch sets the optional parameter which makes the operation
86717// fail if the object's ETag matches the given value. This is useful for
86718// getting updates only after the object has changed since the last
86719// request. Use googleapi.IsNotModified to check whether the response
86720// error from Do is the result of In-None-Match.
86721func (c *RegionsGetCall) IfNoneMatch(entityTag string) *RegionsGetCall {
86722	c.ifNoneMatch_ = entityTag
86723	return c
86724}
86725
86726// Context sets the context to be used in this call's Do method. Any
86727// pending HTTP request will be aborted if the provided context is
86728// canceled.
86729func (c *RegionsGetCall) Context(ctx context.Context) *RegionsGetCall {
86730	c.ctx_ = ctx
86731	return c
86732}
86733
86734// Header returns an http.Header that can be modified by the caller to
86735// add HTTP headers to the request.
86736func (c *RegionsGetCall) Header() http.Header {
86737	if c.header_ == nil {
86738		c.header_ = make(http.Header)
86739	}
86740	return c.header_
86741}
86742
86743func (c *RegionsGetCall) doRequest(alt string) (*http.Response, error) {
86744	reqHeaders := make(http.Header)
86745	for k, v := range c.header_ {
86746		reqHeaders[k] = v
86747	}
86748	reqHeaders.Set("User-Agent", c.s.userAgent())
86749	if c.ifNoneMatch_ != "" {
86750		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86751	}
86752	var body io.Reader = nil
86753	c.urlParams_.Set("alt", alt)
86754	c.urlParams_.Set("prettyPrint", "false")
86755	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}")
86756	urls += "?" + c.urlParams_.Encode()
86757	req, err := http.NewRequest("GET", urls, body)
86758	if err != nil {
86759		return nil, err
86760	}
86761	req.Header = reqHeaders
86762	googleapi.Expand(req.URL, map[string]string{
86763		"project": c.project,
86764		"region":  c.region,
86765	})
86766	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86767}
86768
86769// Do executes the "compute.regions.get" call.
86770// Exactly one of *Region or error will be non-nil. Any non-2xx status
86771// code is an error. Response headers are in either
86772// *Region.ServerResponse.Header or (if a response was returned at all)
86773// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
86774// check whether the returned error was because http.StatusNotModified
86775// was returned.
86776func (c *RegionsGetCall) Do(opts ...googleapi.CallOption) (*Region, error) {
86777	gensupport.SetOptions(c.urlParams_, opts...)
86778	res, err := c.doRequest("json")
86779	if res != nil && res.StatusCode == http.StatusNotModified {
86780		if res.Body != nil {
86781			res.Body.Close()
86782		}
86783		return nil, &googleapi.Error{
86784			Code:   res.StatusCode,
86785			Header: res.Header,
86786		}
86787	}
86788	if err != nil {
86789		return nil, err
86790	}
86791	defer googleapi.CloseBody(res)
86792	if err := googleapi.CheckResponse(res); err != nil {
86793		return nil, err
86794	}
86795	ret := &Region{
86796		ServerResponse: googleapi.ServerResponse{
86797			Header:         res.Header,
86798			HTTPStatusCode: res.StatusCode,
86799		},
86800	}
86801	target := &ret
86802	if err := gensupport.DecodeResponse(target, res); err != nil {
86803		return nil, err
86804	}
86805	return ret, nil
86806	// {
86807	//   "description": "Returns the specified Region resource. Gets a list of available regions by making a list() request.",
86808	//   "httpMethod": "GET",
86809	//   "id": "compute.regions.get",
86810	//   "parameterOrder": [
86811	//     "project",
86812	//     "region"
86813	//   ],
86814	//   "parameters": {
86815	//     "project": {
86816	//       "description": "Project ID for this request.",
86817	//       "location": "path",
86818	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86819	//       "required": true,
86820	//       "type": "string"
86821	//     },
86822	//     "region": {
86823	//       "description": "Name of the region resource to return.",
86824	//       "location": "path",
86825	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86826	//       "required": true,
86827	//       "type": "string"
86828	//     }
86829	//   },
86830	//   "path": "{project}/regions/{region}",
86831	//   "response": {
86832	//     "$ref": "Region"
86833	//   },
86834	//   "scopes": [
86835	//     "https://www.googleapis.com/auth/cloud-platform",
86836	//     "https://www.googleapis.com/auth/compute",
86837	//     "https://www.googleapis.com/auth/compute.readonly"
86838	//   ]
86839	// }
86840
86841}
86842
86843// method id "compute.regions.list":
86844
86845type RegionsListCall struct {
86846	s            *Service
86847	project      string
86848	urlParams_   gensupport.URLParams
86849	ifNoneMatch_ string
86850	ctx_         context.Context
86851	header_      http.Header
86852}
86853
86854// List: Retrieves the list of region resources available to the
86855// specified project.
86856// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/list
86857func (r *RegionsService) List(project string) *RegionsListCall {
86858	c := &RegionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86859	c.project = project
86860	return c
86861}
86862
86863// Filter sets the optional parameter "filter": A filter expression that
86864// filters resources listed in the response. The expression must specify
86865// the field name, a comparison operator, and the value that you want to
86866// use for filtering. The value must be a string, a number, or a
86867// boolean. The comparison operator must be either =, !=, >, or <.
86868//
86869// For example, if you are filtering Compute Engine instances, you can
86870// exclude instances named example-instance by specifying name !=
86871// example-instance.
86872//
86873// You can also filter nested fields. For example, you could specify
86874// scheduling.automaticRestart = false to include instances only if they
86875// are not scheduled for automatic restarts. You can use filtering on
86876// nested fields to filter based on resource labels.
86877//
86878// To filter on multiple expressions, provide each separate expression
86879// within parentheses. For example, (scheduling.automaticRestart = true)
86880// (cpuPlatform = "Intel Skylake"). By default, each expression is an
86881// AND expression. However, you can include AND and OR expressions
86882// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
86883// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
86884// true).
86885func (c *RegionsListCall) Filter(filter string) *RegionsListCall {
86886	c.urlParams_.Set("filter", filter)
86887	return c
86888}
86889
86890// MaxResults sets the optional parameter "maxResults": The maximum
86891// number of results per page that should be returned. If the number of
86892// available results is larger than maxResults, Compute Engine returns a
86893// nextPageToken that can be used to get the next page of results in
86894// subsequent list requests. Acceptable values are 0 to 500, inclusive.
86895// (Default: 500)
86896func (c *RegionsListCall) MaxResults(maxResults int64) *RegionsListCall {
86897	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
86898	return c
86899}
86900
86901// OrderBy sets the optional parameter "orderBy": Sorts list results by
86902// a certain order. By default, results are returned in alphanumerical
86903// order based on the resource name.
86904//
86905// You can also sort results in descending order based on the creation
86906// timestamp using orderBy="creationTimestamp desc". This sorts results
86907// based on the creationTimestamp field in reverse chronological order
86908// (newest result first). Use this to sort resources like operations so
86909// that the newest operation is returned first.
86910//
86911// Currently, only sorting by name or creationTimestamp desc is
86912// supported.
86913func (c *RegionsListCall) OrderBy(orderBy string) *RegionsListCall {
86914	c.urlParams_.Set("orderBy", orderBy)
86915	return c
86916}
86917
86918// PageToken sets the optional parameter "pageToken": Specifies a page
86919// token to use. Set pageToken to the nextPageToken returned by a
86920// previous list request to get the next page of results.
86921func (c *RegionsListCall) PageToken(pageToken string) *RegionsListCall {
86922	c.urlParams_.Set("pageToken", pageToken)
86923	return c
86924}
86925
86926// Fields allows partial responses to be retrieved. See
86927// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86928// for more information.
86929func (c *RegionsListCall) Fields(s ...googleapi.Field) *RegionsListCall {
86930	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86931	return c
86932}
86933
86934// IfNoneMatch sets the optional parameter which makes the operation
86935// fail if the object's ETag matches the given value. This is useful for
86936// getting updates only after the object has changed since the last
86937// request. Use googleapi.IsNotModified to check whether the response
86938// error from Do is the result of In-None-Match.
86939func (c *RegionsListCall) IfNoneMatch(entityTag string) *RegionsListCall {
86940	c.ifNoneMatch_ = entityTag
86941	return c
86942}
86943
86944// Context sets the context to be used in this call's Do method. Any
86945// pending HTTP request will be aborted if the provided context is
86946// canceled.
86947func (c *RegionsListCall) Context(ctx context.Context) *RegionsListCall {
86948	c.ctx_ = ctx
86949	return c
86950}
86951
86952// Header returns an http.Header that can be modified by the caller to
86953// add HTTP headers to the request.
86954func (c *RegionsListCall) Header() http.Header {
86955	if c.header_ == nil {
86956		c.header_ = make(http.Header)
86957	}
86958	return c.header_
86959}
86960
86961func (c *RegionsListCall) doRequest(alt string) (*http.Response, error) {
86962	reqHeaders := make(http.Header)
86963	for k, v := range c.header_ {
86964		reqHeaders[k] = v
86965	}
86966	reqHeaders.Set("User-Agent", c.s.userAgent())
86967	if c.ifNoneMatch_ != "" {
86968		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86969	}
86970	var body io.Reader = nil
86971	c.urlParams_.Set("alt", alt)
86972	c.urlParams_.Set("prettyPrint", "false")
86973	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions")
86974	urls += "?" + c.urlParams_.Encode()
86975	req, err := http.NewRequest("GET", urls, body)
86976	if err != nil {
86977		return nil, err
86978	}
86979	req.Header = reqHeaders
86980	googleapi.Expand(req.URL, map[string]string{
86981		"project": c.project,
86982	})
86983	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86984}
86985
86986// Do executes the "compute.regions.list" call.
86987// Exactly one of *RegionList or error will be non-nil. Any non-2xx
86988// status code is an error. Response headers are in either
86989// *RegionList.ServerResponse.Header or (if a response was returned at
86990// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86991// to check whether the returned error was because
86992// http.StatusNotModified was returned.
86993func (c *RegionsListCall) Do(opts ...googleapi.CallOption) (*RegionList, error) {
86994	gensupport.SetOptions(c.urlParams_, opts...)
86995	res, err := c.doRequest("json")
86996	if res != nil && res.StatusCode == http.StatusNotModified {
86997		if res.Body != nil {
86998			res.Body.Close()
86999		}
87000		return nil, &googleapi.Error{
87001			Code:   res.StatusCode,
87002			Header: res.Header,
87003		}
87004	}
87005	if err != nil {
87006		return nil, err
87007	}
87008	defer googleapi.CloseBody(res)
87009	if err := googleapi.CheckResponse(res); err != nil {
87010		return nil, err
87011	}
87012	ret := &RegionList{
87013		ServerResponse: googleapi.ServerResponse{
87014			Header:         res.Header,
87015			HTTPStatusCode: res.StatusCode,
87016		},
87017	}
87018	target := &ret
87019	if err := gensupport.DecodeResponse(target, res); err != nil {
87020		return nil, err
87021	}
87022	return ret, nil
87023	// {
87024	//   "description": "Retrieves the list of region resources available to the specified project.",
87025	//   "httpMethod": "GET",
87026	//   "id": "compute.regions.list",
87027	//   "parameterOrder": [
87028	//     "project"
87029	//   ],
87030	//   "parameters": {
87031	//     "filter": {
87032	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
87033	//       "location": "query",
87034	//       "type": "string"
87035	//     },
87036	//     "maxResults": {
87037	//       "default": "500",
87038	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
87039	//       "format": "uint32",
87040	//       "location": "query",
87041	//       "minimum": "0",
87042	//       "type": "integer"
87043	//     },
87044	//     "orderBy": {
87045	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
87046	//       "location": "query",
87047	//       "type": "string"
87048	//     },
87049	//     "pageToken": {
87050	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
87051	//       "location": "query",
87052	//       "type": "string"
87053	//     },
87054	//     "project": {
87055	//       "description": "Project ID for this request.",
87056	//       "location": "path",
87057	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87058	//       "required": true,
87059	//       "type": "string"
87060	//     }
87061	//   },
87062	//   "path": "{project}/regions",
87063	//   "response": {
87064	//     "$ref": "RegionList"
87065	//   },
87066	//   "scopes": [
87067	//     "https://www.googleapis.com/auth/cloud-platform",
87068	//     "https://www.googleapis.com/auth/compute",
87069	//     "https://www.googleapis.com/auth/compute.readonly"
87070	//   ]
87071	// }
87072
87073}
87074
87075// Pages invokes f for each page of results.
87076// A non-nil error returned from f will halt the iteration.
87077// The provided context supersedes any context provided to the Context method.
87078func (c *RegionsListCall) Pages(ctx context.Context, f func(*RegionList) error) error {
87079	c.ctx_ = ctx
87080	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
87081	for {
87082		x, err := c.Do()
87083		if err != nil {
87084			return err
87085		}
87086		if err := f(x); err != nil {
87087			return err
87088		}
87089		if x.NextPageToken == "" {
87090			return nil
87091		}
87092		c.PageToken(x.NextPageToken)
87093	}
87094}
87095
87096// method id "compute.routers.aggregatedList":
87097
87098type RoutersAggregatedListCall struct {
87099	s            *Service
87100	project      string
87101	urlParams_   gensupport.URLParams
87102	ifNoneMatch_ string
87103	ctx_         context.Context
87104	header_      http.Header
87105}
87106
87107// AggregatedList: Retrieves an aggregated list of routers.
87108func (r *RoutersService) AggregatedList(project string) *RoutersAggregatedListCall {
87109	c := &RoutersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87110	c.project = project
87111	return c
87112}
87113
87114// Filter sets the optional parameter "filter": A filter expression that
87115// filters resources listed in the response. The expression must specify
87116// the field name, a comparison operator, and the value that you want to
87117// use for filtering. The value must be a string, a number, or a
87118// boolean. The comparison operator must be either =, !=, >, or <.
87119//
87120// For example, if you are filtering Compute Engine instances, you can
87121// exclude instances named example-instance by specifying name !=
87122// example-instance.
87123//
87124// You can also filter nested fields. For example, you could specify
87125// scheduling.automaticRestart = false to include instances only if they
87126// are not scheduled for automatic restarts. You can use filtering on
87127// nested fields to filter based on resource labels.
87128//
87129// To filter on multiple expressions, provide each separate expression
87130// within parentheses. For example, (scheduling.automaticRestart = true)
87131// (cpuPlatform = "Intel Skylake"). By default, each expression is an
87132// AND expression. However, you can include AND and OR expressions
87133// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
87134// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
87135// true).
87136func (c *RoutersAggregatedListCall) Filter(filter string) *RoutersAggregatedListCall {
87137	c.urlParams_.Set("filter", filter)
87138	return c
87139}
87140
87141// MaxResults sets the optional parameter "maxResults": The maximum
87142// number of results per page that should be returned. If the number of
87143// available results is larger than maxResults, Compute Engine returns a
87144// nextPageToken that can be used to get the next page of results in
87145// subsequent list requests. Acceptable values are 0 to 500, inclusive.
87146// (Default: 500)
87147func (c *RoutersAggregatedListCall) MaxResults(maxResults int64) *RoutersAggregatedListCall {
87148	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
87149	return c
87150}
87151
87152// OrderBy sets the optional parameter "orderBy": Sorts list results by
87153// a certain order. By default, results are returned in alphanumerical
87154// order based on the resource name.
87155//
87156// You can also sort results in descending order based on the creation
87157// timestamp using orderBy="creationTimestamp desc". This sorts results
87158// based on the creationTimestamp field in reverse chronological order
87159// (newest result first). Use this to sort resources like operations so
87160// that the newest operation is returned first.
87161//
87162// Currently, only sorting by name or creationTimestamp desc is
87163// supported.
87164func (c *RoutersAggregatedListCall) OrderBy(orderBy string) *RoutersAggregatedListCall {
87165	c.urlParams_.Set("orderBy", orderBy)
87166	return c
87167}
87168
87169// PageToken sets the optional parameter "pageToken": Specifies a page
87170// token to use. Set pageToken to the nextPageToken returned by a
87171// previous list request to get the next page of results.
87172func (c *RoutersAggregatedListCall) PageToken(pageToken string) *RoutersAggregatedListCall {
87173	c.urlParams_.Set("pageToken", pageToken)
87174	return c
87175}
87176
87177// Fields allows partial responses to be retrieved. See
87178// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87179// for more information.
87180func (c *RoutersAggregatedListCall) Fields(s ...googleapi.Field) *RoutersAggregatedListCall {
87181	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87182	return c
87183}
87184
87185// IfNoneMatch sets the optional parameter which makes the operation
87186// fail if the object's ETag matches the given value. This is useful for
87187// getting updates only after the object has changed since the last
87188// request. Use googleapi.IsNotModified to check whether the response
87189// error from Do is the result of In-None-Match.
87190func (c *RoutersAggregatedListCall) IfNoneMatch(entityTag string) *RoutersAggregatedListCall {
87191	c.ifNoneMatch_ = entityTag
87192	return c
87193}
87194
87195// Context sets the context to be used in this call's Do method. Any
87196// pending HTTP request will be aborted if the provided context is
87197// canceled.
87198func (c *RoutersAggregatedListCall) Context(ctx context.Context) *RoutersAggregatedListCall {
87199	c.ctx_ = ctx
87200	return c
87201}
87202
87203// Header returns an http.Header that can be modified by the caller to
87204// add HTTP headers to the request.
87205func (c *RoutersAggregatedListCall) Header() http.Header {
87206	if c.header_ == nil {
87207		c.header_ = make(http.Header)
87208	}
87209	return c.header_
87210}
87211
87212func (c *RoutersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
87213	reqHeaders := make(http.Header)
87214	for k, v := range c.header_ {
87215		reqHeaders[k] = v
87216	}
87217	reqHeaders.Set("User-Agent", c.s.userAgent())
87218	if c.ifNoneMatch_ != "" {
87219		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
87220	}
87221	var body io.Reader = nil
87222	c.urlParams_.Set("alt", alt)
87223	c.urlParams_.Set("prettyPrint", "false")
87224	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/routers")
87225	urls += "?" + c.urlParams_.Encode()
87226	req, err := http.NewRequest("GET", urls, body)
87227	if err != nil {
87228		return nil, err
87229	}
87230	req.Header = reqHeaders
87231	googleapi.Expand(req.URL, map[string]string{
87232		"project": c.project,
87233	})
87234	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87235}
87236
87237// Do executes the "compute.routers.aggregatedList" call.
87238// Exactly one of *RouterAggregatedList or error will be non-nil. Any
87239// non-2xx status code is an error. Response headers are in either
87240// *RouterAggregatedList.ServerResponse.Header or (if a response was
87241// returned at all) in error.(*googleapi.Error).Header. Use
87242// googleapi.IsNotModified to check whether the returned error was
87243// because http.StatusNotModified was returned.
87244func (c *RoutersAggregatedListCall) Do(opts ...googleapi.CallOption) (*RouterAggregatedList, error) {
87245	gensupport.SetOptions(c.urlParams_, opts...)
87246	res, err := c.doRequest("json")
87247	if res != nil && res.StatusCode == http.StatusNotModified {
87248		if res.Body != nil {
87249			res.Body.Close()
87250		}
87251		return nil, &googleapi.Error{
87252			Code:   res.StatusCode,
87253			Header: res.Header,
87254		}
87255	}
87256	if err != nil {
87257		return nil, err
87258	}
87259	defer googleapi.CloseBody(res)
87260	if err := googleapi.CheckResponse(res); err != nil {
87261		return nil, err
87262	}
87263	ret := &RouterAggregatedList{
87264		ServerResponse: googleapi.ServerResponse{
87265			Header:         res.Header,
87266			HTTPStatusCode: res.StatusCode,
87267		},
87268	}
87269	target := &ret
87270	if err := gensupport.DecodeResponse(target, res); err != nil {
87271		return nil, err
87272	}
87273	return ret, nil
87274	// {
87275	//   "description": "Retrieves an aggregated list of routers.",
87276	//   "httpMethod": "GET",
87277	//   "id": "compute.routers.aggregatedList",
87278	//   "parameterOrder": [
87279	//     "project"
87280	//   ],
87281	//   "parameters": {
87282	//     "filter": {
87283	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
87284	//       "location": "query",
87285	//       "type": "string"
87286	//     },
87287	//     "maxResults": {
87288	//       "default": "500",
87289	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
87290	//       "format": "uint32",
87291	//       "location": "query",
87292	//       "minimum": "0",
87293	//       "type": "integer"
87294	//     },
87295	//     "orderBy": {
87296	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
87297	//       "location": "query",
87298	//       "type": "string"
87299	//     },
87300	//     "pageToken": {
87301	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
87302	//       "location": "query",
87303	//       "type": "string"
87304	//     },
87305	//     "project": {
87306	//       "description": "Project ID for this request.",
87307	//       "location": "path",
87308	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87309	//       "required": true,
87310	//       "type": "string"
87311	//     }
87312	//   },
87313	//   "path": "{project}/aggregated/routers",
87314	//   "response": {
87315	//     "$ref": "RouterAggregatedList"
87316	//   },
87317	//   "scopes": [
87318	//     "https://www.googleapis.com/auth/cloud-platform",
87319	//     "https://www.googleapis.com/auth/compute",
87320	//     "https://www.googleapis.com/auth/compute.readonly"
87321	//   ]
87322	// }
87323
87324}
87325
87326// Pages invokes f for each page of results.
87327// A non-nil error returned from f will halt the iteration.
87328// The provided context supersedes any context provided to the Context method.
87329func (c *RoutersAggregatedListCall) Pages(ctx context.Context, f func(*RouterAggregatedList) error) error {
87330	c.ctx_ = ctx
87331	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
87332	for {
87333		x, err := c.Do()
87334		if err != nil {
87335			return err
87336		}
87337		if err := f(x); err != nil {
87338			return err
87339		}
87340		if x.NextPageToken == "" {
87341			return nil
87342		}
87343		c.PageToken(x.NextPageToken)
87344	}
87345}
87346
87347// method id "compute.routers.delete":
87348
87349type RoutersDeleteCall struct {
87350	s          *Service
87351	project    string
87352	region     string
87353	router     string
87354	urlParams_ gensupport.URLParams
87355	ctx_       context.Context
87356	header_    http.Header
87357}
87358
87359// Delete: Deletes the specified Router resource.
87360func (r *RoutersService) Delete(project string, region string, router string) *RoutersDeleteCall {
87361	c := &RoutersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87362	c.project = project
87363	c.region = region
87364	c.router = router
87365	return c
87366}
87367
87368// RequestId sets the optional parameter "requestId": An optional
87369// request ID to identify requests. Specify a unique request ID so that
87370// if you must retry your request, the server will know to ignore the
87371// request if it has already been completed.
87372//
87373// For example, consider a situation where you make an initial request
87374// and the request times out. If you make the request again with the
87375// same request ID, the server can check if original operation with the
87376// same request ID was received, and if so, will ignore the second
87377// request. This prevents clients from accidentally creating duplicate
87378// commitments.
87379//
87380// The request ID must be a valid UUID with the exception that zero UUID
87381// is not supported (00000000-0000-0000-0000-000000000000).
87382func (c *RoutersDeleteCall) RequestId(requestId string) *RoutersDeleteCall {
87383	c.urlParams_.Set("requestId", requestId)
87384	return c
87385}
87386
87387// Fields allows partial responses to be retrieved. See
87388// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87389// for more information.
87390func (c *RoutersDeleteCall) Fields(s ...googleapi.Field) *RoutersDeleteCall {
87391	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87392	return c
87393}
87394
87395// Context sets the context to be used in this call's Do method. Any
87396// pending HTTP request will be aborted if the provided context is
87397// canceled.
87398func (c *RoutersDeleteCall) Context(ctx context.Context) *RoutersDeleteCall {
87399	c.ctx_ = ctx
87400	return c
87401}
87402
87403// Header returns an http.Header that can be modified by the caller to
87404// add HTTP headers to the request.
87405func (c *RoutersDeleteCall) Header() http.Header {
87406	if c.header_ == nil {
87407		c.header_ = make(http.Header)
87408	}
87409	return c.header_
87410}
87411
87412func (c *RoutersDeleteCall) doRequest(alt string) (*http.Response, error) {
87413	reqHeaders := make(http.Header)
87414	for k, v := range c.header_ {
87415		reqHeaders[k] = v
87416	}
87417	reqHeaders.Set("User-Agent", c.s.userAgent())
87418	var body io.Reader = nil
87419	c.urlParams_.Set("alt", alt)
87420	c.urlParams_.Set("prettyPrint", "false")
87421	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
87422	urls += "?" + c.urlParams_.Encode()
87423	req, err := http.NewRequest("DELETE", urls, body)
87424	if err != nil {
87425		return nil, err
87426	}
87427	req.Header = reqHeaders
87428	googleapi.Expand(req.URL, map[string]string{
87429		"project": c.project,
87430		"region":  c.region,
87431		"router":  c.router,
87432	})
87433	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87434}
87435
87436// Do executes the "compute.routers.delete" call.
87437// Exactly one of *Operation or error will be non-nil. Any non-2xx
87438// status code is an error. Response headers are in either
87439// *Operation.ServerResponse.Header or (if a response was returned at
87440// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87441// to check whether the returned error was because
87442// http.StatusNotModified was returned.
87443func (c *RoutersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87444	gensupport.SetOptions(c.urlParams_, opts...)
87445	res, err := c.doRequest("json")
87446	if res != nil && res.StatusCode == http.StatusNotModified {
87447		if res.Body != nil {
87448			res.Body.Close()
87449		}
87450		return nil, &googleapi.Error{
87451			Code:   res.StatusCode,
87452			Header: res.Header,
87453		}
87454	}
87455	if err != nil {
87456		return nil, err
87457	}
87458	defer googleapi.CloseBody(res)
87459	if err := googleapi.CheckResponse(res); err != nil {
87460		return nil, err
87461	}
87462	ret := &Operation{
87463		ServerResponse: googleapi.ServerResponse{
87464			Header:         res.Header,
87465			HTTPStatusCode: res.StatusCode,
87466		},
87467	}
87468	target := &ret
87469	if err := gensupport.DecodeResponse(target, res); err != nil {
87470		return nil, err
87471	}
87472	return ret, nil
87473	// {
87474	//   "description": "Deletes the specified Router resource.",
87475	//   "httpMethod": "DELETE",
87476	//   "id": "compute.routers.delete",
87477	//   "parameterOrder": [
87478	//     "project",
87479	//     "region",
87480	//     "router"
87481	//   ],
87482	//   "parameters": {
87483	//     "project": {
87484	//       "description": "Project ID for this request.",
87485	//       "location": "path",
87486	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87487	//       "required": true,
87488	//       "type": "string"
87489	//     },
87490	//     "region": {
87491	//       "description": "Name of the region for this request.",
87492	//       "location": "path",
87493	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87494	//       "required": true,
87495	//       "type": "string"
87496	//     },
87497	//     "requestId": {
87498	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87499	//       "location": "query",
87500	//       "type": "string"
87501	//     },
87502	//     "router": {
87503	//       "description": "Name of the Router resource to delete.",
87504	//       "location": "path",
87505	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87506	//       "required": true,
87507	//       "type": "string"
87508	//     }
87509	//   },
87510	//   "path": "{project}/regions/{region}/routers/{router}",
87511	//   "response": {
87512	//     "$ref": "Operation"
87513	//   },
87514	//   "scopes": [
87515	//     "https://www.googleapis.com/auth/cloud-platform",
87516	//     "https://www.googleapis.com/auth/compute"
87517	//   ]
87518	// }
87519
87520}
87521
87522// method id "compute.routers.get":
87523
87524type RoutersGetCall struct {
87525	s            *Service
87526	project      string
87527	region       string
87528	router       string
87529	urlParams_   gensupport.URLParams
87530	ifNoneMatch_ string
87531	ctx_         context.Context
87532	header_      http.Header
87533}
87534
87535// Get: Returns the specified Router resource. Gets a list of available
87536// routers by making a list() request.
87537func (r *RoutersService) Get(project string, region string, router string) *RoutersGetCall {
87538	c := &RoutersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87539	c.project = project
87540	c.region = region
87541	c.router = router
87542	return c
87543}
87544
87545// Fields allows partial responses to be retrieved. See
87546// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87547// for more information.
87548func (c *RoutersGetCall) Fields(s ...googleapi.Field) *RoutersGetCall {
87549	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87550	return c
87551}
87552
87553// IfNoneMatch sets the optional parameter which makes the operation
87554// fail if the object's ETag matches the given value. This is useful for
87555// getting updates only after the object has changed since the last
87556// request. Use googleapi.IsNotModified to check whether the response
87557// error from Do is the result of In-None-Match.
87558func (c *RoutersGetCall) IfNoneMatch(entityTag string) *RoutersGetCall {
87559	c.ifNoneMatch_ = entityTag
87560	return c
87561}
87562
87563// Context sets the context to be used in this call's Do method. Any
87564// pending HTTP request will be aborted if the provided context is
87565// canceled.
87566func (c *RoutersGetCall) Context(ctx context.Context) *RoutersGetCall {
87567	c.ctx_ = ctx
87568	return c
87569}
87570
87571// Header returns an http.Header that can be modified by the caller to
87572// add HTTP headers to the request.
87573func (c *RoutersGetCall) Header() http.Header {
87574	if c.header_ == nil {
87575		c.header_ = make(http.Header)
87576	}
87577	return c.header_
87578}
87579
87580func (c *RoutersGetCall) doRequest(alt string) (*http.Response, error) {
87581	reqHeaders := make(http.Header)
87582	for k, v := range c.header_ {
87583		reqHeaders[k] = v
87584	}
87585	reqHeaders.Set("User-Agent", c.s.userAgent())
87586	if c.ifNoneMatch_ != "" {
87587		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
87588	}
87589	var body io.Reader = nil
87590	c.urlParams_.Set("alt", alt)
87591	c.urlParams_.Set("prettyPrint", "false")
87592	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
87593	urls += "?" + c.urlParams_.Encode()
87594	req, err := http.NewRequest("GET", urls, body)
87595	if err != nil {
87596		return nil, err
87597	}
87598	req.Header = reqHeaders
87599	googleapi.Expand(req.URL, map[string]string{
87600		"project": c.project,
87601		"region":  c.region,
87602		"router":  c.router,
87603	})
87604	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87605}
87606
87607// Do executes the "compute.routers.get" call.
87608// Exactly one of *Router or error will be non-nil. Any non-2xx status
87609// code is an error. Response headers are in either
87610// *Router.ServerResponse.Header or (if a response was returned at all)
87611// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
87612// check whether the returned error was because http.StatusNotModified
87613// was returned.
87614func (c *RoutersGetCall) Do(opts ...googleapi.CallOption) (*Router, error) {
87615	gensupport.SetOptions(c.urlParams_, opts...)
87616	res, err := c.doRequest("json")
87617	if res != nil && res.StatusCode == http.StatusNotModified {
87618		if res.Body != nil {
87619			res.Body.Close()
87620		}
87621		return nil, &googleapi.Error{
87622			Code:   res.StatusCode,
87623			Header: res.Header,
87624		}
87625	}
87626	if err != nil {
87627		return nil, err
87628	}
87629	defer googleapi.CloseBody(res)
87630	if err := googleapi.CheckResponse(res); err != nil {
87631		return nil, err
87632	}
87633	ret := &Router{
87634		ServerResponse: googleapi.ServerResponse{
87635			Header:         res.Header,
87636			HTTPStatusCode: res.StatusCode,
87637		},
87638	}
87639	target := &ret
87640	if err := gensupport.DecodeResponse(target, res); err != nil {
87641		return nil, err
87642	}
87643	return ret, nil
87644	// {
87645	//   "description": "Returns the specified Router resource. Gets a list of available routers by making a list() request.",
87646	//   "httpMethod": "GET",
87647	//   "id": "compute.routers.get",
87648	//   "parameterOrder": [
87649	//     "project",
87650	//     "region",
87651	//     "router"
87652	//   ],
87653	//   "parameters": {
87654	//     "project": {
87655	//       "description": "Project ID for this request.",
87656	//       "location": "path",
87657	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87658	//       "required": true,
87659	//       "type": "string"
87660	//     },
87661	//     "region": {
87662	//       "description": "Name of the region for this request.",
87663	//       "location": "path",
87664	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87665	//       "required": true,
87666	//       "type": "string"
87667	//     },
87668	//     "router": {
87669	//       "description": "Name of the Router resource to return.",
87670	//       "location": "path",
87671	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87672	//       "required": true,
87673	//       "type": "string"
87674	//     }
87675	//   },
87676	//   "path": "{project}/regions/{region}/routers/{router}",
87677	//   "response": {
87678	//     "$ref": "Router"
87679	//   },
87680	//   "scopes": [
87681	//     "https://www.googleapis.com/auth/cloud-platform",
87682	//     "https://www.googleapis.com/auth/compute",
87683	//     "https://www.googleapis.com/auth/compute.readonly"
87684	//   ]
87685	// }
87686
87687}
87688
87689// method id "compute.routers.getNatMappingInfo":
87690
87691type RoutersGetNatMappingInfoCall struct {
87692	s            *Service
87693	project      string
87694	region       string
87695	router       string
87696	urlParams_   gensupport.URLParams
87697	ifNoneMatch_ string
87698	ctx_         context.Context
87699	header_      http.Header
87700}
87701
87702// GetNatMappingInfo: Retrieves runtime Nat mapping information of VM
87703// endpoints.
87704func (r *RoutersService) GetNatMappingInfo(project string, region string, router string) *RoutersGetNatMappingInfoCall {
87705	c := &RoutersGetNatMappingInfoCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87706	c.project = project
87707	c.region = region
87708	c.router = router
87709	return c
87710}
87711
87712// Filter sets the optional parameter "filter": A filter expression that
87713// filters resources listed in the response. The expression must specify
87714// the field name, a comparison operator, and the value that you want to
87715// use for filtering. The value must be a string, a number, or a
87716// boolean. The comparison operator must be either =, !=, >, or <.
87717//
87718// For example, if you are filtering Compute Engine instances, you can
87719// exclude instances named example-instance by specifying name !=
87720// example-instance.
87721//
87722// You can also filter nested fields. For example, you could specify
87723// scheduling.automaticRestart = false to include instances only if they
87724// are not scheduled for automatic restarts. You can use filtering on
87725// nested fields to filter based on resource labels.
87726//
87727// To filter on multiple expressions, provide each separate expression
87728// within parentheses. For example, (scheduling.automaticRestart = true)
87729// (cpuPlatform = "Intel Skylake"). By default, each expression is an
87730// AND expression. However, you can include AND and OR expressions
87731// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
87732// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
87733// true).
87734func (c *RoutersGetNatMappingInfoCall) Filter(filter string) *RoutersGetNatMappingInfoCall {
87735	c.urlParams_.Set("filter", filter)
87736	return c
87737}
87738
87739// MaxResults sets the optional parameter "maxResults": The maximum
87740// number of results per page that should be returned. If the number of
87741// available results is larger than maxResults, Compute Engine returns a
87742// nextPageToken that can be used to get the next page of results in
87743// subsequent list requests. Acceptable values are 0 to 500, inclusive.
87744// (Default: 500)
87745func (c *RoutersGetNatMappingInfoCall) MaxResults(maxResults int64) *RoutersGetNatMappingInfoCall {
87746	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
87747	return c
87748}
87749
87750// OrderBy sets the optional parameter "orderBy": Sorts list results by
87751// a certain order. By default, results are returned in alphanumerical
87752// order based on the resource name.
87753//
87754// You can also sort results in descending order based on the creation
87755// timestamp using orderBy="creationTimestamp desc". This sorts results
87756// based on the creationTimestamp field in reverse chronological order
87757// (newest result first). Use this to sort resources like operations so
87758// that the newest operation is returned first.
87759//
87760// Currently, only sorting by name or creationTimestamp desc is
87761// supported.
87762func (c *RoutersGetNatMappingInfoCall) OrderBy(orderBy string) *RoutersGetNatMappingInfoCall {
87763	c.urlParams_.Set("orderBy", orderBy)
87764	return c
87765}
87766
87767// PageToken sets the optional parameter "pageToken": Specifies a page
87768// token to use. Set pageToken to the nextPageToken returned by a
87769// previous list request to get the next page of results.
87770func (c *RoutersGetNatMappingInfoCall) PageToken(pageToken string) *RoutersGetNatMappingInfoCall {
87771	c.urlParams_.Set("pageToken", pageToken)
87772	return c
87773}
87774
87775// Fields allows partial responses to be retrieved. See
87776// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87777// for more information.
87778func (c *RoutersGetNatMappingInfoCall) Fields(s ...googleapi.Field) *RoutersGetNatMappingInfoCall {
87779	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87780	return c
87781}
87782
87783// IfNoneMatch sets the optional parameter which makes the operation
87784// fail if the object's ETag matches the given value. This is useful for
87785// getting updates only after the object has changed since the last
87786// request. Use googleapi.IsNotModified to check whether the response
87787// error from Do is the result of In-None-Match.
87788func (c *RoutersGetNatMappingInfoCall) IfNoneMatch(entityTag string) *RoutersGetNatMappingInfoCall {
87789	c.ifNoneMatch_ = entityTag
87790	return c
87791}
87792
87793// Context sets the context to be used in this call's Do method. Any
87794// pending HTTP request will be aborted if the provided context is
87795// canceled.
87796func (c *RoutersGetNatMappingInfoCall) Context(ctx context.Context) *RoutersGetNatMappingInfoCall {
87797	c.ctx_ = ctx
87798	return c
87799}
87800
87801// Header returns an http.Header that can be modified by the caller to
87802// add HTTP headers to the request.
87803func (c *RoutersGetNatMappingInfoCall) Header() http.Header {
87804	if c.header_ == nil {
87805		c.header_ = make(http.Header)
87806	}
87807	return c.header_
87808}
87809
87810func (c *RoutersGetNatMappingInfoCall) doRequest(alt string) (*http.Response, error) {
87811	reqHeaders := make(http.Header)
87812	for k, v := range c.header_ {
87813		reqHeaders[k] = v
87814	}
87815	reqHeaders.Set("User-Agent", c.s.userAgent())
87816	if c.ifNoneMatch_ != "" {
87817		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
87818	}
87819	var body io.Reader = nil
87820	c.urlParams_.Set("alt", alt)
87821	c.urlParams_.Set("prettyPrint", "false")
87822	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/getNatMappingInfo")
87823	urls += "?" + c.urlParams_.Encode()
87824	req, err := http.NewRequest("GET", urls, body)
87825	if err != nil {
87826		return nil, err
87827	}
87828	req.Header = reqHeaders
87829	googleapi.Expand(req.URL, map[string]string{
87830		"project": c.project,
87831		"region":  c.region,
87832		"router":  c.router,
87833	})
87834	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87835}
87836
87837// Do executes the "compute.routers.getNatMappingInfo" call.
87838// Exactly one of *VmEndpointNatMappingsList or error will be non-nil.
87839// Any non-2xx status code is an error. Response headers are in either
87840// *VmEndpointNatMappingsList.ServerResponse.Header or (if a response
87841// was returned at all) in error.(*googleapi.Error).Header. Use
87842// googleapi.IsNotModified to check whether the returned error was
87843// because http.StatusNotModified was returned.
87844func (c *RoutersGetNatMappingInfoCall) Do(opts ...googleapi.CallOption) (*VmEndpointNatMappingsList, error) {
87845	gensupport.SetOptions(c.urlParams_, opts...)
87846	res, err := c.doRequest("json")
87847	if res != nil && res.StatusCode == http.StatusNotModified {
87848		if res.Body != nil {
87849			res.Body.Close()
87850		}
87851		return nil, &googleapi.Error{
87852			Code:   res.StatusCode,
87853			Header: res.Header,
87854		}
87855	}
87856	if err != nil {
87857		return nil, err
87858	}
87859	defer googleapi.CloseBody(res)
87860	if err := googleapi.CheckResponse(res); err != nil {
87861		return nil, err
87862	}
87863	ret := &VmEndpointNatMappingsList{
87864		ServerResponse: googleapi.ServerResponse{
87865			Header:         res.Header,
87866			HTTPStatusCode: res.StatusCode,
87867		},
87868	}
87869	target := &ret
87870	if err := gensupport.DecodeResponse(target, res); err != nil {
87871		return nil, err
87872	}
87873	return ret, nil
87874	// {
87875	//   "description": "Retrieves runtime Nat mapping information of VM endpoints.",
87876	//   "httpMethod": "GET",
87877	//   "id": "compute.routers.getNatMappingInfo",
87878	//   "parameterOrder": [
87879	//     "project",
87880	//     "region",
87881	//     "router"
87882	//   ],
87883	//   "parameters": {
87884	//     "filter": {
87885	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
87886	//       "location": "query",
87887	//       "type": "string"
87888	//     },
87889	//     "maxResults": {
87890	//       "default": "500",
87891	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
87892	//       "format": "uint32",
87893	//       "location": "query",
87894	//       "minimum": "0",
87895	//       "type": "integer"
87896	//     },
87897	//     "orderBy": {
87898	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
87899	//       "location": "query",
87900	//       "type": "string"
87901	//     },
87902	//     "pageToken": {
87903	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
87904	//       "location": "query",
87905	//       "type": "string"
87906	//     },
87907	//     "project": {
87908	//       "description": "Project ID for this request.",
87909	//       "location": "path",
87910	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87911	//       "required": true,
87912	//       "type": "string"
87913	//     },
87914	//     "region": {
87915	//       "description": "Name of the region for this request.",
87916	//       "location": "path",
87917	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87918	//       "required": true,
87919	//       "type": "string"
87920	//     },
87921	//     "router": {
87922	//       "description": "Name of the Router resource to query for Nat Mapping information of VM endpoints.",
87923	//       "location": "path",
87924	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87925	//       "required": true,
87926	//       "type": "string"
87927	//     }
87928	//   },
87929	//   "path": "{project}/regions/{region}/routers/{router}/getNatMappingInfo",
87930	//   "response": {
87931	//     "$ref": "VmEndpointNatMappingsList"
87932	//   },
87933	//   "scopes": [
87934	//     "https://www.googleapis.com/auth/cloud-platform",
87935	//     "https://www.googleapis.com/auth/compute",
87936	//     "https://www.googleapis.com/auth/compute.readonly"
87937	//   ]
87938	// }
87939
87940}
87941
87942// Pages invokes f for each page of results.
87943// A non-nil error returned from f will halt the iteration.
87944// The provided context supersedes any context provided to the Context method.
87945func (c *RoutersGetNatMappingInfoCall) Pages(ctx context.Context, f func(*VmEndpointNatMappingsList) error) error {
87946	c.ctx_ = ctx
87947	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
87948	for {
87949		x, err := c.Do()
87950		if err != nil {
87951			return err
87952		}
87953		if err := f(x); err != nil {
87954			return err
87955		}
87956		if x.NextPageToken == "" {
87957			return nil
87958		}
87959		c.PageToken(x.NextPageToken)
87960	}
87961}
87962
87963// method id "compute.routers.getRouterStatus":
87964
87965type RoutersGetRouterStatusCall struct {
87966	s            *Service
87967	project      string
87968	region       string
87969	router       string
87970	urlParams_   gensupport.URLParams
87971	ifNoneMatch_ string
87972	ctx_         context.Context
87973	header_      http.Header
87974}
87975
87976// GetRouterStatus: Retrieves runtime information of the specified
87977// router.
87978func (r *RoutersService) GetRouterStatus(project string, region string, router string) *RoutersGetRouterStatusCall {
87979	c := &RoutersGetRouterStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87980	c.project = project
87981	c.region = region
87982	c.router = router
87983	return c
87984}
87985
87986// Fields allows partial responses to be retrieved. See
87987// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87988// for more information.
87989func (c *RoutersGetRouterStatusCall) Fields(s ...googleapi.Field) *RoutersGetRouterStatusCall {
87990	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87991	return c
87992}
87993
87994// IfNoneMatch sets the optional parameter which makes the operation
87995// fail if the object's ETag matches the given value. This is useful for
87996// getting updates only after the object has changed since the last
87997// request. Use googleapi.IsNotModified to check whether the response
87998// error from Do is the result of In-None-Match.
87999func (c *RoutersGetRouterStatusCall) IfNoneMatch(entityTag string) *RoutersGetRouterStatusCall {
88000	c.ifNoneMatch_ = entityTag
88001	return c
88002}
88003
88004// Context sets the context to be used in this call's Do method. Any
88005// pending HTTP request will be aborted if the provided context is
88006// canceled.
88007func (c *RoutersGetRouterStatusCall) Context(ctx context.Context) *RoutersGetRouterStatusCall {
88008	c.ctx_ = ctx
88009	return c
88010}
88011
88012// Header returns an http.Header that can be modified by the caller to
88013// add HTTP headers to the request.
88014func (c *RoutersGetRouterStatusCall) Header() http.Header {
88015	if c.header_ == nil {
88016		c.header_ = make(http.Header)
88017	}
88018	return c.header_
88019}
88020
88021func (c *RoutersGetRouterStatusCall) doRequest(alt string) (*http.Response, error) {
88022	reqHeaders := make(http.Header)
88023	for k, v := range c.header_ {
88024		reqHeaders[k] = v
88025	}
88026	reqHeaders.Set("User-Agent", c.s.userAgent())
88027	if c.ifNoneMatch_ != "" {
88028		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88029	}
88030	var body io.Reader = nil
88031	c.urlParams_.Set("alt", alt)
88032	c.urlParams_.Set("prettyPrint", "false")
88033	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/getRouterStatus")
88034	urls += "?" + c.urlParams_.Encode()
88035	req, err := http.NewRequest("GET", urls, body)
88036	if err != nil {
88037		return nil, err
88038	}
88039	req.Header = reqHeaders
88040	googleapi.Expand(req.URL, map[string]string{
88041		"project": c.project,
88042		"region":  c.region,
88043		"router":  c.router,
88044	})
88045	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88046}
88047
88048// Do executes the "compute.routers.getRouterStatus" call.
88049// Exactly one of *RouterStatusResponse or error will be non-nil. Any
88050// non-2xx status code is an error. Response headers are in either
88051// *RouterStatusResponse.ServerResponse.Header or (if a response was
88052// returned at all) in error.(*googleapi.Error).Header. Use
88053// googleapi.IsNotModified to check whether the returned error was
88054// because http.StatusNotModified was returned.
88055func (c *RoutersGetRouterStatusCall) Do(opts ...googleapi.CallOption) (*RouterStatusResponse, error) {
88056	gensupport.SetOptions(c.urlParams_, opts...)
88057	res, err := c.doRequest("json")
88058	if res != nil && res.StatusCode == http.StatusNotModified {
88059		if res.Body != nil {
88060			res.Body.Close()
88061		}
88062		return nil, &googleapi.Error{
88063			Code:   res.StatusCode,
88064			Header: res.Header,
88065		}
88066	}
88067	if err != nil {
88068		return nil, err
88069	}
88070	defer googleapi.CloseBody(res)
88071	if err := googleapi.CheckResponse(res); err != nil {
88072		return nil, err
88073	}
88074	ret := &RouterStatusResponse{
88075		ServerResponse: googleapi.ServerResponse{
88076			Header:         res.Header,
88077			HTTPStatusCode: res.StatusCode,
88078		},
88079	}
88080	target := &ret
88081	if err := gensupport.DecodeResponse(target, res); err != nil {
88082		return nil, err
88083	}
88084	return ret, nil
88085	// {
88086	//   "description": "Retrieves runtime information of the specified router.",
88087	//   "httpMethod": "GET",
88088	//   "id": "compute.routers.getRouterStatus",
88089	//   "parameterOrder": [
88090	//     "project",
88091	//     "region",
88092	//     "router"
88093	//   ],
88094	//   "parameters": {
88095	//     "project": {
88096	//       "description": "Project ID for this request.",
88097	//       "location": "path",
88098	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88099	//       "required": true,
88100	//       "type": "string"
88101	//     },
88102	//     "region": {
88103	//       "description": "Name of the region for this request.",
88104	//       "location": "path",
88105	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88106	//       "required": true,
88107	//       "type": "string"
88108	//     },
88109	//     "router": {
88110	//       "description": "Name of the Router resource to query.",
88111	//       "location": "path",
88112	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88113	//       "required": true,
88114	//       "type": "string"
88115	//     }
88116	//   },
88117	//   "path": "{project}/regions/{region}/routers/{router}/getRouterStatus",
88118	//   "response": {
88119	//     "$ref": "RouterStatusResponse"
88120	//   },
88121	//   "scopes": [
88122	//     "https://www.googleapis.com/auth/cloud-platform",
88123	//     "https://www.googleapis.com/auth/compute",
88124	//     "https://www.googleapis.com/auth/compute.readonly"
88125	//   ]
88126	// }
88127
88128}
88129
88130// method id "compute.routers.insert":
88131
88132type RoutersInsertCall struct {
88133	s          *Service
88134	project    string
88135	region     string
88136	router     *Router
88137	urlParams_ gensupport.URLParams
88138	ctx_       context.Context
88139	header_    http.Header
88140}
88141
88142// Insert: Creates a Router resource in the specified project and region
88143// using the data included in the request.
88144func (r *RoutersService) Insert(project string, region string, router *Router) *RoutersInsertCall {
88145	c := &RoutersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88146	c.project = project
88147	c.region = region
88148	c.router = router
88149	return c
88150}
88151
88152// RequestId sets the optional parameter "requestId": An optional
88153// request ID to identify requests. Specify a unique request ID so that
88154// if you must retry your request, the server will know to ignore the
88155// request if it has already been completed.
88156//
88157// For example, consider a situation where you make an initial request
88158// and the request times out. If you make the request again with the
88159// same request ID, the server can check if original operation with the
88160// same request ID was received, and if so, will ignore the second
88161// request. This prevents clients from accidentally creating duplicate
88162// commitments.
88163//
88164// The request ID must be a valid UUID with the exception that zero UUID
88165// is not supported (00000000-0000-0000-0000-000000000000).
88166func (c *RoutersInsertCall) RequestId(requestId string) *RoutersInsertCall {
88167	c.urlParams_.Set("requestId", requestId)
88168	return c
88169}
88170
88171// Fields allows partial responses to be retrieved. See
88172// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88173// for more information.
88174func (c *RoutersInsertCall) Fields(s ...googleapi.Field) *RoutersInsertCall {
88175	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88176	return c
88177}
88178
88179// Context sets the context to be used in this call's Do method. Any
88180// pending HTTP request will be aborted if the provided context is
88181// canceled.
88182func (c *RoutersInsertCall) Context(ctx context.Context) *RoutersInsertCall {
88183	c.ctx_ = ctx
88184	return c
88185}
88186
88187// Header returns an http.Header that can be modified by the caller to
88188// add HTTP headers to the request.
88189func (c *RoutersInsertCall) Header() http.Header {
88190	if c.header_ == nil {
88191		c.header_ = make(http.Header)
88192	}
88193	return c.header_
88194}
88195
88196func (c *RoutersInsertCall) doRequest(alt string) (*http.Response, error) {
88197	reqHeaders := make(http.Header)
88198	for k, v := range c.header_ {
88199		reqHeaders[k] = v
88200	}
88201	reqHeaders.Set("User-Agent", c.s.userAgent())
88202	var body io.Reader = nil
88203	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router)
88204	if err != nil {
88205		return nil, err
88206	}
88207	reqHeaders.Set("Content-Type", "application/json")
88208	c.urlParams_.Set("alt", alt)
88209	c.urlParams_.Set("prettyPrint", "false")
88210	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers")
88211	urls += "?" + c.urlParams_.Encode()
88212	req, err := http.NewRequest("POST", urls, body)
88213	if err != nil {
88214		return nil, err
88215	}
88216	req.Header = reqHeaders
88217	googleapi.Expand(req.URL, map[string]string{
88218		"project": c.project,
88219		"region":  c.region,
88220	})
88221	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88222}
88223
88224// Do executes the "compute.routers.insert" call.
88225// Exactly one of *Operation or error will be non-nil. Any non-2xx
88226// status code is an error. Response headers are in either
88227// *Operation.ServerResponse.Header or (if a response was returned at
88228// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88229// to check whether the returned error was because
88230// http.StatusNotModified was returned.
88231func (c *RoutersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88232	gensupport.SetOptions(c.urlParams_, opts...)
88233	res, err := c.doRequest("json")
88234	if res != nil && res.StatusCode == http.StatusNotModified {
88235		if res.Body != nil {
88236			res.Body.Close()
88237		}
88238		return nil, &googleapi.Error{
88239			Code:   res.StatusCode,
88240			Header: res.Header,
88241		}
88242	}
88243	if err != nil {
88244		return nil, err
88245	}
88246	defer googleapi.CloseBody(res)
88247	if err := googleapi.CheckResponse(res); err != nil {
88248		return nil, err
88249	}
88250	ret := &Operation{
88251		ServerResponse: googleapi.ServerResponse{
88252			Header:         res.Header,
88253			HTTPStatusCode: res.StatusCode,
88254		},
88255	}
88256	target := &ret
88257	if err := gensupport.DecodeResponse(target, res); err != nil {
88258		return nil, err
88259	}
88260	return ret, nil
88261	// {
88262	//   "description": "Creates a Router resource in the specified project and region using the data included in the request.",
88263	//   "httpMethod": "POST",
88264	//   "id": "compute.routers.insert",
88265	//   "parameterOrder": [
88266	//     "project",
88267	//     "region"
88268	//   ],
88269	//   "parameters": {
88270	//     "project": {
88271	//       "description": "Project ID for this request.",
88272	//       "location": "path",
88273	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88274	//       "required": true,
88275	//       "type": "string"
88276	//     },
88277	//     "region": {
88278	//       "description": "Name of the region for this request.",
88279	//       "location": "path",
88280	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88281	//       "required": true,
88282	//       "type": "string"
88283	//     },
88284	//     "requestId": {
88285	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88286	//       "location": "query",
88287	//       "type": "string"
88288	//     }
88289	//   },
88290	//   "path": "{project}/regions/{region}/routers",
88291	//   "request": {
88292	//     "$ref": "Router"
88293	//   },
88294	//   "response": {
88295	//     "$ref": "Operation"
88296	//   },
88297	//   "scopes": [
88298	//     "https://www.googleapis.com/auth/cloud-platform",
88299	//     "https://www.googleapis.com/auth/compute"
88300	//   ]
88301	// }
88302
88303}
88304
88305// method id "compute.routers.list":
88306
88307type RoutersListCall struct {
88308	s            *Service
88309	project      string
88310	region       string
88311	urlParams_   gensupport.URLParams
88312	ifNoneMatch_ string
88313	ctx_         context.Context
88314	header_      http.Header
88315}
88316
88317// List: Retrieves a list of Router resources available to the specified
88318// project.
88319func (r *RoutersService) List(project string, region string) *RoutersListCall {
88320	c := &RoutersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88321	c.project = project
88322	c.region = region
88323	return c
88324}
88325
88326// Filter sets the optional parameter "filter": A filter expression that
88327// filters resources listed in the response. The expression must specify
88328// the field name, a comparison operator, and the value that you want to
88329// use for filtering. The value must be a string, a number, or a
88330// boolean. The comparison operator must be either =, !=, >, or <.
88331//
88332// For example, if you are filtering Compute Engine instances, you can
88333// exclude instances named example-instance by specifying name !=
88334// example-instance.
88335//
88336// You can also filter nested fields. For example, you could specify
88337// scheduling.automaticRestart = false to include instances only if they
88338// are not scheduled for automatic restarts. You can use filtering on
88339// nested fields to filter based on resource labels.
88340//
88341// To filter on multiple expressions, provide each separate expression
88342// within parentheses. For example, (scheduling.automaticRestart = true)
88343// (cpuPlatform = "Intel Skylake"). By default, each expression is an
88344// AND expression. However, you can include AND and OR expressions
88345// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
88346// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
88347// true).
88348func (c *RoutersListCall) Filter(filter string) *RoutersListCall {
88349	c.urlParams_.Set("filter", filter)
88350	return c
88351}
88352
88353// MaxResults sets the optional parameter "maxResults": The maximum
88354// number of results per page that should be returned. If the number of
88355// available results is larger than maxResults, Compute Engine returns a
88356// nextPageToken that can be used to get the next page of results in
88357// subsequent list requests. Acceptable values are 0 to 500, inclusive.
88358// (Default: 500)
88359func (c *RoutersListCall) MaxResults(maxResults int64) *RoutersListCall {
88360	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
88361	return c
88362}
88363
88364// OrderBy sets the optional parameter "orderBy": Sorts list results by
88365// a certain order. By default, results are returned in alphanumerical
88366// order based on the resource name.
88367//
88368// You can also sort results in descending order based on the creation
88369// timestamp using orderBy="creationTimestamp desc". This sorts results
88370// based on the creationTimestamp field in reverse chronological order
88371// (newest result first). Use this to sort resources like operations so
88372// that the newest operation is returned first.
88373//
88374// Currently, only sorting by name or creationTimestamp desc is
88375// supported.
88376func (c *RoutersListCall) OrderBy(orderBy string) *RoutersListCall {
88377	c.urlParams_.Set("orderBy", orderBy)
88378	return c
88379}
88380
88381// PageToken sets the optional parameter "pageToken": Specifies a page
88382// token to use. Set pageToken to the nextPageToken returned by a
88383// previous list request to get the next page of results.
88384func (c *RoutersListCall) PageToken(pageToken string) *RoutersListCall {
88385	c.urlParams_.Set("pageToken", pageToken)
88386	return c
88387}
88388
88389// Fields allows partial responses to be retrieved. See
88390// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88391// for more information.
88392func (c *RoutersListCall) Fields(s ...googleapi.Field) *RoutersListCall {
88393	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88394	return c
88395}
88396
88397// IfNoneMatch sets the optional parameter which makes the operation
88398// fail if the object's ETag matches the given value. This is useful for
88399// getting updates only after the object has changed since the last
88400// request. Use googleapi.IsNotModified to check whether the response
88401// error from Do is the result of In-None-Match.
88402func (c *RoutersListCall) IfNoneMatch(entityTag string) *RoutersListCall {
88403	c.ifNoneMatch_ = entityTag
88404	return c
88405}
88406
88407// Context sets the context to be used in this call's Do method. Any
88408// pending HTTP request will be aborted if the provided context is
88409// canceled.
88410func (c *RoutersListCall) Context(ctx context.Context) *RoutersListCall {
88411	c.ctx_ = ctx
88412	return c
88413}
88414
88415// Header returns an http.Header that can be modified by the caller to
88416// add HTTP headers to the request.
88417func (c *RoutersListCall) Header() http.Header {
88418	if c.header_ == nil {
88419		c.header_ = make(http.Header)
88420	}
88421	return c.header_
88422}
88423
88424func (c *RoutersListCall) doRequest(alt string) (*http.Response, error) {
88425	reqHeaders := make(http.Header)
88426	for k, v := range c.header_ {
88427		reqHeaders[k] = v
88428	}
88429	reqHeaders.Set("User-Agent", c.s.userAgent())
88430	if c.ifNoneMatch_ != "" {
88431		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88432	}
88433	var body io.Reader = nil
88434	c.urlParams_.Set("alt", alt)
88435	c.urlParams_.Set("prettyPrint", "false")
88436	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers")
88437	urls += "?" + c.urlParams_.Encode()
88438	req, err := http.NewRequest("GET", urls, body)
88439	if err != nil {
88440		return nil, err
88441	}
88442	req.Header = reqHeaders
88443	googleapi.Expand(req.URL, map[string]string{
88444		"project": c.project,
88445		"region":  c.region,
88446	})
88447	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88448}
88449
88450// Do executes the "compute.routers.list" call.
88451// Exactly one of *RouterList or error will be non-nil. Any non-2xx
88452// status code is an error. Response headers are in either
88453// *RouterList.ServerResponse.Header or (if a response was returned at
88454// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88455// to check whether the returned error was because
88456// http.StatusNotModified was returned.
88457func (c *RoutersListCall) Do(opts ...googleapi.CallOption) (*RouterList, error) {
88458	gensupport.SetOptions(c.urlParams_, opts...)
88459	res, err := c.doRequest("json")
88460	if res != nil && res.StatusCode == http.StatusNotModified {
88461		if res.Body != nil {
88462			res.Body.Close()
88463		}
88464		return nil, &googleapi.Error{
88465			Code:   res.StatusCode,
88466			Header: res.Header,
88467		}
88468	}
88469	if err != nil {
88470		return nil, err
88471	}
88472	defer googleapi.CloseBody(res)
88473	if err := googleapi.CheckResponse(res); err != nil {
88474		return nil, err
88475	}
88476	ret := &RouterList{
88477		ServerResponse: googleapi.ServerResponse{
88478			Header:         res.Header,
88479			HTTPStatusCode: res.StatusCode,
88480		},
88481	}
88482	target := &ret
88483	if err := gensupport.DecodeResponse(target, res); err != nil {
88484		return nil, err
88485	}
88486	return ret, nil
88487	// {
88488	//   "description": "Retrieves a list of Router resources available to the specified project.",
88489	//   "httpMethod": "GET",
88490	//   "id": "compute.routers.list",
88491	//   "parameterOrder": [
88492	//     "project",
88493	//     "region"
88494	//   ],
88495	//   "parameters": {
88496	//     "filter": {
88497	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
88498	//       "location": "query",
88499	//       "type": "string"
88500	//     },
88501	//     "maxResults": {
88502	//       "default": "500",
88503	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
88504	//       "format": "uint32",
88505	//       "location": "query",
88506	//       "minimum": "0",
88507	//       "type": "integer"
88508	//     },
88509	//     "orderBy": {
88510	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
88511	//       "location": "query",
88512	//       "type": "string"
88513	//     },
88514	//     "pageToken": {
88515	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
88516	//       "location": "query",
88517	//       "type": "string"
88518	//     },
88519	//     "project": {
88520	//       "description": "Project ID for this request.",
88521	//       "location": "path",
88522	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88523	//       "required": true,
88524	//       "type": "string"
88525	//     },
88526	//     "region": {
88527	//       "description": "Name of the region for this request.",
88528	//       "location": "path",
88529	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88530	//       "required": true,
88531	//       "type": "string"
88532	//     }
88533	//   },
88534	//   "path": "{project}/regions/{region}/routers",
88535	//   "response": {
88536	//     "$ref": "RouterList"
88537	//   },
88538	//   "scopes": [
88539	//     "https://www.googleapis.com/auth/cloud-platform",
88540	//     "https://www.googleapis.com/auth/compute",
88541	//     "https://www.googleapis.com/auth/compute.readonly"
88542	//   ]
88543	// }
88544
88545}
88546
88547// Pages invokes f for each page of results.
88548// A non-nil error returned from f will halt the iteration.
88549// The provided context supersedes any context provided to the Context method.
88550func (c *RoutersListCall) Pages(ctx context.Context, f func(*RouterList) error) error {
88551	c.ctx_ = ctx
88552	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
88553	for {
88554		x, err := c.Do()
88555		if err != nil {
88556			return err
88557		}
88558		if err := f(x); err != nil {
88559			return err
88560		}
88561		if x.NextPageToken == "" {
88562			return nil
88563		}
88564		c.PageToken(x.NextPageToken)
88565	}
88566}
88567
88568// method id "compute.routers.patch":
88569
88570type RoutersPatchCall struct {
88571	s          *Service
88572	project    string
88573	region     string
88574	router     string
88575	router2    *Router
88576	urlParams_ gensupport.URLParams
88577	ctx_       context.Context
88578	header_    http.Header
88579}
88580
88581// Patch: Patches the specified Router resource with the data included
88582// in the request. This method supports PATCH semantics and uses JSON
88583// merge patch format and processing rules.
88584func (r *RoutersService) Patch(project string, region string, router string, router2 *Router) *RoutersPatchCall {
88585	c := &RoutersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88586	c.project = project
88587	c.region = region
88588	c.router = router
88589	c.router2 = router2
88590	return c
88591}
88592
88593// RequestId sets the optional parameter "requestId": An optional
88594// request ID to identify requests. Specify a unique request ID so that
88595// if you must retry your request, the server will know to ignore the
88596// request if it has already been completed.
88597//
88598// For example, consider a situation where you make an initial request
88599// and the request times out. If you make the request again with the
88600// same request ID, the server can check if original operation with the
88601// same request ID was received, and if so, will ignore the second
88602// request. This prevents clients from accidentally creating duplicate
88603// commitments.
88604//
88605// The request ID must be a valid UUID with the exception that zero UUID
88606// is not supported (00000000-0000-0000-0000-000000000000).
88607func (c *RoutersPatchCall) RequestId(requestId string) *RoutersPatchCall {
88608	c.urlParams_.Set("requestId", requestId)
88609	return c
88610}
88611
88612// Fields allows partial responses to be retrieved. See
88613// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88614// for more information.
88615func (c *RoutersPatchCall) Fields(s ...googleapi.Field) *RoutersPatchCall {
88616	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88617	return c
88618}
88619
88620// Context sets the context to be used in this call's Do method. Any
88621// pending HTTP request will be aborted if the provided context is
88622// canceled.
88623func (c *RoutersPatchCall) Context(ctx context.Context) *RoutersPatchCall {
88624	c.ctx_ = ctx
88625	return c
88626}
88627
88628// Header returns an http.Header that can be modified by the caller to
88629// add HTTP headers to the request.
88630func (c *RoutersPatchCall) Header() http.Header {
88631	if c.header_ == nil {
88632		c.header_ = make(http.Header)
88633	}
88634	return c.header_
88635}
88636
88637func (c *RoutersPatchCall) doRequest(alt string) (*http.Response, error) {
88638	reqHeaders := make(http.Header)
88639	for k, v := range c.header_ {
88640		reqHeaders[k] = v
88641	}
88642	reqHeaders.Set("User-Agent", c.s.userAgent())
88643	var body io.Reader = nil
88644	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
88645	if err != nil {
88646		return nil, err
88647	}
88648	reqHeaders.Set("Content-Type", "application/json")
88649	c.urlParams_.Set("alt", alt)
88650	c.urlParams_.Set("prettyPrint", "false")
88651	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
88652	urls += "?" + c.urlParams_.Encode()
88653	req, err := http.NewRequest("PATCH", urls, body)
88654	if err != nil {
88655		return nil, err
88656	}
88657	req.Header = reqHeaders
88658	googleapi.Expand(req.URL, map[string]string{
88659		"project": c.project,
88660		"region":  c.region,
88661		"router":  c.router,
88662	})
88663	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88664}
88665
88666// Do executes the "compute.routers.patch" call.
88667// Exactly one of *Operation or error will be non-nil. Any non-2xx
88668// status code is an error. Response headers are in either
88669// *Operation.ServerResponse.Header or (if a response was returned at
88670// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88671// to check whether the returned error was because
88672// http.StatusNotModified was returned.
88673func (c *RoutersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88674	gensupport.SetOptions(c.urlParams_, opts...)
88675	res, err := c.doRequest("json")
88676	if res != nil && res.StatusCode == http.StatusNotModified {
88677		if res.Body != nil {
88678			res.Body.Close()
88679		}
88680		return nil, &googleapi.Error{
88681			Code:   res.StatusCode,
88682			Header: res.Header,
88683		}
88684	}
88685	if err != nil {
88686		return nil, err
88687	}
88688	defer googleapi.CloseBody(res)
88689	if err := googleapi.CheckResponse(res); err != nil {
88690		return nil, err
88691	}
88692	ret := &Operation{
88693		ServerResponse: googleapi.ServerResponse{
88694			Header:         res.Header,
88695			HTTPStatusCode: res.StatusCode,
88696		},
88697	}
88698	target := &ret
88699	if err := gensupport.DecodeResponse(target, res); err != nil {
88700		return nil, err
88701	}
88702	return ret, nil
88703	// {
88704	//   "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.",
88705	//   "httpMethod": "PATCH",
88706	//   "id": "compute.routers.patch",
88707	//   "parameterOrder": [
88708	//     "project",
88709	//     "region",
88710	//     "router"
88711	//   ],
88712	//   "parameters": {
88713	//     "project": {
88714	//       "description": "Project ID for this request.",
88715	//       "location": "path",
88716	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88717	//       "required": true,
88718	//       "type": "string"
88719	//     },
88720	//     "region": {
88721	//       "description": "Name of the region for this request.",
88722	//       "location": "path",
88723	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88724	//       "required": true,
88725	//       "type": "string"
88726	//     },
88727	//     "requestId": {
88728	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88729	//       "location": "query",
88730	//       "type": "string"
88731	//     },
88732	//     "router": {
88733	//       "description": "Name of the Router resource to patch.",
88734	//       "location": "path",
88735	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88736	//       "required": true,
88737	//       "type": "string"
88738	//     }
88739	//   },
88740	//   "path": "{project}/regions/{region}/routers/{router}",
88741	//   "request": {
88742	//     "$ref": "Router"
88743	//   },
88744	//   "response": {
88745	//     "$ref": "Operation"
88746	//   },
88747	//   "scopes": [
88748	//     "https://www.googleapis.com/auth/cloud-platform",
88749	//     "https://www.googleapis.com/auth/compute"
88750	//   ]
88751	// }
88752
88753}
88754
88755// method id "compute.routers.preview":
88756
88757type RoutersPreviewCall struct {
88758	s          *Service
88759	project    string
88760	region     string
88761	router     string
88762	router2    *Router
88763	urlParams_ gensupport.URLParams
88764	ctx_       context.Context
88765	header_    http.Header
88766}
88767
88768// Preview: Preview fields auto-generated during router create and
88769// update operations. Calling this method does NOT create or update the
88770// router.
88771func (r *RoutersService) Preview(project string, region string, router string, router2 *Router) *RoutersPreviewCall {
88772	c := &RoutersPreviewCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88773	c.project = project
88774	c.region = region
88775	c.router = router
88776	c.router2 = router2
88777	return c
88778}
88779
88780// Fields allows partial responses to be retrieved. See
88781// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88782// for more information.
88783func (c *RoutersPreviewCall) Fields(s ...googleapi.Field) *RoutersPreviewCall {
88784	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88785	return c
88786}
88787
88788// Context sets the context to be used in this call's Do method. Any
88789// pending HTTP request will be aborted if the provided context is
88790// canceled.
88791func (c *RoutersPreviewCall) Context(ctx context.Context) *RoutersPreviewCall {
88792	c.ctx_ = ctx
88793	return c
88794}
88795
88796// Header returns an http.Header that can be modified by the caller to
88797// add HTTP headers to the request.
88798func (c *RoutersPreviewCall) Header() http.Header {
88799	if c.header_ == nil {
88800		c.header_ = make(http.Header)
88801	}
88802	return c.header_
88803}
88804
88805func (c *RoutersPreviewCall) doRequest(alt string) (*http.Response, error) {
88806	reqHeaders := make(http.Header)
88807	for k, v := range c.header_ {
88808		reqHeaders[k] = v
88809	}
88810	reqHeaders.Set("User-Agent", c.s.userAgent())
88811	var body io.Reader = nil
88812	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
88813	if err != nil {
88814		return nil, err
88815	}
88816	reqHeaders.Set("Content-Type", "application/json")
88817	c.urlParams_.Set("alt", alt)
88818	c.urlParams_.Set("prettyPrint", "false")
88819	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/preview")
88820	urls += "?" + c.urlParams_.Encode()
88821	req, err := http.NewRequest("POST", urls, body)
88822	if err != nil {
88823		return nil, err
88824	}
88825	req.Header = reqHeaders
88826	googleapi.Expand(req.URL, map[string]string{
88827		"project": c.project,
88828		"region":  c.region,
88829		"router":  c.router,
88830	})
88831	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88832}
88833
88834// Do executes the "compute.routers.preview" call.
88835// Exactly one of *RoutersPreviewResponse or error will be non-nil. Any
88836// non-2xx status code is an error. Response headers are in either
88837// *RoutersPreviewResponse.ServerResponse.Header or (if a response was
88838// returned at all) in error.(*googleapi.Error).Header. Use
88839// googleapi.IsNotModified to check whether the returned error was
88840// because http.StatusNotModified was returned.
88841func (c *RoutersPreviewCall) Do(opts ...googleapi.CallOption) (*RoutersPreviewResponse, error) {
88842	gensupport.SetOptions(c.urlParams_, opts...)
88843	res, err := c.doRequest("json")
88844	if res != nil && res.StatusCode == http.StatusNotModified {
88845		if res.Body != nil {
88846			res.Body.Close()
88847		}
88848		return nil, &googleapi.Error{
88849			Code:   res.StatusCode,
88850			Header: res.Header,
88851		}
88852	}
88853	if err != nil {
88854		return nil, err
88855	}
88856	defer googleapi.CloseBody(res)
88857	if err := googleapi.CheckResponse(res); err != nil {
88858		return nil, err
88859	}
88860	ret := &RoutersPreviewResponse{
88861		ServerResponse: googleapi.ServerResponse{
88862			Header:         res.Header,
88863			HTTPStatusCode: res.StatusCode,
88864		},
88865	}
88866	target := &ret
88867	if err := gensupport.DecodeResponse(target, res); err != nil {
88868		return nil, err
88869	}
88870	return ret, nil
88871	// {
88872	//   "description": "Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router.",
88873	//   "httpMethod": "POST",
88874	//   "id": "compute.routers.preview",
88875	//   "parameterOrder": [
88876	//     "project",
88877	//     "region",
88878	//     "router"
88879	//   ],
88880	//   "parameters": {
88881	//     "project": {
88882	//       "description": "Project ID for this request.",
88883	//       "location": "path",
88884	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88885	//       "required": true,
88886	//       "type": "string"
88887	//     },
88888	//     "region": {
88889	//       "description": "Name of the region for this request.",
88890	//       "location": "path",
88891	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88892	//       "required": true,
88893	//       "type": "string"
88894	//     },
88895	//     "router": {
88896	//       "description": "Name of the Router resource to query.",
88897	//       "location": "path",
88898	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88899	//       "required": true,
88900	//       "type": "string"
88901	//     }
88902	//   },
88903	//   "path": "{project}/regions/{region}/routers/{router}/preview",
88904	//   "request": {
88905	//     "$ref": "Router"
88906	//   },
88907	//   "response": {
88908	//     "$ref": "RoutersPreviewResponse"
88909	//   },
88910	//   "scopes": [
88911	//     "https://www.googleapis.com/auth/cloud-platform",
88912	//     "https://www.googleapis.com/auth/compute",
88913	//     "https://www.googleapis.com/auth/compute.readonly"
88914	//   ]
88915	// }
88916
88917}
88918
88919// method id "compute.routers.update":
88920
88921type RoutersUpdateCall struct {
88922	s          *Service
88923	project    string
88924	region     string
88925	router     string
88926	router2    *Router
88927	urlParams_ gensupport.URLParams
88928	ctx_       context.Context
88929	header_    http.Header
88930}
88931
88932// Update: Updates the specified Router resource with the data included
88933// in the request.
88934func (r *RoutersService) Update(project string, region string, router string, router2 *Router) *RoutersUpdateCall {
88935	c := &RoutersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88936	c.project = project
88937	c.region = region
88938	c.router = router
88939	c.router2 = router2
88940	return c
88941}
88942
88943// RequestId sets the optional parameter "requestId": An optional
88944// request ID to identify requests. Specify a unique request ID so that
88945// if you must retry your request, the server will know to ignore the
88946// request if it has already been completed.
88947//
88948// For example, consider a situation where you make an initial request
88949// and the request times out. If you make the request again with the
88950// same request ID, the server can check if original operation with the
88951// same request ID was received, and if so, will ignore the second
88952// request. This prevents clients from accidentally creating duplicate
88953// commitments.
88954//
88955// The request ID must be a valid UUID with the exception that zero UUID
88956// is not supported (00000000-0000-0000-0000-000000000000).
88957func (c *RoutersUpdateCall) RequestId(requestId string) *RoutersUpdateCall {
88958	c.urlParams_.Set("requestId", requestId)
88959	return c
88960}
88961
88962// Fields allows partial responses to be retrieved. See
88963// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88964// for more information.
88965func (c *RoutersUpdateCall) Fields(s ...googleapi.Field) *RoutersUpdateCall {
88966	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88967	return c
88968}
88969
88970// Context sets the context to be used in this call's Do method. Any
88971// pending HTTP request will be aborted if the provided context is
88972// canceled.
88973func (c *RoutersUpdateCall) Context(ctx context.Context) *RoutersUpdateCall {
88974	c.ctx_ = ctx
88975	return c
88976}
88977
88978// Header returns an http.Header that can be modified by the caller to
88979// add HTTP headers to the request.
88980func (c *RoutersUpdateCall) Header() http.Header {
88981	if c.header_ == nil {
88982		c.header_ = make(http.Header)
88983	}
88984	return c.header_
88985}
88986
88987func (c *RoutersUpdateCall) doRequest(alt string) (*http.Response, error) {
88988	reqHeaders := make(http.Header)
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.router2)
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}/regions/{region}/routers/{router}")
89002	urls += "?" + c.urlParams_.Encode()
89003	req, err := http.NewRequest("PUT", 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		"region":  c.region,
89011		"router":  c.router,
89012	})
89013	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89014}
89015
89016// Do executes the "compute.routers.update" 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 *RoutersUpdateCall) 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": "Updates the specified Router resource with the data included in the request.",
89055	//   "httpMethod": "PUT",
89056	//   "id": "compute.routers.update",
89057	//   "parameterOrder": [
89058	//     "project",
89059	//     "region",
89060	//     "router"
89061	//   ],
89062	//   "parameters": {
89063	//     "project": {
89064	//       "description": "Project ID for this request.",
89065	//       "location": "path",
89066	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89067	//       "required": true,
89068	//       "type": "string"
89069	//     },
89070	//     "region": {
89071	//       "description": "Name of the region for this request.",
89072	//       "location": "path",
89073	//       "pattern": "[a-z](?:[-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	//     "router": {
89083	//       "description": "Name of the Router resource to update.",
89084	//       "location": "path",
89085	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89086	//       "required": true,
89087	//       "type": "string"
89088	//     }
89089	//   },
89090	//   "path": "{project}/regions/{region}/routers/{router}",
89091	//   "request": {
89092	//     "$ref": "Router"
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.routes.delete":
89106
89107type RoutesDeleteCall struct {
89108	s          *Service
89109	project    string
89110	route      string
89111	urlParams_ gensupport.URLParams
89112	ctx_       context.Context
89113	header_    http.Header
89114}
89115
89116// Delete: Deletes the specified Route resource.
89117// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/delete
89118func (r *RoutesService) Delete(project string, route string) *RoutesDeleteCall {
89119	c := &RoutesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89120	c.project = project
89121	c.route = route
89122	return c
89123}
89124
89125// RequestId sets the optional parameter "requestId": An optional
89126// request ID to identify requests. Specify a unique request ID so that
89127// if you must retry your request, the server will know to ignore the
89128// request if it has already been completed.
89129//
89130// For example, consider a situation where you make an initial request
89131// and the request times out. If you make the request again with the
89132// same request ID, the server can check if original operation with the
89133// same request ID was received, and if so, will ignore the second
89134// request. This prevents clients from accidentally creating duplicate
89135// commitments.
89136//
89137// The request ID must be a valid UUID with the exception that zero UUID
89138// is not supported (00000000-0000-0000-0000-000000000000).
89139func (c *RoutesDeleteCall) RequestId(requestId string) *RoutesDeleteCall {
89140	c.urlParams_.Set("requestId", requestId)
89141	return c
89142}
89143
89144// Fields allows partial responses to be retrieved. See
89145// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89146// for more information.
89147func (c *RoutesDeleteCall) Fields(s ...googleapi.Field) *RoutesDeleteCall {
89148	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89149	return c
89150}
89151
89152// Context sets the context to be used in this call's Do method. Any
89153// pending HTTP request will be aborted if the provided context is
89154// canceled.
89155func (c *RoutesDeleteCall) Context(ctx context.Context) *RoutesDeleteCall {
89156	c.ctx_ = ctx
89157	return c
89158}
89159
89160// Header returns an http.Header that can be modified by the caller to
89161// add HTTP headers to the request.
89162func (c *RoutesDeleteCall) Header() http.Header {
89163	if c.header_ == nil {
89164		c.header_ = make(http.Header)
89165	}
89166	return c.header_
89167}
89168
89169func (c *RoutesDeleteCall) doRequest(alt string) (*http.Response, error) {
89170	reqHeaders := make(http.Header)
89171	for k, v := range c.header_ {
89172		reqHeaders[k] = v
89173	}
89174	reqHeaders.Set("User-Agent", c.s.userAgent())
89175	var body io.Reader = nil
89176	c.urlParams_.Set("alt", alt)
89177	c.urlParams_.Set("prettyPrint", "false")
89178	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{route}")
89179	urls += "?" + c.urlParams_.Encode()
89180	req, err := http.NewRequest("DELETE", urls, body)
89181	if err != nil {
89182		return nil, err
89183	}
89184	req.Header = reqHeaders
89185	googleapi.Expand(req.URL, map[string]string{
89186		"project": c.project,
89187		"route":   c.route,
89188	})
89189	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89190}
89191
89192// Do executes the "compute.routes.delete" call.
89193// Exactly one of *Operation or error will be non-nil. Any non-2xx
89194// status code is an error. Response headers are in either
89195// *Operation.ServerResponse.Header or (if a response was returned at
89196// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89197// to check whether the returned error was because
89198// http.StatusNotModified was returned.
89199func (c *RoutesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89200	gensupport.SetOptions(c.urlParams_, opts...)
89201	res, err := c.doRequest("json")
89202	if res != nil && res.StatusCode == http.StatusNotModified {
89203		if res.Body != nil {
89204			res.Body.Close()
89205		}
89206		return nil, &googleapi.Error{
89207			Code:   res.StatusCode,
89208			Header: res.Header,
89209		}
89210	}
89211	if err != nil {
89212		return nil, err
89213	}
89214	defer googleapi.CloseBody(res)
89215	if err := googleapi.CheckResponse(res); err != nil {
89216		return nil, err
89217	}
89218	ret := &Operation{
89219		ServerResponse: googleapi.ServerResponse{
89220			Header:         res.Header,
89221			HTTPStatusCode: res.StatusCode,
89222		},
89223	}
89224	target := &ret
89225	if err := gensupport.DecodeResponse(target, res); err != nil {
89226		return nil, err
89227	}
89228	return ret, nil
89229	// {
89230	//   "description": "Deletes the specified Route resource.",
89231	//   "httpMethod": "DELETE",
89232	//   "id": "compute.routes.delete",
89233	//   "parameterOrder": [
89234	//     "project",
89235	//     "route"
89236	//   ],
89237	//   "parameters": {
89238	//     "project": {
89239	//       "description": "Project ID for this request.",
89240	//       "location": "path",
89241	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89242	//       "required": true,
89243	//       "type": "string"
89244	//     },
89245	//     "requestId": {
89246	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89247	//       "location": "query",
89248	//       "type": "string"
89249	//     },
89250	//     "route": {
89251	//       "description": "Name of the Route resource to delete.",
89252	//       "location": "path",
89253	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89254	//       "required": true,
89255	//       "type": "string"
89256	//     }
89257	//   },
89258	//   "path": "{project}/global/routes/{route}",
89259	//   "response": {
89260	//     "$ref": "Operation"
89261	//   },
89262	//   "scopes": [
89263	//     "https://www.googleapis.com/auth/cloud-platform",
89264	//     "https://www.googleapis.com/auth/compute"
89265	//   ]
89266	// }
89267
89268}
89269
89270// method id "compute.routes.get":
89271
89272type RoutesGetCall struct {
89273	s            *Service
89274	project      string
89275	route        string
89276	urlParams_   gensupport.URLParams
89277	ifNoneMatch_ string
89278	ctx_         context.Context
89279	header_      http.Header
89280}
89281
89282// Get: Returns the specified Route resource. Gets a list of available
89283// routes by making a list() request.
89284// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/get
89285func (r *RoutesService) Get(project string, route string) *RoutesGetCall {
89286	c := &RoutesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89287	c.project = project
89288	c.route = route
89289	return c
89290}
89291
89292// Fields allows partial responses to be retrieved. See
89293// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89294// for more information.
89295func (c *RoutesGetCall) Fields(s ...googleapi.Field) *RoutesGetCall {
89296	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89297	return c
89298}
89299
89300// IfNoneMatch sets the optional parameter which makes the operation
89301// fail if the object's ETag matches the given value. This is useful for
89302// getting updates only after the object has changed since the last
89303// request. Use googleapi.IsNotModified to check whether the response
89304// error from Do is the result of In-None-Match.
89305func (c *RoutesGetCall) IfNoneMatch(entityTag string) *RoutesGetCall {
89306	c.ifNoneMatch_ = entityTag
89307	return c
89308}
89309
89310// Context sets the context to be used in this call's Do method. Any
89311// pending HTTP request will be aborted if the provided context is
89312// canceled.
89313func (c *RoutesGetCall) Context(ctx context.Context) *RoutesGetCall {
89314	c.ctx_ = ctx
89315	return c
89316}
89317
89318// Header returns an http.Header that can be modified by the caller to
89319// add HTTP headers to the request.
89320func (c *RoutesGetCall) Header() http.Header {
89321	if c.header_ == nil {
89322		c.header_ = make(http.Header)
89323	}
89324	return c.header_
89325}
89326
89327func (c *RoutesGetCall) doRequest(alt string) (*http.Response, error) {
89328	reqHeaders := make(http.Header)
89329	for k, v := range c.header_ {
89330		reqHeaders[k] = v
89331	}
89332	reqHeaders.Set("User-Agent", c.s.userAgent())
89333	if c.ifNoneMatch_ != "" {
89334		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
89335	}
89336	var body io.Reader = nil
89337	c.urlParams_.Set("alt", alt)
89338	c.urlParams_.Set("prettyPrint", "false")
89339	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{route}")
89340	urls += "?" + c.urlParams_.Encode()
89341	req, err := http.NewRequest("GET", urls, body)
89342	if err != nil {
89343		return nil, err
89344	}
89345	req.Header = reqHeaders
89346	googleapi.Expand(req.URL, map[string]string{
89347		"project": c.project,
89348		"route":   c.route,
89349	})
89350	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89351}
89352
89353// Do executes the "compute.routes.get" call.
89354// Exactly one of *Route or error will be non-nil. Any non-2xx status
89355// code is an error. Response headers are in either
89356// *Route.ServerResponse.Header or (if a response was returned at all)
89357// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
89358// check whether the returned error was because http.StatusNotModified
89359// was returned.
89360func (c *RoutesGetCall) Do(opts ...googleapi.CallOption) (*Route, error) {
89361	gensupport.SetOptions(c.urlParams_, opts...)
89362	res, err := c.doRequest("json")
89363	if res != nil && res.StatusCode == http.StatusNotModified {
89364		if res.Body != nil {
89365			res.Body.Close()
89366		}
89367		return nil, &googleapi.Error{
89368			Code:   res.StatusCode,
89369			Header: res.Header,
89370		}
89371	}
89372	if err != nil {
89373		return nil, err
89374	}
89375	defer googleapi.CloseBody(res)
89376	if err := googleapi.CheckResponse(res); err != nil {
89377		return nil, err
89378	}
89379	ret := &Route{
89380		ServerResponse: googleapi.ServerResponse{
89381			Header:         res.Header,
89382			HTTPStatusCode: res.StatusCode,
89383		},
89384	}
89385	target := &ret
89386	if err := gensupport.DecodeResponse(target, res); err != nil {
89387		return nil, err
89388	}
89389	return ret, nil
89390	// {
89391	//   "description": "Returns the specified Route resource. Gets a list of available routes by making a list() request.",
89392	//   "httpMethod": "GET",
89393	//   "id": "compute.routes.get",
89394	//   "parameterOrder": [
89395	//     "project",
89396	//     "route"
89397	//   ],
89398	//   "parameters": {
89399	//     "project": {
89400	//       "description": "Project ID for this request.",
89401	//       "location": "path",
89402	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89403	//       "required": true,
89404	//       "type": "string"
89405	//     },
89406	//     "route": {
89407	//       "description": "Name of the Route resource to return.",
89408	//       "location": "path",
89409	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89410	//       "required": true,
89411	//       "type": "string"
89412	//     }
89413	//   },
89414	//   "path": "{project}/global/routes/{route}",
89415	//   "response": {
89416	//     "$ref": "Route"
89417	//   },
89418	//   "scopes": [
89419	//     "https://www.googleapis.com/auth/cloud-platform",
89420	//     "https://www.googleapis.com/auth/compute",
89421	//     "https://www.googleapis.com/auth/compute.readonly"
89422	//   ]
89423	// }
89424
89425}
89426
89427// method id "compute.routes.insert":
89428
89429type RoutesInsertCall struct {
89430	s          *Service
89431	project    string
89432	route      *Route
89433	urlParams_ gensupport.URLParams
89434	ctx_       context.Context
89435	header_    http.Header
89436}
89437
89438// Insert: Creates a Route resource in the specified project using the
89439// data included in the request.
89440// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/insert
89441func (r *RoutesService) Insert(project string, route *Route) *RoutesInsertCall {
89442	c := &RoutesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89443	c.project = project
89444	c.route = route
89445	return c
89446}
89447
89448// RequestId sets the optional parameter "requestId": An optional
89449// request ID to identify requests. Specify a unique request ID so that
89450// if you must retry your request, the server will know to ignore the
89451// request if it has already been completed.
89452//
89453// For example, consider a situation where you make an initial request
89454// and the request times out. If you make the request again with the
89455// same request ID, the server can check if original operation with the
89456// same request ID was received, and if so, will ignore the second
89457// request. This prevents clients from accidentally creating duplicate
89458// commitments.
89459//
89460// The request ID must be a valid UUID with the exception that zero UUID
89461// is not supported (00000000-0000-0000-0000-000000000000).
89462func (c *RoutesInsertCall) RequestId(requestId string) *RoutesInsertCall {
89463	c.urlParams_.Set("requestId", requestId)
89464	return c
89465}
89466
89467// Fields allows partial responses to be retrieved. See
89468// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89469// for more information.
89470func (c *RoutesInsertCall) Fields(s ...googleapi.Field) *RoutesInsertCall {
89471	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89472	return c
89473}
89474
89475// Context sets the context to be used in this call's Do method. Any
89476// pending HTTP request will be aborted if the provided context is
89477// canceled.
89478func (c *RoutesInsertCall) Context(ctx context.Context) *RoutesInsertCall {
89479	c.ctx_ = ctx
89480	return c
89481}
89482
89483// Header returns an http.Header that can be modified by the caller to
89484// add HTTP headers to the request.
89485func (c *RoutesInsertCall) Header() http.Header {
89486	if c.header_ == nil {
89487		c.header_ = make(http.Header)
89488	}
89489	return c.header_
89490}
89491
89492func (c *RoutesInsertCall) doRequest(alt string) (*http.Response, error) {
89493	reqHeaders := make(http.Header)
89494	for k, v := range c.header_ {
89495		reqHeaders[k] = v
89496	}
89497	reqHeaders.Set("User-Agent", c.s.userAgent())
89498	var body io.Reader = nil
89499	body, err := googleapi.WithoutDataWrapper.JSONReader(c.route)
89500	if err != nil {
89501		return nil, err
89502	}
89503	reqHeaders.Set("Content-Type", "application/json")
89504	c.urlParams_.Set("alt", alt)
89505	c.urlParams_.Set("prettyPrint", "false")
89506	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes")
89507	urls += "?" + c.urlParams_.Encode()
89508	req, err := http.NewRequest("POST", urls, body)
89509	if err != nil {
89510		return nil, err
89511	}
89512	req.Header = reqHeaders
89513	googleapi.Expand(req.URL, map[string]string{
89514		"project": c.project,
89515	})
89516	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89517}
89518
89519// Do executes the "compute.routes.insert" call.
89520// Exactly one of *Operation or error will be non-nil. Any non-2xx
89521// status code is an error. Response headers are in either
89522// *Operation.ServerResponse.Header or (if a response was returned at
89523// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89524// to check whether the returned error was because
89525// http.StatusNotModified was returned.
89526func (c *RoutesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89527	gensupport.SetOptions(c.urlParams_, opts...)
89528	res, err := c.doRequest("json")
89529	if res != nil && res.StatusCode == http.StatusNotModified {
89530		if res.Body != nil {
89531			res.Body.Close()
89532		}
89533		return nil, &googleapi.Error{
89534			Code:   res.StatusCode,
89535			Header: res.Header,
89536		}
89537	}
89538	if err != nil {
89539		return nil, err
89540	}
89541	defer googleapi.CloseBody(res)
89542	if err := googleapi.CheckResponse(res); err != nil {
89543		return nil, err
89544	}
89545	ret := &Operation{
89546		ServerResponse: googleapi.ServerResponse{
89547			Header:         res.Header,
89548			HTTPStatusCode: res.StatusCode,
89549		},
89550	}
89551	target := &ret
89552	if err := gensupport.DecodeResponse(target, res); err != nil {
89553		return nil, err
89554	}
89555	return ret, nil
89556	// {
89557	//   "description": "Creates a Route resource in the specified project using the data included in the request.",
89558	//   "httpMethod": "POST",
89559	//   "id": "compute.routes.insert",
89560	//   "parameterOrder": [
89561	//     "project"
89562	//   ],
89563	//   "parameters": {
89564	//     "project": {
89565	//       "description": "Project ID for this request.",
89566	//       "location": "path",
89567	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89568	//       "required": true,
89569	//       "type": "string"
89570	//     },
89571	//     "requestId": {
89572	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89573	//       "location": "query",
89574	//       "type": "string"
89575	//     }
89576	//   },
89577	//   "path": "{project}/global/routes",
89578	//   "request": {
89579	//     "$ref": "Route"
89580	//   },
89581	//   "response": {
89582	//     "$ref": "Operation"
89583	//   },
89584	//   "scopes": [
89585	//     "https://www.googleapis.com/auth/cloud-platform",
89586	//     "https://www.googleapis.com/auth/compute"
89587	//   ]
89588	// }
89589
89590}
89591
89592// method id "compute.routes.list":
89593
89594type RoutesListCall struct {
89595	s            *Service
89596	project      string
89597	urlParams_   gensupport.URLParams
89598	ifNoneMatch_ string
89599	ctx_         context.Context
89600	header_      http.Header
89601}
89602
89603// List: Retrieves the list of Route resources available to the
89604// specified project.
89605// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/list
89606func (r *RoutesService) List(project string) *RoutesListCall {
89607	c := &RoutesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89608	c.project = project
89609	return c
89610}
89611
89612// Filter sets the optional parameter "filter": A filter expression that
89613// filters resources listed in the response. The expression must specify
89614// the field name, a comparison operator, and the value that you want to
89615// use for filtering. The value must be a string, a number, or a
89616// boolean. The comparison operator must be either =, !=, >, or <.
89617//
89618// For example, if you are filtering Compute Engine instances, you can
89619// exclude instances named example-instance by specifying name !=
89620// example-instance.
89621//
89622// You can also filter nested fields. For example, you could specify
89623// scheduling.automaticRestart = false to include instances only if they
89624// are not scheduled for automatic restarts. You can use filtering on
89625// nested fields to filter based on resource labels.
89626//
89627// To filter on multiple expressions, provide each separate expression
89628// within parentheses. For example, (scheduling.automaticRestart = true)
89629// (cpuPlatform = "Intel Skylake"). By default, each expression is an
89630// AND expression. However, you can include AND and OR expressions
89631// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
89632// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
89633// true).
89634func (c *RoutesListCall) Filter(filter string) *RoutesListCall {
89635	c.urlParams_.Set("filter", filter)
89636	return c
89637}
89638
89639// MaxResults sets the optional parameter "maxResults": The maximum
89640// number of results per page that should be returned. If the number of
89641// available results is larger than maxResults, Compute Engine returns a
89642// nextPageToken that can be used to get the next page of results in
89643// subsequent list requests. Acceptable values are 0 to 500, inclusive.
89644// (Default: 500)
89645func (c *RoutesListCall) MaxResults(maxResults int64) *RoutesListCall {
89646	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
89647	return c
89648}
89649
89650// OrderBy sets the optional parameter "orderBy": Sorts list results by
89651// a certain order. By default, results are returned in alphanumerical
89652// order based on the resource name.
89653//
89654// You can also sort results in descending order based on the creation
89655// timestamp using orderBy="creationTimestamp desc". This sorts results
89656// based on the creationTimestamp field in reverse chronological order
89657// (newest result first). Use this to sort resources like operations so
89658// that the newest operation is returned first.
89659//
89660// Currently, only sorting by name or creationTimestamp desc is
89661// supported.
89662func (c *RoutesListCall) OrderBy(orderBy string) *RoutesListCall {
89663	c.urlParams_.Set("orderBy", orderBy)
89664	return c
89665}
89666
89667// PageToken sets the optional parameter "pageToken": Specifies a page
89668// token to use. Set pageToken to the nextPageToken returned by a
89669// previous list request to get the next page of results.
89670func (c *RoutesListCall) PageToken(pageToken string) *RoutesListCall {
89671	c.urlParams_.Set("pageToken", pageToken)
89672	return c
89673}
89674
89675// Fields allows partial responses to be retrieved. See
89676// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89677// for more information.
89678func (c *RoutesListCall) Fields(s ...googleapi.Field) *RoutesListCall {
89679	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89680	return c
89681}
89682
89683// IfNoneMatch sets the optional parameter which makes the operation
89684// fail if the object's ETag matches the given value. This is useful for
89685// getting updates only after the object has changed since the last
89686// request. Use googleapi.IsNotModified to check whether the response
89687// error from Do is the result of In-None-Match.
89688func (c *RoutesListCall) IfNoneMatch(entityTag string) *RoutesListCall {
89689	c.ifNoneMatch_ = entityTag
89690	return c
89691}
89692
89693// Context sets the context to be used in this call's Do method. Any
89694// pending HTTP request will be aborted if the provided context is
89695// canceled.
89696func (c *RoutesListCall) Context(ctx context.Context) *RoutesListCall {
89697	c.ctx_ = ctx
89698	return c
89699}
89700
89701// Header returns an http.Header that can be modified by the caller to
89702// add HTTP headers to the request.
89703func (c *RoutesListCall) Header() http.Header {
89704	if c.header_ == nil {
89705		c.header_ = make(http.Header)
89706	}
89707	return c.header_
89708}
89709
89710func (c *RoutesListCall) doRequest(alt string) (*http.Response, error) {
89711	reqHeaders := make(http.Header)
89712	for k, v := range c.header_ {
89713		reqHeaders[k] = v
89714	}
89715	reqHeaders.Set("User-Agent", c.s.userAgent())
89716	if c.ifNoneMatch_ != "" {
89717		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
89718	}
89719	var body io.Reader = nil
89720	c.urlParams_.Set("alt", alt)
89721	c.urlParams_.Set("prettyPrint", "false")
89722	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes")
89723	urls += "?" + c.urlParams_.Encode()
89724	req, err := http.NewRequest("GET", urls, body)
89725	if err != nil {
89726		return nil, err
89727	}
89728	req.Header = reqHeaders
89729	googleapi.Expand(req.URL, map[string]string{
89730		"project": c.project,
89731	})
89732	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89733}
89734
89735// Do executes the "compute.routes.list" call.
89736// Exactly one of *RouteList or error will be non-nil. Any non-2xx
89737// status code is an error. Response headers are in either
89738// *RouteList.ServerResponse.Header or (if a response was returned at
89739// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89740// to check whether the returned error was because
89741// http.StatusNotModified was returned.
89742func (c *RoutesListCall) Do(opts ...googleapi.CallOption) (*RouteList, error) {
89743	gensupport.SetOptions(c.urlParams_, opts...)
89744	res, err := c.doRequest("json")
89745	if res != nil && res.StatusCode == http.StatusNotModified {
89746		if res.Body != nil {
89747			res.Body.Close()
89748		}
89749		return nil, &googleapi.Error{
89750			Code:   res.StatusCode,
89751			Header: res.Header,
89752		}
89753	}
89754	if err != nil {
89755		return nil, err
89756	}
89757	defer googleapi.CloseBody(res)
89758	if err := googleapi.CheckResponse(res); err != nil {
89759		return nil, err
89760	}
89761	ret := &RouteList{
89762		ServerResponse: googleapi.ServerResponse{
89763			Header:         res.Header,
89764			HTTPStatusCode: res.StatusCode,
89765		},
89766	}
89767	target := &ret
89768	if err := gensupport.DecodeResponse(target, res); err != nil {
89769		return nil, err
89770	}
89771	return ret, nil
89772	// {
89773	//   "description": "Retrieves the list of Route resources available to the specified project.",
89774	//   "httpMethod": "GET",
89775	//   "id": "compute.routes.list",
89776	//   "parameterOrder": [
89777	//     "project"
89778	//   ],
89779	//   "parameters": {
89780	//     "filter": {
89781	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
89782	//       "location": "query",
89783	//       "type": "string"
89784	//     },
89785	//     "maxResults": {
89786	//       "default": "500",
89787	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
89788	//       "format": "uint32",
89789	//       "location": "query",
89790	//       "minimum": "0",
89791	//       "type": "integer"
89792	//     },
89793	//     "orderBy": {
89794	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
89795	//       "location": "query",
89796	//       "type": "string"
89797	//     },
89798	//     "pageToken": {
89799	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
89800	//       "location": "query",
89801	//       "type": "string"
89802	//     },
89803	//     "project": {
89804	//       "description": "Project ID for this request.",
89805	//       "location": "path",
89806	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89807	//       "required": true,
89808	//       "type": "string"
89809	//     }
89810	//   },
89811	//   "path": "{project}/global/routes",
89812	//   "response": {
89813	//     "$ref": "RouteList"
89814	//   },
89815	//   "scopes": [
89816	//     "https://www.googleapis.com/auth/cloud-platform",
89817	//     "https://www.googleapis.com/auth/compute",
89818	//     "https://www.googleapis.com/auth/compute.readonly"
89819	//   ]
89820	// }
89821
89822}
89823
89824// Pages invokes f for each page of results.
89825// A non-nil error returned from f will halt the iteration.
89826// The provided context supersedes any context provided to the Context method.
89827func (c *RoutesListCall) Pages(ctx context.Context, f func(*RouteList) error) error {
89828	c.ctx_ = ctx
89829	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
89830	for {
89831		x, err := c.Do()
89832		if err != nil {
89833			return err
89834		}
89835		if err := f(x); err != nil {
89836			return err
89837		}
89838		if x.NextPageToken == "" {
89839			return nil
89840		}
89841		c.PageToken(x.NextPageToken)
89842	}
89843}
89844
89845// method id "compute.securityPolicies.addRule":
89846
89847type SecurityPoliciesAddRuleCall struct {
89848	s                  *Service
89849	project            string
89850	securityPolicy     string
89851	securitypolicyrule *SecurityPolicyRule
89852	urlParams_         gensupport.URLParams
89853	ctx_               context.Context
89854	header_            http.Header
89855}
89856
89857// AddRule: Inserts a rule into a security policy.
89858func (r *SecurityPoliciesService) AddRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesAddRuleCall {
89859	c := &SecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89860	c.project = project
89861	c.securityPolicy = securityPolicy
89862	c.securitypolicyrule = securitypolicyrule
89863	return c
89864}
89865
89866// Fields allows partial responses to be retrieved. See
89867// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89868// for more information.
89869func (c *SecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesAddRuleCall {
89870	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89871	return c
89872}
89873
89874// Context sets the context to be used in this call's Do method. Any
89875// pending HTTP request will be aborted if the provided context is
89876// canceled.
89877func (c *SecurityPoliciesAddRuleCall) Context(ctx context.Context) *SecurityPoliciesAddRuleCall {
89878	c.ctx_ = ctx
89879	return c
89880}
89881
89882// Header returns an http.Header that can be modified by the caller to
89883// add HTTP headers to the request.
89884func (c *SecurityPoliciesAddRuleCall) Header() http.Header {
89885	if c.header_ == nil {
89886		c.header_ = make(http.Header)
89887	}
89888	return c.header_
89889}
89890
89891func (c *SecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
89892	reqHeaders := make(http.Header)
89893	for k, v := range c.header_ {
89894		reqHeaders[k] = v
89895	}
89896	reqHeaders.Set("User-Agent", c.s.userAgent())
89897	var body io.Reader = nil
89898	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
89899	if err != nil {
89900		return nil, err
89901	}
89902	reqHeaders.Set("Content-Type", "application/json")
89903	c.urlParams_.Set("alt", alt)
89904	c.urlParams_.Set("prettyPrint", "false")
89905	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/addRule")
89906	urls += "?" + c.urlParams_.Encode()
89907	req, err := http.NewRequest("POST", urls, body)
89908	if err != nil {
89909		return nil, err
89910	}
89911	req.Header = reqHeaders
89912	googleapi.Expand(req.URL, map[string]string{
89913		"project":        c.project,
89914		"securityPolicy": c.securityPolicy,
89915	})
89916	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89917}
89918
89919// Do executes the "compute.securityPolicies.addRule" 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 *SecurityPoliciesAddRuleCall) 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": "Inserts a rule into a security policy.",
89958	//   "httpMethod": "POST",
89959	//   "id": "compute.securityPolicies.addRule",
89960	//   "parameterOrder": [
89961	//     "project",
89962	//     "securityPolicy"
89963	//   ],
89964	//   "parameters": {
89965	//     "project": {
89966	//       "description": "Project ID for this request.",
89967	//       "location": "path",
89968	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89969	//       "required": true,
89970	//       "type": "string"
89971	//     },
89972	//     "securityPolicy": {
89973	//       "description": "Name of the security policy to update.",
89974	//       "location": "path",
89975	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89976	//       "required": true,
89977	//       "type": "string"
89978	//     }
89979	//   },
89980	//   "path": "{project}/global/securityPolicies/{securityPolicy}/addRule",
89981	//   "request": {
89982	//     "$ref": "SecurityPolicyRule"
89983	//   },
89984	//   "response": {
89985	//     "$ref": "Operation"
89986	//   },
89987	//   "scopes": [
89988	//     "https://www.googleapis.com/auth/cloud-platform",
89989	//     "https://www.googleapis.com/auth/compute"
89990	//   ]
89991	// }
89992
89993}
89994
89995// method id "compute.securityPolicies.delete":
89996
89997type SecurityPoliciesDeleteCall struct {
89998	s              *Service
89999	project        string
90000	securityPolicy string
90001	urlParams_     gensupport.URLParams
90002	ctx_           context.Context
90003	header_        http.Header
90004}
90005
90006// Delete: Deletes the specified policy.
90007func (r *SecurityPoliciesService) Delete(project string, securityPolicy string) *SecurityPoliciesDeleteCall {
90008	c := &SecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90009	c.project = project
90010	c.securityPolicy = securityPolicy
90011	return c
90012}
90013
90014// RequestId sets the optional parameter "requestId": An optional
90015// request ID to identify requests. Specify a unique request ID so that
90016// if you must retry your request, the server will know to ignore the
90017// request if it has already been completed.
90018//
90019// For example, consider a situation where you make an initial request
90020// and the request times out. If you make the request again with the
90021// same request ID, the server can check if original operation with the
90022// same request ID was received, and if so, will ignore the second
90023// request. This prevents clients from accidentally creating duplicate
90024// commitments.
90025//
90026// The request ID must be a valid UUID with the exception that zero UUID
90027// is not supported (00000000-0000-0000-0000-000000000000).
90028func (c *SecurityPoliciesDeleteCall) RequestId(requestId string) *SecurityPoliciesDeleteCall {
90029	c.urlParams_.Set("requestId", requestId)
90030	return c
90031}
90032
90033// Fields allows partial responses to be retrieved. See
90034// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90035// for more information.
90036func (c *SecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *SecurityPoliciesDeleteCall {
90037	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90038	return c
90039}
90040
90041// Context sets the context to be used in this call's Do method. Any
90042// pending HTTP request will be aborted if the provided context is
90043// canceled.
90044func (c *SecurityPoliciesDeleteCall) Context(ctx context.Context) *SecurityPoliciesDeleteCall {
90045	c.ctx_ = ctx
90046	return c
90047}
90048
90049// Header returns an http.Header that can be modified by the caller to
90050// add HTTP headers to the request.
90051func (c *SecurityPoliciesDeleteCall) Header() http.Header {
90052	if c.header_ == nil {
90053		c.header_ = make(http.Header)
90054	}
90055	return c.header_
90056}
90057
90058func (c *SecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
90059	reqHeaders := make(http.Header)
90060	for k, v := range c.header_ {
90061		reqHeaders[k] = v
90062	}
90063	reqHeaders.Set("User-Agent", c.s.userAgent())
90064	var body io.Reader = nil
90065	c.urlParams_.Set("alt", alt)
90066	c.urlParams_.Set("prettyPrint", "false")
90067	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
90068	urls += "?" + c.urlParams_.Encode()
90069	req, err := http.NewRequest("DELETE", urls, body)
90070	if err != nil {
90071		return nil, err
90072	}
90073	req.Header = reqHeaders
90074	googleapi.Expand(req.URL, map[string]string{
90075		"project":        c.project,
90076		"securityPolicy": c.securityPolicy,
90077	})
90078	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90079}
90080
90081// Do executes the "compute.securityPolicies.delete" call.
90082// Exactly one of *Operation or error will be non-nil. Any non-2xx
90083// status code is an error. Response headers are in either
90084// *Operation.ServerResponse.Header or (if a response was returned at
90085// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90086// to check whether the returned error was because
90087// http.StatusNotModified was returned.
90088func (c *SecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90089	gensupport.SetOptions(c.urlParams_, opts...)
90090	res, err := c.doRequest("json")
90091	if res != nil && res.StatusCode == http.StatusNotModified {
90092		if res.Body != nil {
90093			res.Body.Close()
90094		}
90095		return nil, &googleapi.Error{
90096			Code:   res.StatusCode,
90097			Header: res.Header,
90098		}
90099	}
90100	if err != nil {
90101		return nil, err
90102	}
90103	defer googleapi.CloseBody(res)
90104	if err := googleapi.CheckResponse(res); err != nil {
90105		return nil, err
90106	}
90107	ret := &Operation{
90108		ServerResponse: googleapi.ServerResponse{
90109			Header:         res.Header,
90110			HTTPStatusCode: res.StatusCode,
90111		},
90112	}
90113	target := &ret
90114	if err := gensupport.DecodeResponse(target, res); err != nil {
90115		return nil, err
90116	}
90117	return ret, nil
90118	// {
90119	//   "description": "Deletes the specified policy.",
90120	//   "httpMethod": "DELETE",
90121	//   "id": "compute.securityPolicies.delete",
90122	//   "parameterOrder": [
90123	//     "project",
90124	//     "securityPolicy"
90125	//   ],
90126	//   "parameters": {
90127	//     "project": {
90128	//       "description": "Project ID for this request.",
90129	//       "location": "path",
90130	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90131	//       "required": true,
90132	//       "type": "string"
90133	//     },
90134	//     "requestId": {
90135	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90136	//       "location": "query",
90137	//       "type": "string"
90138	//     },
90139	//     "securityPolicy": {
90140	//       "description": "Name of the security policy to delete.",
90141	//       "location": "path",
90142	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90143	//       "required": true,
90144	//       "type": "string"
90145	//     }
90146	//   },
90147	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
90148	//   "response": {
90149	//     "$ref": "Operation"
90150	//   },
90151	//   "scopes": [
90152	//     "https://www.googleapis.com/auth/cloud-platform",
90153	//     "https://www.googleapis.com/auth/compute"
90154	//   ]
90155	// }
90156
90157}
90158
90159// method id "compute.securityPolicies.get":
90160
90161type SecurityPoliciesGetCall struct {
90162	s              *Service
90163	project        string
90164	securityPolicy string
90165	urlParams_     gensupport.URLParams
90166	ifNoneMatch_   string
90167	ctx_           context.Context
90168	header_        http.Header
90169}
90170
90171// Get: List all of the ordered rules present in a single specified
90172// policy.
90173func (r *SecurityPoliciesService) Get(project string, securityPolicy string) *SecurityPoliciesGetCall {
90174	c := &SecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90175	c.project = project
90176	c.securityPolicy = securityPolicy
90177	return c
90178}
90179
90180// Fields allows partial responses to be retrieved. See
90181// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90182// for more information.
90183func (c *SecurityPoliciesGetCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetCall {
90184	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90185	return c
90186}
90187
90188// IfNoneMatch sets the optional parameter which makes the operation
90189// fail if the object's ETag matches the given value. This is useful for
90190// getting updates only after the object has changed since the last
90191// request. Use googleapi.IsNotModified to check whether the response
90192// error from Do is the result of In-None-Match.
90193func (c *SecurityPoliciesGetCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetCall {
90194	c.ifNoneMatch_ = entityTag
90195	return c
90196}
90197
90198// Context sets the context to be used in this call's Do method. Any
90199// pending HTTP request will be aborted if the provided context is
90200// canceled.
90201func (c *SecurityPoliciesGetCall) Context(ctx context.Context) *SecurityPoliciesGetCall {
90202	c.ctx_ = ctx
90203	return c
90204}
90205
90206// Header returns an http.Header that can be modified by the caller to
90207// add HTTP headers to the request.
90208func (c *SecurityPoliciesGetCall) Header() http.Header {
90209	if c.header_ == nil {
90210		c.header_ = make(http.Header)
90211	}
90212	return c.header_
90213}
90214
90215func (c *SecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
90216	reqHeaders := make(http.Header)
90217	for k, v := range c.header_ {
90218		reqHeaders[k] = v
90219	}
90220	reqHeaders.Set("User-Agent", c.s.userAgent())
90221	if c.ifNoneMatch_ != "" {
90222		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90223	}
90224	var body io.Reader = nil
90225	c.urlParams_.Set("alt", alt)
90226	c.urlParams_.Set("prettyPrint", "false")
90227	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
90228	urls += "?" + c.urlParams_.Encode()
90229	req, err := http.NewRequest("GET", urls, body)
90230	if err != nil {
90231		return nil, err
90232	}
90233	req.Header = reqHeaders
90234	googleapi.Expand(req.URL, map[string]string{
90235		"project":        c.project,
90236		"securityPolicy": c.securityPolicy,
90237	})
90238	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90239}
90240
90241// Do executes the "compute.securityPolicies.get" call.
90242// Exactly one of *SecurityPolicy or error will be non-nil. Any non-2xx
90243// status code is an error. Response headers are in either
90244// *SecurityPolicy.ServerResponse.Header or (if a response was returned
90245// at all) in error.(*googleapi.Error).Header. Use
90246// googleapi.IsNotModified to check whether the returned error was
90247// because http.StatusNotModified was returned.
90248func (c *SecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) {
90249	gensupport.SetOptions(c.urlParams_, opts...)
90250	res, err := c.doRequest("json")
90251	if res != nil && res.StatusCode == http.StatusNotModified {
90252		if res.Body != nil {
90253			res.Body.Close()
90254		}
90255		return nil, &googleapi.Error{
90256			Code:   res.StatusCode,
90257			Header: res.Header,
90258		}
90259	}
90260	if err != nil {
90261		return nil, err
90262	}
90263	defer googleapi.CloseBody(res)
90264	if err := googleapi.CheckResponse(res); err != nil {
90265		return nil, err
90266	}
90267	ret := &SecurityPolicy{
90268		ServerResponse: googleapi.ServerResponse{
90269			Header:         res.Header,
90270			HTTPStatusCode: res.StatusCode,
90271		},
90272	}
90273	target := &ret
90274	if err := gensupport.DecodeResponse(target, res); err != nil {
90275		return nil, err
90276	}
90277	return ret, nil
90278	// {
90279	//   "description": "List all of the ordered rules present in a single specified policy.",
90280	//   "httpMethod": "GET",
90281	//   "id": "compute.securityPolicies.get",
90282	//   "parameterOrder": [
90283	//     "project",
90284	//     "securityPolicy"
90285	//   ],
90286	//   "parameters": {
90287	//     "project": {
90288	//       "description": "Project ID for this request.",
90289	//       "location": "path",
90290	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90291	//       "required": true,
90292	//       "type": "string"
90293	//     },
90294	//     "securityPolicy": {
90295	//       "description": "Name of the security policy to get.",
90296	//       "location": "path",
90297	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90298	//       "required": true,
90299	//       "type": "string"
90300	//     }
90301	//   },
90302	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
90303	//   "response": {
90304	//     "$ref": "SecurityPolicy"
90305	//   },
90306	//   "scopes": [
90307	//     "https://www.googleapis.com/auth/cloud-platform",
90308	//     "https://www.googleapis.com/auth/compute",
90309	//     "https://www.googleapis.com/auth/compute.readonly"
90310	//   ]
90311	// }
90312
90313}
90314
90315// method id "compute.securityPolicies.getRule":
90316
90317type SecurityPoliciesGetRuleCall struct {
90318	s              *Service
90319	project        string
90320	securityPolicy string
90321	urlParams_     gensupport.URLParams
90322	ifNoneMatch_   string
90323	ctx_           context.Context
90324	header_        http.Header
90325}
90326
90327// GetRule: Gets a rule at the specified priority.
90328func (r *SecurityPoliciesService) GetRule(project string, securityPolicy string) *SecurityPoliciesGetRuleCall {
90329	c := &SecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90330	c.project = project
90331	c.securityPolicy = securityPolicy
90332	return c
90333}
90334
90335// Priority sets the optional parameter "priority": The priority of the
90336// rule to get from the security policy.
90337func (c *SecurityPoliciesGetRuleCall) Priority(priority int64) *SecurityPoliciesGetRuleCall {
90338	c.urlParams_.Set("priority", fmt.Sprint(priority))
90339	return c
90340}
90341
90342// Fields allows partial responses to be retrieved. See
90343// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90344// for more information.
90345func (c *SecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetRuleCall {
90346	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90347	return c
90348}
90349
90350// IfNoneMatch sets the optional parameter which makes the operation
90351// fail if the object's ETag matches the given value. This is useful for
90352// getting updates only after the object has changed since the last
90353// request. Use googleapi.IsNotModified to check whether the response
90354// error from Do is the result of In-None-Match.
90355func (c *SecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetRuleCall {
90356	c.ifNoneMatch_ = entityTag
90357	return c
90358}
90359
90360// Context sets the context to be used in this call's Do method. Any
90361// pending HTTP request will be aborted if the provided context is
90362// canceled.
90363func (c *SecurityPoliciesGetRuleCall) Context(ctx context.Context) *SecurityPoliciesGetRuleCall {
90364	c.ctx_ = ctx
90365	return c
90366}
90367
90368// Header returns an http.Header that can be modified by the caller to
90369// add HTTP headers to the request.
90370func (c *SecurityPoliciesGetRuleCall) Header() http.Header {
90371	if c.header_ == nil {
90372		c.header_ = make(http.Header)
90373	}
90374	return c.header_
90375}
90376
90377func (c *SecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
90378	reqHeaders := make(http.Header)
90379	for k, v := range c.header_ {
90380		reqHeaders[k] = v
90381	}
90382	reqHeaders.Set("User-Agent", c.s.userAgent())
90383	if c.ifNoneMatch_ != "" {
90384		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90385	}
90386	var body io.Reader = nil
90387	c.urlParams_.Set("alt", alt)
90388	c.urlParams_.Set("prettyPrint", "false")
90389	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/getRule")
90390	urls += "?" + c.urlParams_.Encode()
90391	req, err := http.NewRequest("GET", urls, body)
90392	if err != nil {
90393		return nil, err
90394	}
90395	req.Header = reqHeaders
90396	googleapi.Expand(req.URL, map[string]string{
90397		"project":        c.project,
90398		"securityPolicy": c.securityPolicy,
90399	})
90400	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90401}
90402
90403// Do executes the "compute.securityPolicies.getRule" call.
90404// Exactly one of *SecurityPolicyRule or error will be non-nil. Any
90405// non-2xx status code is an error. Response headers are in either
90406// *SecurityPolicyRule.ServerResponse.Header or (if a response was
90407// returned at all) in error.(*googleapi.Error).Header. Use
90408// googleapi.IsNotModified to check whether the returned error was
90409// because http.StatusNotModified was returned.
90410func (c *SecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) {
90411	gensupport.SetOptions(c.urlParams_, opts...)
90412	res, err := c.doRequest("json")
90413	if res != nil && res.StatusCode == http.StatusNotModified {
90414		if res.Body != nil {
90415			res.Body.Close()
90416		}
90417		return nil, &googleapi.Error{
90418			Code:   res.StatusCode,
90419			Header: res.Header,
90420		}
90421	}
90422	if err != nil {
90423		return nil, err
90424	}
90425	defer googleapi.CloseBody(res)
90426	if err := googleapi.CheckResponse(res); err != nil {
90427		return nil, err
90428	}
90429	ret := &SecurityPolicyRule{
90430		ServerResponse: googleapi.ServerResponse{
90431			Header:         res.Header,
90432			HTTPStatusCode: res.StatusCode,
90433		},
90434	}
90435	target := &ret
90436	if err := gensupport.DecodeResponse(target, res); err != nil {
90437		return nil, err
90438	}
90439	return ret, nil
90440	// {
90441	//   "description": "Gets a rule at the specified priority.",
90442	//   "httpMethod": "GET",
90443	//   "id": "compute.securityPolicies.getRule",
90444	//   "parameterOrder": [
90445	//     "project",
90446	//     "securityPolicy"
90447	//   ],
90448	//   "parameters": {
90449	//     "priority": {
90450	//       "description": "The priority of the rule to get from the security policy.",
90451	//       "format": "int32",
90452	//       "location": "query",
90453	//       "type": "integer"
90454	//     },
90455	//     "project": {
90456	//       "description": "Project ID for this request.",
90457	//       "location": "path",
90458	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90459	//       "required": true,
90460	//       "type": "string"
90461	//     },
90462	//     "securityPolicy": {
90463	//       "description": "Name of the security policy to which the queried rule belongs.",
90464	//       "location": "path",
90465	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90466	//       "required": true,
90467	//       "type": "string"
90468	//     }
90469	//   },
90470	//   "path": "{project}/global/securityPolicies/{securityPolicy}/getRule",
90471	//   "response": {
90472	//     "$ref": "SecurityPolicyRule"
90473	//   },
90474	//   "scopes": [
90475	//     "https://www.googleapis.com/auth/cloud-platform",
90476	//     "https://www.googleapis.com/auth/compute",
90477	//     "https://www.googleapis.com/auth/compute.readonly"
90478	//   ]
90479	// }
90480
90481}
90482
90483// method id "compute.securityPolicies.insert":
90484
90485type SecurityPoliciesInsertCall struct {
90486	s              *Service
90487	project        string
90488	securitypolicy *SecurityPolicy
90489	urlParams_     gensupport.URLParams
90490	ctx_           context.Context
90491	header_        http.Header
90492}
90493
90494// Insert: Creates a new policy in the specified project using the data
90495// included in the request.
90496func (r *SecurityPoliciesService) Insert(project string, securitypolicy *SecurityPolicy) *SecurityPoliciesInsertCall {
90497	c := &SecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90498	c.project = project
90499	c.securitypolicy = securitypolicy
90500	return c
90501}
90502
90503// RequestId sets the optional parameter "requestId": An optional
90504// request ID to identify requests. Specify a unique request ID so that
90505// if you must retry your request, the server will know to ignore the
90506// request if it has already been completed.
90507//
90508// For example, consider a situation where you make an initial request
90509// and the request times out. If you make the request again with the
90510// same request ID, the server can check if original operation with the
90511// same request ID was received, and if so, will ignore the second
90512// request. This prevents clients from accidentally creating duplicate
90513// commitments.
90514//
90515// The request ID must be a valid UUID with the exception that zero UUID
90516// is not supported (00000000-0000-0000-0000-000000000000).
90517func (c *SecurityPoliciesInsertCall) RequestId(requestId string) *SecurityPoliciesInsertCall {
90518	c.urlParams_.Set("requestId", requestId)
90519	return c
90520}
90521
90522// Fields allows partial responses to be retrieved. See
90523// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90524// for more information.
90525func (c *SecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *SecurityPoliciesInsertCall {
90526	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90527	return c
90528}
90529
90530// Context sets the context to be used in this call's Do method. Any
90531// pending HTTP request will be aborted if the provided context is
90532// canceled.
90533func (c *SecurityPoliciesInsertCall) Context(ctx context.Context) *SecurityPoliciesInsertCall {
90534	c.ctx_ = ctx
90535	return c
90536}
90537
90538// Header returns an http.Header that can be modified by the caller to
90539// add HTTP headers to the request.
90540func (c *SecurityPoliciesInsertCall) Header() http.Header {
90541	if c.header_ == nil {
90542		c.header_ = make(http.Header)
90543	}
90544	return c.header_
90545}
90546
90547func (c *SecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
90548	reqHeaders := make(http.Header)
90549	for k, v := range c.header_ {
90550		reqHeaders[k] = v
90551	}
90552	reqHeaders.Set("User-Agent", c.s.userAgent())
90553	var body io.Reader = nil
90554	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
90555	if err != nil {
90556		return nil, err
90557	}
90558	reqHeaders.Set("Content-Type", "application/json")
90559	c.urlParams_.Set("alt", alt)
90560	c.urlParams_.Set("prettyPrint", "false")
90561	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies")
90562	urls += "?" + c.urlParams_.Encode()
90563	req, err := http.NewRequest("POST", urls, body)
90564	if err != nil {
90565		return nil, err
90566	}
90567	req.Header = reqHeaders
90568	googleapi.Expand(req.URL, map[string]string{
90569		"project": c.project,
90570	})
90571	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90572}
90573
90574// Do executes the "compute.securityPolicies.insert" call.
90575// Exactly one of *Operation or error will be non-nil. Any non-2xx
90576// status code is an error. Response headers are in either
90577// *Operation.ServerResponse.Header or (if a response was returned at
90578// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90579// to check whether the returned error was because
90580// http.StatusNotModified was returned.
90581func (c *SecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90582	gensupport.SetOptions(c.urlParams_, opts...)
90583	res, err := c.doRequest("json")
90584	if res != nil && res.StatusCode == http.StatusNotModified {
90585		if res.Body != nil {
90586			res.Body.Close()
90587		}
90588		return nil, &googleapi.Error{
90589			Code:   res.StatusCode,
90590			Header: res.Header,
90591		}
90592	}
90593	if err != nil {
90594		return nil, err
90595	}
90596	defer googleapi.CloseBody(res)
90597	if err := googleapi.CheckResponse(res); err != nil {
90598		return nil, err
90599	}
90600	ret := &Operation{
90601		ServerResponse: googleapi.ServerResponse{
90602			Header:         res.Header,
90603			HTTPStatusCode: res.StatusCode,
90604		},
90605	}
90606	target := &ret
90607	if err := gensupport.DecodeResponse(target, res); err != nil {
90608		return nil, err
90609	}
90610	return ret, nil
90611	// {
90612	//   "description": "Creates a new policy in the specified project using the data included in the request.",
90613	//   "httpMethod": "POST",
90614	//   "id": "compute.securityPolicies.insert",
90615	//   "parameterOrder": [
90616	//     "project"
90617	//   ],
90618	//   "parameters": {
90619	//     "project": {
90620	//       "description": "Project ID for this request.",
90621	//       "location": "path",
90622	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90623	//       "required": true,
90624	//       "type": "string"
90625	//     },
90626	//     "requestId": {
90627	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90628	//       "location": "query",
90629	//       "type": "string"
90630	//     }
90631	//   },
90632	//   "path": "{project}/global/securityPolicies",
90633	//   "request": {
90634	//     "$ref": "SecurityPolicy"
90635	//   },
90636	//   "response": {
90637	//     "$ref": "Operation"
90638	//   },
90639	//   "scopes": [
90640	//     "https://www.googleapis.com/auth/cloud-platform",
90641	//     "https://www.googleapis.com/auth/compute"
90642	//   ]
90643	// }
90644
90645}
90646
90647// method id "compute.securityPolicies.list":
90648
90649type SecurityPoliciesListCall struct {
90650	s            *Service
90651	project      string
90652	urlParams_   gensupport.URLParams
90653	ifNoneMatch_ string
90654	ctx_         context.Context
90655	header_      http.Header
90656}
90657
90658// List: List all the policies that have been configured for the
90659// specified project.
90660func (r *SecurityPoliciesService) List(project string) *SecurityPoliciesListCall {
90661	c := &SecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90662	c.project = project
90663	return c
90664}
90665
90666// Filter sets the optional parameter "filter": A filter expression that
90667// filters resources listed in the response. The expression must specify
90668// the field name, a comparison operator, and the value that you want to
90669// use for filtering. The value must be a string, a number, or a
90670// boolean. The comparison operator must be either =, !=, >, or <.
90671//
90672// For example, if you are filtering Compute Engine instances, you can
90673// exclude instances named example-instance by specifying name !=
90674// example-instance.
90675//
90676// You can also filter nested fields. For example, you could specify
90677// scheduling.automaticRestart = false to include instances only if they
90678// are not scheduled for automatic restarts. You can use filtering on
90679// nested fields to filter based on resource labels.
90680//
90681// To filter on multiple expressions, provide each separate expression
90682// within parentheses. For example, (scheduling.automaticRestart = true)
90683// (cpuPlatform = "Intel Skylake"). By default, each expression is an
90684// AND expression. However, you can include AND and OR expressions
90685// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
90686// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
90687// true).
90688func (c *SecurityPoliciesListCall) Filter(filter string) *SecurityPoliciesListCall {
90689	c.urlParams_.Set("filter", filter)
90690	return c
90691}
90692
90693// MaxResults sets the optional parameter "maxResults": The maximum
90694// number of results per page that should be returned. If the number of
90695// available results is larger than maxResults, Compute Engine returns a
90696// nextPageToken that can be used to get the next page of results in
90697// subsequent list requests. Acceptable values are 0 to 500, inclusive.
90698// (Default: 500)
90699func (c *SecurityPoliciesListCall) MaxResults(maxResults int64) *SecurityPoliciesListCall {
90700	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
90701	return c
90702}
90703
90704// OrderBy sets the optional parameter "orderBy": Sorts list results by
90705// a certain order. By default, results are returned in alphanumerical
90706// order based on the resource name.
90707//
90708// You can also sort results in descending order based on the creation
90709// timestamp using orderBy="creationTimestamp desc". This sorts results
90710// based on the creationTimestamp field in reverse chronological order
90711// (newest result first). Use this to sort resources like operations so
90712// that the newest operation is returned first.
90713//
90714// Currently, only sorting by name or creationTimestamp desc is
90715// supported.
90716func (c *SecurityPoliciesListCall) OrderBy(orderBy string) *SecurityPoliciesListCall {
90717	c.urlParams_.Set("orderBy", orderBy)
90718	return c
90719}
90720
90721// PageToken sets the optional parameter "pageToken": Specifies a page
90722// token to use. Set pageToken to the nextPageToken returned by a
90723// previous list request to get the next page of results.
90724func (c *SecurityPoliciesListCall) PageToken(pageToken string) *SecurityPoliciesListCall {
90725	c.urlParams_.Set("pageToken", pageToken)
90726	return c
90727}
90728
90729// Fields allows partial responses to be retrieved. See
90730// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90731// for more information.
90732func (c *SecurityPoliciesListCall) Fields(s ...googleapi.Field) *SecurityPoliciesListCall {
90733	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90734	return c
90735}
90736
90737// IfNoneMatch sets the optional parameter which makes the operation
90738// fail if the object's ETag matches the given value. This is useful for
90739// getting updates only after the object has changed since the last
90740// request. Use googleapi.IsNotModified to check whether the response
90741// error from Do is the result of In-None-Match.
90742func (c *SecurityPoliciesListCall) IfNoneMatch(entityTag string) *SecurityPoliciesListCall {
90743	c.ifNoneMatch_ = entityTag
90744	return c
90745}
90746
90747// Context sets the context to be used in this call's Do method. Any
90748// pending HTTP request will be aborted if the provided context is
90749// canceled.
90750func (c *SecurityPoliciesListCall) Context(ctx context.Context) *SecurityPoliciesListCall {
90751	c.ctx_ = ctx
90752	return c
90753}
90754
90755// Header returns an http.Header that can be modified by the caller to
90756// add HTTP headers to the request.
90757func (c *SecurityPoliciesListCall) Header() http.Header {
90758	if c.header_ == nil {
90759		c.header_ = make(http.Header)
90760	}
90761	return c.header_
90762}
90763
90764func (c *SecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) {
90765	reqHeaders := make(http.Header)
90766	for k, v := range c.header_ {
90767		reqHeaders[k] = v
90768	}
90769	reqHeaders.Set("User-Agent", c.s.userAgent())
90770	if c.ifNoneMatch_ != "" {
90771		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90772	}
90773	var body io.Reader = nil
90774	c.urlParams_.Set("alt", alt)
90775	c.urlParams_.Set("prettyPrint", "false")
90776	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies")
90777	urls += "?" + c.urlParams_.Encode()
90778	req, err := http.NewRequest("GET", urls, body)
90779	if err != nil {
90780		return nil, err
90781	}
90782	req.Header = reqHeaders
90783	googleapi.Expand(req.URL, map[string]string{
90784		"project": c.project,
90785	})
90786	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90787}
90788
90789// Do executes the "compute.securityPolicies.list" call.
90790// Exactly one of *SecurityPolicyList or error will be non-nil. Any
90791// non-2xx status code is an error. Response headers are in either
90792// *SecurityPolicyList.ServerResponse.Header or (if a response was
90793// returned at all) in error.(*googleapi.Error).Header. Use
90794// googleapi.IsNotModified to check whether the returned error was
90795// because http.StatusNotModified was returned.
90796func (c *SecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) {
90797	gensupport.SetOptions(c.urlParams_, opts...)
90798	res, err := c.doRequest("json")
90799	if res != nil && res.StatusCode == http.StatusNotModified {
90800		if res.Body != nil {
90801			res.Body.Close()
90802		}
90803		return nil, &googleapi.Error{
90804			Code:   res.StatusCode,
90805			Header: res.Header,
90806		}
90807	}
90808	if err != nil {
90809		return nil, err
90810	}
90811	defer googleapi.CloseBody(res)
90812	if err := googleapi.CheckResponse(res); err != nil {
90813		return nil, err
90814	}
90815	ret := &SecurityPolicyList{
90816		ServerResponse: googleapi.ServerResponse{
90817			Header:         res.Header,
90818			HTTPStatusCode: res.StatusCode,
90819		},
90820	}
90821	target := &ret
90822	if err := gensupport.DecodeResponse(target, res); err != nil {
90823		return nil, err
90824	}
90825	return ret, nil
90826	// {
90827	//   "description": "List all the policies that have been configured for the specified project.",
90828	//   "httpMethod": "GET",
90829	//   "id": "compute.securityPolicies.list",
90830	//   "parameterOrder": [
90831	//     "project"
90832	//   ],
90833	//   "parameters": {
90834	//     "filter": {
90835	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
90836	//       "location": "query",
90837	//       "type": "string"
90838	//     },
90839	//     "maxResults": {
90840	//       "default": "500",
90841	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
90842	//       "format": "uint32",
90843	//       "location": "query",
90844	//       "minimum": "0",
90845	//       "type": "integer"
90846	//     },
90847	//     "orderBy": {
90848	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
90849	//       "location": "query",
90850	//       "type": "string"
90851	//     },
90852	//     "pageToken": {
90853	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
90854	//       "location": "query",
90855	//       "type": "string"
90856	//     },
90857	//     "project": {
90858	//       "description": "Project ID for this request.",
90859	//       "location": "path",
90860	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90861	//       "required": true,
90862	//       "type": "string"
90863	//     }
90864	//   },
90865	//   "path": "{project}/global/securityPolicies",
90866	//   "response": {
90867	//     "$ref": "SecurityPolicyList"
90868	//   },
90869	//   "scopes": [
90870	//     "https://www.googleapis.com/auth/cloud-platform",
90871	//     "https://www.googleapis.com/auth/compute",
90872	//     "https://www.googleapis.com/auth/compute.readonly"
90873	//   ]
90874	// }
90875
90876}
90877
90878// Pages invokes f for each page of results.
90879// A non-nil error returned from f will halt the iteration.
90880// The provided context supersedes any context provided to the Context method.
90881func (c *SecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error {
90882	c.ctx_ = ctx
90883	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
90884	for {
90885		x, err := c.Do()
90886		if err != nil {
90887			return err
90888		}
90889		if err := f(x); err != nil {
90890			return err
90891		}
90892		if x.NextPageToken == "" {
90893			return nil
90894		}
90895		c.PageToken(x.NextPageToken)
90896	}
90897}
90898
90899// method id "compute.securityPolicies.patch":
90900
90901type SecurityPoliciesPatchCall struct {
90902	s              *Service
90903	project        string
90904	securityPolicy string
90905	securitypolicy *SecurityPolicy
90906	urlParams_     gensupport.URLParams
90907	ctx_           context.Context
90908	header_        http.Header
90909}
90910
90911// Patch: Patches the specified policy with the data included in the
90912// request.
90913func (r *SecurityPoliciesService) Patch(project string, securityPolicy string, securitypolicy *SecurityPolicy) *SecurityPoliciesPatchCall {
90914	c := &SecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90915	c.project = project
90916	c.securityPolicy = securityPolicy
90917	c.securitypolicy = securitypolicy
90918	return c
90919}
90920
90921// RequestId sets the optional parameter "requestId": An optional
90922// request ID to identify requests. Specify a unique request ID so that
90923// if you must retry your request, the server will know to ignore the
90924// request if it has already been completed.
90925//
90926// For example, consider a situation where you make an initial request
90927// and the request times out. If you make the request again with the
90928// same request ID, the server can check if original operation with the
90929// same request ID was received, and if so, will ignore the second
90930// request. This prevents clients from accidentally creating duplicate
90931// commitments.
90932//
90933// The request ID must be a valid UUID with the exception that zero UUID
90934// is not supported (00000000-0000-0000-0000-000000000000).
90935func (c *SecurityPoliciesPatchCall) RequestId(requestId string) *SecurityPoliciesPatchCall {
90936	c.urlParams_.Set("requestId", requestId)
90937	return c
90938}
90939
90940// Fields allows partial responses to be retrieved. See
90941// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90942// for more information.
90943func (c *SecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchCall {
90944	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90945	return c
90946}
90947
90948// Context sets the context to be used in this call's Do method. Any
90949// pending HTTP request will be aborted if the provided context is
90950// canceled.
90951func (c *SecurityPoliciesPatchCall) Context(ctx context.Context) *SecurityPoliciesPatchCall {
90952	c.ctx_ = ctx
90953	return c
90954}
90955
90956// Header returns an http.Header that can be modified by the caller to
90957// add HTTP headers to the request.
90958func (c *SecurityPoliciesPatchCall) Header() http.Header {
90959	if c.header_ == nil {
90960		c.header_ = make(http.Header)
90961	}
90962	return c.header_
90963}
90964
90965func (c *SecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
90966	reqHeaders := make(http.Header)
90967	for k, v := range c.header_ {
90968		reqHeaders[k] = v
90969	}
90970	reqHeaders.Set("User-Agent", c.s.userAgent())
90971	var body io.Reader = nil
90972	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
90973	if err != nil {
90974		return nil, err
90975	}
90976	reqHeaders.Set("Content-Type", "application/json")
90977	c.urlParams_.Set("alt", alt)
90978	c.urlParams_.Set("prettyPrint", "false")
90979	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
90980	urls += "?" + c.urlParams_.Encode()
90981	req, err := http.NewRequest("PATCH", urls, body)
90982	if err != nil {
90983		return nil, err
90984	}
90985	req.Header = reqHeaders
90986	googleapi.Expand(req.URL, map[string]string{
90987		"project":        c.project,
90988		"securityPolicy": c.securityPolicy,
90989	})
90990	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90991}
90992
90993// Do executes the "compute.securityPolicies.patch" call.
90994// Exactly one of *Operation or error will be non-nil. Any non-2xx
90995// status code is an error. Response headers are in either
90996// *Operation.ServerResponse.Header or (if a response was returned at
90997// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90998// to check whether the returned error was because
90999// http.StatusNotModified was returned.
91000func (c *SecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91001	gensupport.SetOptions(c.urlParams_, opts...)
91002	res, err := c.doRequest("json")
91003	if res != nil && res.StatusCode == http.StatusNotModified {
91004		if res.Body != nil {
91005			res.Body.Close()
91006		}
91007		return nil, &googleapi.Error{
91008			Code:   res.StatusCode,
91009			Header: res.Header,
91010		}
91011	}
91012	if err != nil {
91013		return nil, err
91014	}
91015	defer googleapi.CloseBody(res)
91016	if err := googleapi.CheckResponse(res); err != nil {
91017		return nil, err
91018	}
91019	ret := &Operation{
91020		ServerResponse: googleapi.ServerResponse{
91021			Header:         res.Header,
91022			HTTPStatusCode: res.StatusCode,
91023		},
91024	}
91025	target := &ret
91026	if err := gensupport.DecodeResponse(target, res); err != nil {
91027		return nil, err
91028	}
91029	return ret, nil
91030	// {
91031	//   "description": "Patches the specified policy with the data included in the request.",
91032	//   "httpMethod": "PATCH",
91033	//   "id": "compute.securityPolicies.patch",
91034	//   "parameterOrder": [
91035	//     "project",
91036	//     "securityPolicy"
91037	//   ],
91038	//   "parameters": {
91039	//     "project": {
91040	//       "description": "Project ID for this request.",
91041	//       "location": "path",
91042	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91043	//       "required": true,
91044	//       "type": "string"
91045	//     },
91046	//     "requestId": {
91047	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91048	//       "location": "query",
91049	//       "type": "string"
91050	//     },
91051	//     "securityPolicy": {
91052	//       "description": "Name of the security policy to update.",
91053	//       "location": "path",
91054	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91055	//       "required": true,
91056	//       "type": "string"
91057	//     }
91058	//   },
91059	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
91060	//   "request": {
91061	//     "$ref": "SecurityPolicy"
91062	//   },
91063	//   "response": {
91064	//     "$ref": "Operation"
91065	//   },
91066	//   "scopes": [
91067	//     "https://www.googleapis.com/auth/cloud-platform",
91068	//     "https://www.googleapis.com/auth/compute"
91069	//   ]
91070	// }
91071
91072}
91073
91074// method id "compute.securityPolicies.patchRule":
91075
91076type SecurityPoliciesPatchRuleCall struct {
91077	s                  *Service
91078	project            string
91079	securityPolicy     string
91080	securitypolicyrule *SecurityPolicyRule
91081	urlParams_         gensupport.URLParams
91082	ctx_               context.Context
91083	header_            http.Header
91084}
91085
91086// PatchRule: Patches a rule at the specified priority.
91087func (r *SecurityPoliciesService) PatchRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesPatchRuleCall {
91088	c := &SecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91089	c.project = project
91090	c.securityPolicy = securityPolicy
91091	c.securitypolicyrule = securitypolicyrule
91092	return c
91093}
91094
91095// Priority sets the optional parameter "priority": The priority of the
91096// rule to patch.
91097func (c *SecurityPoliciesPatchRuleCall) Priority(priority int64) *SecurityPoliciesPatchRuleCall {
91098	c.urlParams_.Set("priority", fmt.Sprint(priority))
91099	return c
91100}
91101
91102// Fields allows partial responses to be retrieved. See
91103// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91104// for more information.
91105func (c *SecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchRuleCall {
91106	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91107	return c
91108}
91109
91110// Context sets the context to be used in this call's Do method. Any
91111// pending HTTP request will be aborted if the provided context is
91112// canceled.
91113func (c *SecurityPoliciesPatchRuleCall) Context(ctx context.Context) *SecurityPoliciesPatchRuleCall {
91114	c.ctx_ = ctx
91115	return c
91116}
91117
91118// Header returns an http.Header that can be modified by the caller to
91119// add HTTP headers to the request.
91120func (c *SecurityPoliciesPatchRuleCall) Header() http.Header {
91121	if c.header_ == nil {
91122		c.header_ = make(http.Header)
91123	}
91124	return c.header_
91125}
91126
91127func (c *SecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
91128	reqHeaders := make(http.Header)
91129	for k, v := range c.header_ {
91130		reqHeaders[k] = v
91131	}
91132	reqHeaders.Set("User-Agent", c.s.userAgent())
91133	var body io.Reader = nil
91134	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
91135	if err != nil {
91136		return nil, err
91137	}
91138	reqHeaders.Set("Content-Type", "application/json")
91139	c.urlParams_.Set("alt", alt)
91140	c.urlParams_.Set("prettyPrint", "false")
91141	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/patchRule")
91142	urls += "?" + c.urlParams_.Encode()
91143	req, err := http.NewRequest("POST", urls, body)
91144	if err != nil {
91145		return nil, err
91146	}
91147	req.Header = reqHeaders
91148	googleapi.Expand(req.URL, map[string]string{
91149		"project":        c.project,
91150		"securityPolicy": c.securityPolicy,
91151	})
91152	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91153}
91154
91155// Do executes the "compute.securityPolicies.patchRule" call.
91156// Exactly one of *Operation or error will be non-nil. Any non-2xx
91157// status code is an error. Response headers are in either
91158// *Operation.ServerResponse.Header or (if a response was returned at
91159// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91160// to check whether the returned error was because
91161// http.StatusNotModified was returned.
91162func (c *SecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91163	gensupport.SetOptions(c.urlParams_, opts...)
91164	res, err := c.doRequest("json")
91165	if res != nil && res.StatusCode == http.StatusNotModified {
91166		if res.Body != nil {
91167			res.Body.Close()
91168		}
91169		return nil, &googleapi.Error{
91170			Code:   res.StatusCode,
91171			Header: res.Header,
91172		}
91173	}
91174	if err != nil {
91175		return nil, err
91176	}
91177	defer googleapi.CloseBody(res)
91178	if err := googleapi.CheckResponse(res); err != nil {
91179		return nil, err
91180	}
91181	ret := &Operation{
91182		ServerResponse: googleapi.ServerResponse{
91183			Header:         res.Header,
91184			HTTPStatusCode: res.StatusCode,
91185		},
91186	}
91187	target := &ret
91188	if err := gensupport.DecodeResponse(target, res); err != nil {
91189		return nil, err
91190	}
91191	return ret, nil
91192	// {
91193	//   "description": "Patches a rule at the specified priority.",
91194	//   "httpMethod": "POST",
91195	//   "id": "compute.securityPolicies.patchRule",
91196	//   "parameterOrder": [
91197	//     "project",
91198	//     "securityPolicy"
91199	//   ],
91200	//   "parameters": {
91201	//     "priority": {
91202	//       "description": "The priority of the rule to patch.",
91203	//       "format": "int32",
91204	//       "location": "query",
91205	//       "type": "integer"
91206	//     },
91207	//     "project": {
91208	//       "description": "Project ID for this request.",
91209	//       "location": "path",
91210	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91211	//       "required": true,
91212	//       "type": "string"
91213	//     },
91214	//     "securityPolicy": {
91215	//       "description": "Name of the security policy to update.",
91216	//       "location": "path",
91217	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91218	//       "required": true,
91219	//       "type": "string"
91220	//     }
91221	//   },
91222	//   "path": "{project}/global/securityPolicies/{securityPolicy}/patchRule",
91223	//   "request": {
91224	//     "$ref": "SecurityPolicyRule"
91225	//   },
91226	//   "response": {
91227	//     "$ref": "Operation"
91228	//   },
91229	//   "scopes": [
91230	//     "https://www.googleapis.com/auth/cloud-platform",
91231	//     "https://www.googleapis.com/auth/compute"
91232	//   ]
91233	// }
91234
91235}
91236
91237// method id "compute.securityPolicies.removeRule":
91238
91239type SecurityPoliciesRemoveRuleCall struct {
91240	s              *Service
91241	project        string
91242	securityPolicy string
91243	urlParams_     gensupport.URLParams
91244	ctx_           context.Context
91245	header_        http.Header
91246}
91247
91248// RemoveRule: Deletes a rule at the specified priority.
91249func (r *SecurityPoliciesService) RemoveRule(project string, securityPolicy string) *SecurityPoliciesRemoveRuleCall {
91250	c := &SecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91251	c.project = project
91252	c.securityPolicy = securityPolicy
91253	return c
91254}
91255
91256// Priority sets the optional parameter "priority": The priority of the
91257// rule to remove from the security policy.
91258func (c *SecurityPoliciesRemoveRuleCall) Priority(priority int64) *SecurityPoliciesRemoveRuleCall {
91259	c.urlParams_.Set("priority", fmt.Sprint(priority))
91260	return c
91261}
91262
91263// Fields allows partial responses to be retrieved. See
91264// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91265// for more information.
91266func (c *SecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesRemoveRuleCall {
91267	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91268	return c
91269}
91270
91271// Context sets the context to be used in this call's Do method. Any
91272// pending HTTP request will be aborted if the provided context is
91273// canceled.
91274func (c *SecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *SecurityPoliciesRemoveRuleCall {
91275	c.ctx_ = ctx
91276	return c
91277}
91278
91279// Header returns an http.Header that can be modified by the caller to
91280// add HTTP headers to the request.
91281func (c *SecurityPoliciesRemoveRuleCall) Header() http.Header {
91282	if c.header_ == nil {
91283		c.header_ = make(http.Header)
91284	}
91285	return c.header_
91286}
91287
91288func (c *SecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
91289	reqHeaders := make(http.Header)
91290	for k, v := range c.header_ {
91291		reqHeaders[k] = v
91292	}
91293	reqHeaders.Set("User-Agent", c.s.userAgent())
91294	var body io.Reader = nil
91295	c.urlParams_.Set("alt", alt)
91296	c.urlParams_.Set("prettyPrint", "false")
91297	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/removeRule")
91298	urls += "?" + c.urlParams_.Encode()
91299	req, err := http.NewRequest("POST", urls, body)
91300	if err != nil {
91301		return nil, err
91302	}
91303	req.Header = reqHeaders
91304	googleapi.Expand(req.URL, map[string]string{
91305		"project":        c.project,
91306		"securityPolicy": c.securityPolicy,
91307	})
91308	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91309}
91310
91311// Do executes the "compute.securityPolicies.removeRule" call.
91312// Exactly one of *Operation or error will be non-nil. Any non-2xx
91313// status code is an error. Response headers are in either
91314// *Operation.ServerResponse.Header or (if a response was returned at
91315// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91316// to check whether the returned error was because
91317// http.StatusNotModified was returned.
91318func (c *SecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91319	gensupport.SetOptions(c.urlParams_, opts...)
91320	res, err := c.doRequest("json")
91321	if res != nil && res.StatusCode == http.StatusNotModified {
91322		if res.Body != nil {
91323			res.Body.Close()
91324		}
91325		return nil, &googleapi.Error{
91326			Code:   res.StatusCode,
91327			Header: res.Header,
91328		}
91329	}
91330	if err != nil {
91331		return nil, err
91332	}
91333	defer googleapi.CloseBody(res)
91334	if err := googleapi.CheckResponse(res); err != nil {
91335		return nil, err
91336	}
91337	ret := &Operation{
91338		ServerResponse: googleapi.ServerResponse{
91339			Header:         res.Header,
91340			HTTPStatusCode: res.StatusCode,
91341		},
91342	}
91343	target := &ret
91344	if err := gensupport.DecodeResponse(target, res); err != nil {
91345		return nil, err
91346	}
91347	return ret, nil
91348	// {
91349	//   "description": "Deletes a rule at the specified priority.",
91350	//   "httpMethod": "POST",
91351	//   "id": "compute.securityPolicies.removeRule",
91352	//   "parameterOrder": [
91353	//     "project",
91354	//     "securityPolicy"
91355	//   ],
91356	//   "parameters": {
91357	//     "priority": {
91358	//       "description": "The priority of the rule to remove from the security policy.",
91359	//       "format": "int32",
91360	//       "location": "query",
91361	//       "type": "integer"
91362	//     },
91363	//     "project": {
91364	//       "description": "Project ID for this request.",
91365	//       "location": "path",
91366	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91367	//       "required": true,
91368	//       "type": "string"
91369	//     },
91370	//     "securityPolicy": {
91371	//       "description": "Name of the security policy to update.",
91372	//       "location": "path",
91373	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91374	//       "required": true,
91375	//       "type": "string"
91376	//     }
91377	//   },
91378	//   "path": "{project}/global/securityPolicies/{securityPolicy}/removeRule",
91379	//   "response": {
91380	//     "$ref": "Operation"
91381	//   },
91382	//   "scopes": [
91383	//     "https://www.googleapis.com/auth/cloud-platform",
91384	//     "https://www.googleapis.com/auth/compute"
91385	//   ]
91386	// }
91387
91388}
91389
91390// method id "compute.snapshots.delete":
91391
91392type SnapshotsDeleteCall struct {
91393	s          *Service
91394	project    string
91395	snapshot   string
91396	urlParams_ gensupport.URLParams
91397	ctx_       context.Context
91398	header_    http.Header
91399}
91400
91401// Delete: Deletes the specified Snapshot resource. Keep in mind that
91402// deleting a single snapshot might not necessarily delete all the data
91403// on that snapshot. If any data on the snapshot that is marked for
91404// deletion is needed for subsequent snapshots, the data will be moved
91405// to the next corresponding snapshot.
91406//
91407// For more information, see Deleting snapshots.
91408// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/delete
91409func (r *SnapshotsService) Delete(project string, snapshot string) *SnapshotsDeleteCall {
91410	c := &SnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91411	c.project = project
91412	c.snapshot = snapshot
91413	return c
91414}
91415
91416// RequestId sets the optional parameter "requestId": An optional
91417// request ID to identify requests. Specify a unique request ID so that
91418// if you must retry your request, the server will know to ignore the
91419// request if it has already been completed.
91420//
91421// For example, consider a situation where you make an initial request
91422// and the request times out. If you make the request again with the
91423// same request ID, the server can check if original operation with the
91424// same request ID was received, and if so, will ignore the second
91425// request. This prevents clients from accidentally creating duplicate
91426// commitments.
91427//
91428// The request ID must be a valid UUID with the exception that zero UUID
91429// is not supported (00000000-0000-0000-0000-000000000000).
91430func (c *SnapshotsDeleteCall) RequestId(requestId string) *SnapshotsDeleteCall {
91431	c.urlParams_.Set("requestId", requestId)
91432	return c
91433}
91434
91435// Fields allows partial responses to be retrieved. See
91436// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91437// for more information.
91438func (c *SnapshotsDeleteCall) Fields(s ...googleapi.Field) *SnapshotsDeleteCall {
91439	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91440	return c
91441}
91442
91443// Context sets the context to be used in this call's Do method. Any
91444// pending HTTP request will be aborted if the provided context is
91445// canceled.
91446func (c *SnapshotsDeleteCall) Context(ctx context.Context) *SnapshotsDeleteCall {
91447	c.ctx_ = ctx
91448	return c
91449}
91450
91451// Header returns an http.Header that can be modified by the caller to
91452// add HTTP headers to the request.
91453func (c *SnapshotsDeleteCall) Header() http.Header {
91454	if c.header_ == nil {
91455		c.header_ = make(http.Header)
91456	}
91457	return c.header_
91458}
91459
91460func (c *SnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) {
91461	reqHeaders := make(http.Header)
91462	for k, v := range c.header_ {
91463		reqHeaders[k] = v
91464	}
91465	reqHeaders.Set("User-Agent", c.s.userAgent())
91466	var body io.Reader = nil
91467	c.urlParams_.Set("alt", alt)
91468	c.urlParams_.Set("prettyPrint", "false")
91469	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{snapshot}")
91470	urls += "?" + c.urlParams_.Encode()
91471	req, err := http.NewRequest("DELETE", urls, body)
91472	if err != nil {
91473		return nil, err
91474	}
91475	req.Header = reqHeaders
91476	googleapi.Expand(req.URL, map[string]string{
91477		"project":  c.project,
91478		"snapshot": c.snapshot,
91479	})
91480	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91481}
91482
91483// Do executes the "compute.snapshots.delete" call.
91484// Exactly one of *Operation or error will be non-nil. Any non-2xx
91485// status code is an error. Response headers are in either
91486// *Operation.ServerResponse.Header or (if a response was returned at
91487// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91488// to check whether the returned error was because
91489// http.StatusNotModified was returned.
91490func (c *SnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91491	gensupport.SetOptions(c.urlParams_, opts...)
91492	res, err := c.doRequest("json")
91493	if res != nil && res.StatusCode == http.StatusNotModified {
91494		if res.Body != nil {
91495			res.Body.Close()
91496		}
91497		return nil, &googleapi.Error{
91498			Code:   res.StatusCode,
91499			Header: res.Header,
91500		}
91501	}
91502	if err != nil {
91503		return nil, err
91504	}
91505	defer googleapi.CloseBody(res)
91506	if err := googleapi.CheckResponse(res); err != nil {
91507		return nil, err
91508	}
91509	ret := &Operation{
91510		ServerResponse: googleapi.ServerResponse{
91511			Header:         res.Header,
91512			HTTPStatusCode: res.StatusCode,
91513		},
91514	}
91515	target := &ret
91516	if err := gensupport.DecodeResponse(target, res); err != nil {
91517		return nil, err
91518	}
91519	return ret, nil
91520	// {
91521	//   "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.",
91522	//   "httpMethod": "DELETE",
91523	//   "id": "compute.snapshots.delete",
91524	//   "parameterOrder": [
91525	//     "project",
91526	//     "snapshot"
91527	//   ],
91528	//   "parameters": {
91529	//     "project": {
91530	//       "description": "Project ID for this request.",
91531	//       "location": "path",
91532	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91533	//       "required": true,
91534	//       "type": "string"
91535	//     },
91536	//     "requestId": {
91537	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91538	//       "location": "query",
91539	//       "type": "string"
91540	//     },
91541	//     "snapshot": {
91542	//       "description": "Name of the Snapshot resource to delete.",
91543	//       "location": "path",
91544	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91545	//       "required": true,
91546	//       "type": "string"
91547	//     }
91548	//   },
91549	//   "path": "{project}/global/snapshots/{snapshot}",
91550	//   "response": {
91551	//     "$ref": "Operation"
91552	//   },
91553	//   "scopes": [
91554	//     "https://www.googleapis.com/auth/cloud-platform",
91555	//     "https://www.googleapis.com/auth/compute"
91556	//   ]
91557	// }
91558
91559}
91560
91561// method id "compute.snapshots.get":
91562
91563type SnapshotsGetCall struct {
91564	s            *Service
91565	project      string
91566	snapshot     string
91567	urlParams_   gensupport.URLParams
91568	ifNoneMatch_ string
91569	ctx_         context.Context
91570	header_      http.Header
91571}
91572
91573// Get: Returns the specified Snapshot resource. Gets a list of
91574// available snapshots by making a list() request.
91575// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/get
91576func (r *SnapshotsService) Get(project string, snapshot string) *SnapshotsGetCall {
91577	c := &SnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91578	c.project = project
91579	c.snapshot = snapshot
91580	return c
91581}
91582
91583// Fields allows partial responses to be retrieved. See
91584// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91585// for more information.
91586func (c *SnapshotsGetCall) Fields(s ...googleapi.Field) *SnapshotsGetCall {
91587	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91588	return c
91589}
91590
91591// IfNoneMatch sets the optional parameter which makes the operation
91592// fail if the object's ETag matches the given value. This is useful for
91593// getting updates only after the object has changed since the last
91594// request. Use googleapi.IsNotModified to check whether the response
91595// error from Do is the result of In-None-Match.
91596func (c *SnapshotsGetCall) IfNoneMatch(entityTag string) *SnapshotsGetCall {
91597	c.ifNoneMatch_ = entityTag
91598	return c
91599}
91600
91601// Context sets the context to be used in this call's Do method. Any
91602// pending HTTP request will be aborted if the provided context is
91603// canceled.
91604func (c *SnapshotsGetCall) Context(ctx context.Context) *SnapshotsGetCall {
91605	c.ctx_ = ctx
91606	return c
91607}
91608
91609// Header returns an http.Header that can be modified by the caller to
91610// add HTTP headers to the request.
91611func (c *SnapshotsGetCall) Header() http.Header {
91612	if c.header_ == nil {
91613		c.header_ = make(http.Header)
91614	}
91615	return c.header_
91616}
91617
91618func (c *SnapshotsGetCall) doRequest(alt string) (*http.Response, error) {
91619	reqHeaders := make(http.Header)
91620	for k, v := range c.header_ {
91621		reqHeaders[k] = v
91622	}
91623	reqHeaders.Set("User-Agent", c.s.userAgent())
91624	if c.ifNoneMatch_ != "" {
91625		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
91626	}
91627	var body io.Reader = nil
91628	c.urlParams_.Set("alt", alt)
91629	c.urlParams_.Set("prettyPrint", "false")
91630	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{snapshot}")
91631	urls += "?" + c.urlParams_.Encode()
91632	req, err := http.NewRequest("GET", urls, body)
91633	if err != nil {
91634		return nil, err
91635	}
91636	req.Header = reqHeaders
91637	googleapi.Expand(req.URL, map[string]string{
91638		"project":  c.project,
91639		"snapshot": c.snapshot,
91640	})
91641	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91642}
91643
91644// Do executes the "compute.snapshots.get" call.
91645// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
91646// code is an error. Response headers are in either
91647// *Snapshot.ServerResponse.Header or (if a response was returned at
91648// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91649// to check whether the returned error was because
91650// http.StatusNotModified was returned.
91651func (c *SnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
91652	gensupport.SetOptions(c.urlParams_, opts...)
91653	res, err := c.doRequest("json")
91654	if res != nil && res.StatusCode == http.StatusNotModified {
91655		if res.Body != nil {
91656			res.Body.Close()
91657		}
91658		return nil, &googleapi.Error{
91659			Code:   res.StatusCode,
91660			Header: res.Header,
91661		}
91662	}
91663	if err != nil {
91664		return nil, err
91665	}
91666	defer googleapi.CloseBody(res)
91667	if err := googleapi.CheckResponse(res); err != nil {
91668		return nil, err
91669	}
91670	ret := &Snapshot{
91671		ServerResponse: googleapi.ServerResponse{
91672			Header:         res.Header,
91673			HTTPStatusCode: res.StatusCode,
91674		},
91675	}
91676	target := &ret
91677	if err := gensupport.DecodeResponse(target, res); err != nil {
91678		return nil, err
91679	}
91680	return ret, nil
91681	// {
91682	//   "description": "Returns the specified Snapshot resource. Gets a list of available snapshots by making a list() request.",
91683	//   "httpMethod": "GET",
91684	//   "id": "compute.snapshots.get",
91685	//   "parameterOrder": [
91686	//     "project",
91687	//     "snapshot"
91688	//   ],
91689	//   "parameters": {
91690	//     "project": {
91691	//       "description": "Project ID for this request.",
91692	//       "location": "path",
91693	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91694	//       "required": true,
91695	//       "type": "string"
91696	//     },
91697	//     "snapshot": {
91698	//       "description": "Name of the Snapshot resource to return.",
91699	//       "location": "path",
91700	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91701	//       "required": true,
91702	//       "type": "string"
91703	//     }
91704	//   },
91705	//   "path": "{project}/global/snapshots/{snapshot}",
91706	//   "response": {
91707	//     "$ref": "Snapshot"
91708	//   },
91709	//   "scopes": [
91710	//     "https://www.googleapis.com/auth/cloud-platform",
91711	//     "https://www.googleapis.com/auth/compute",
91712	//     "https://www.googleapis.com/auth/compute.readonly"
91713	//   ]
91714	// }
91715
91716}
91717
91718// method id "compute.snapshots.getIamPolicy":
91719
91720type SnapshotsGetIamPolicyCall struct {
91721	s            *Service
91722	project      string
91723	resource     string
91724	urlParams_   gensupport.URLParams
91725	ifNoneMatch_ string
91726	ctx_         context.Context
91727	header_      http.Header
91728}
91729
91730// GetIamPolicy: Gets the access control policy for a resource. May be
91731// empty if no such policy or resource exists.
91732func (r *SnapshotsService) GetIamPolicy(project string, resource string) *SnapshotsGetIamPolicyCall {
91733	c := &SnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91734	c.project = project
91735	c.resource = resource
91736	return c
91737}
91738
91739// Fields allows partial responses to be retrieved. See
91740// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91741// for more information.
91742func (c *SnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsGetIamPolicyCall {
91743	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91744	return c
91745}
91746
91747// IfNoneMatch sets the optional parameter which makes the operation
91748// fail if the object's ETag matches the given value. This is useful for
91749// getting updates only after the object has changed since the last
91750// request. Use googleapi.IsNotModified to check whether the response
91751// error from Do is the result of In-None-Match.
91752func (c *SnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *SnapshotsGetIamPolicyCall {
91753	c.ifNoneMatch_ = entityTag
91754	return c
91755}
91756
91757// Context sets the context to be used in this call's Do method. Any
91758// pending HTTP request will be aborted if the provided context is
91759// canceled.
91760func (c *SnapshotsGetIamPolicyCall) Context(ctx context.Context) *SnapshotsGetIamPolicyCall {
91761	c.ctx_ = ctx
91762	return c
91763}
91764
91765// Header returns an http.Header that can be modified by the caller to
91766// add HTTP headers to the request.
91767func (c *SnapshotsGetIamPolicyCall) Header() http.Header {
91768	if c.header_ == nil {
91769		c.header_ = make(http.Header)
91770	}
91771	return c.header_
91772}
91773
91774func (c *SnapshotsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
91775	reqHeaders := make(http.Header)
91776	for k, v := range c.header_ {
91777		reqHeaders[k] = v
91778	}
91779	reqHeaders.Set("User-Agent", c.s.userAgent())
91780	if c.ifNoneMatch_ != "" {
91781		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
91782	}
91783	var body io.Reader = nil
91784	c.urlParams_.Set("alt", alt)
91785	c.urlParams_.Set("prettyPrint", "false")
91786	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/getIamPolicy")
91787	urls += "?" + c.urlParams_.Encode()
91788	req, err := http.NewRequest("GET", urls, body)
91789	if err != nil {
91790		return nil, err
91791	}
91792	req.Header = reqHeaders
91793	googleapi.Expand(req.URL, map[string]string{
91794		"project":  c.project,
91795		"resource": c.resource,
91796	})
91797	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91798}
91799
91800// Do executes the "compute.snapshots.getIamPolicy" call.
91801// Exactly one of *Policy or error will be non-nil. Any non-2xx status
91802// code is an error. Response headers are in either
91803// *Policy.ServerResponse.Header or (if a response was returned at all)
91804// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
91805// check whether the returned error was because http.StatusNotModified
91806// was returned.
91807func (c *SnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
91808	gensupport.SetOptions(c.urlParams_, opts...)
91809	res, err := c.doRequest("json")
91810	if res != nil && res.StatusCode == http.StatusNotModified {
91811		if res.Body != nil {
91812			res.Body.Close()
91813		}
91814		return nil, &googleapi.Error{
91815			Code:   res.StatusCode,
91816			Header: res.Header,
91817		}
91818	}
91819	if err != nil {
91820		return nil, err
91821	}
91822	defer googleapi.CloseBody(res)
91823	if err := googleapi.CheckResponse(res); err != nil {
91824		return nil, err
91825	}
91826	ret := &Policy{
91827		ServerResponse: googleapi.ServerResponse{
91828			Header:         res.Header,
91829			HTTPStatusCode: res.StatusCode,
91830		},
91831	}
91832	target := &ret
91833	if err := gensupport.DecodeResponse(target, res); err != nil {
91834		return nil, err
91835	}
91836	return ret, nil
91837	// {
91838	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
91839	//   "httpMethod": "GET",
91840	//   "id": "compute.snapshots.getIamPolicy",
91841	//   "parameterOrder": [
91842	//     "project",
91843	//     "resource"
91844	//   ],
91845	//   "parameters": {
91846	//     "project": {
91847	//       "description": "Project ID for this request.",
91848	//       "location": "path",
91849	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91850	//       "required": true,
91851	//       "type": "string"
91852	//     },
91853	//     "resource": {
91854	//       "description": "Name or id of the resource for this request.",
91855	//       "location": "path",
91856	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91857	//       "required": true,
91858	//       "type": "string"
91859	//     }
91860	//   },
91861	//   "path": "{project}/global/snapshots/{resource}/getIamPolicy",
91862	//   "response": {
91863	//     "$ref": "Policy"
91864	//   },
91865	//   "scopes": [
91866	//     "https://www.googleapis.com/auth/cloud-platform",
91867	//     "https://www.googleapis.com/auth/compute",
91868	//     "https://www.googleapis.com/auth/compute.readonly"
91869	//   ]
91870	// }
91871
91872}
91873
91874// method id "compute.snapshots.list":
91875
91876type SnapshotsListCall struct {
91877	s            *Service
91878	project      string
91879	urlParams_   gensupport.URLParams
91880	ifNoneMatch_ string
91881	ctx_         context.Context
91882	header_      http.Header
91883}
91884
91885// List: Retrieves the list of Snapshot resources contained within the
91886// specified project.
91887// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/list
91888func (r *SnapshotsService) List(project string) *SnapshotsListCall {
91889	c := &SnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91890	c.project = project
91891	return c
91892}
91893
91894// Filter sets the optional parameter "filter": A filter expression that
91895// filters resources listed in the response. The expression must specify
91896// the field name, a comparison operator, and the value that you want to
91897// use for filtering. The value must be a string, a number, or a
91898// boolean. The comparison operator must be either =, !=, >, or <.
91899//
91900// For example, if you are filtering Compute Engine instances, you can
91901// exclude instances named example-instance by specifying name !=
91902// example-instance.
91903//
91904// You can also filter nested fields. For example, you could specify
91905// scheduling.automaticRestart = false to include instances only if they
91906// are not scheduled for automatic restarts. You can use filtering on
91907// nested fields to filter based on resource labels.
91908//
91909// To filter on multiple expressions, provide each separate expression
91910// within parentheses. For example, (scheduling.automaticRestart = true)
91911// (cpuPlatform = "Intel Skylake"). By default, each expression is an
91912// AND expression. However, you can include AND and OR expressions
91913// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
91914// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
91915// true).
91916func (c *SnapshotsListCall) Filter(filter string) *SnapshotsListCall {
91917	c.urlParams_.Set("filter", filter)
91918	return c
91919}
91920
91921// MaxResults sets the optional parameter "maxResults": The maximum
91922// number of results per page that should be returned. If the number of
91923// available results is larger than maxResults, Compute Engine returns a
91924// nextPageToken that can be used to get the next page of results in
91925// subsequent list requests. Acceptable values are 0 to 500, inclusive.
91926// (Default: 500)
91927func (c *SnapshotsListCall) MaxResults(maxResults int64) *SnapshotsListCall {
91928	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
91929	return c
91930}
91931
91932// OrderBy sets the optional parameter "orderBy": Sorts list results by
91933// a certain order. By default, results are returned in alphanumerical
91934// order based on the resource name.
91935//
91936// You can also sort results in descending order based on the creation
91937// timestamp using orderBy="creationTimestamp desc". This sorts results
91938// based on the creationTimestamp field in reverse chronological order
91939// (newest result first). Use this to sort resources like operations so
91940// that the newest operation is returned first.
91941//
91942// Currently, only sorting by name or creationTimestamp desc is
91943// supported.
91944func (c *SnapshotsListCall) OrderBy(orderBy string) *SnapshotsListCall {
91945	c.urlParams_.Set("orderBy", orderBy)
91946	return c
91947}
91948
91949// PageToken sets the optional parameter "pageToken": Specifies a page
91950// token to use. Set pageToken to the nextPageToken returned by a
91951// previous list request to get the next page of results.
91952func (c *SnapshotsListCall) PageToken(pageToken string) *SnapshotsListCall {
91953	c.urlParams_.Set("pageToken", pageToken)
91954	return c
91955}
91956
91957// Fields allows partial responses to be retrieved. See
91958// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91959// for more information.
91960func (c *SnapshotsListCall) Fields(s ...googleapi.Field) *SnapshotsListCall {
91961	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91962	return c
91963}
91964
91965// IfNoneMatch sets the optional parameter which makes the operation
91966// fail if the object's ETag matches the given value. This is useful for
91967// getting updates only after the object has changed since the last
91968// request. Use googleapi.IsNotModified to check whether the response
91969// error from Do is the result of In-None-Match.
91970func (c *SnapshotsListCall) IfNoneMatch(entityTag string) *SnapshotsListCall {
91971	c.ifNoneMatch_ = entityTag
91972	return c
91973}
91974
91975// Context sets the context to be used in this call's Do method. Any
91976// pending HTTP request will be aborted if the provided context is
91977// canceled.
91978func (c *SnapshotsListCall) Context(ctx context.Context) *SnapshotsListCall {
91979	c.ctx_ = ctx
91980	return c
91981}
91982
91983// Header returns an http.Header that can be modified by the caller to
91984// add HTTP headers to the request.
91985func (c *SnapshotsListCall) Header() http.Header {
91986	if c.header_ == nil {
91987		c.header_ = make(http.Header)
91988	}
91989	return c.header_
91990}
91991
91992func (c *SnapshotsListCall) doRequest(alt string) (*http.Response, error) {
91993	reqHeaders := make(http.Header)
91994	for k, v := range c.header_ {
91995		reqHeaders[k] = v
91996	}
91997	reqHeaders.Set("User-Agent", c.s.userAgent())
91998	if c.ifNoneMatch_ != "" {
91999		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92000	}
92001	var body io.Reader = nil
92002	c.urlParams_.Set("alt", alt)
92003	c.urlParams_.Set("prettyPrint", "false")
92004	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots")
92005	urls += "?" + c.urlParams_.Encode()
92006	req, err := http.NewRequest("GET", urls, body)
92007	if err != nil {
92008		return nil, err
92009	}
92010	req.Header = reqHeaders
92011	googleapi.Expand(req.URL, map[string]string{
92012		"project": c.project,
92013	})
92014	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92015}
92016
92017// Do executes the "compute.snapshots.list" call.
92018// Exactly one of *SnapshotList or error will be non-nil. Any non-2xx
92019// status code is an error. Response headers are in either
92020// *SnapshotList.ServerResponse.Header or (if a response was returned at
92021// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92022// to check whether the returned error was because
92023// http.StatusNotModified was returned.
92024func (c *SnapshotsListCall) Do(opts ...googleapi.CallOption) (*SnapshotList, error) {
92025	gensupport.SetOptions(c.urlParams_, opts...)
92026	res, err := c.doRequest("json")
92027	if res != nil && res.StatusCode == http.StatusNotModified {
92028		if res.Body != nil {
92029			res.Body.Close()
92030		}
92031		return nil, &googleapi.Error{
92032			Code:   res.StatusCode,
92033			Header: res.Header,
92034		}
92035	}
92036	if err != nil {
92037		return nil, err
92038	}
92039	defer googleapi.CloseBody(res)
92040	if err := googleapi.CheckResponse(res); err != nil {
92041		return nil, err
92042	}
92043	ret := &SnapshotList{
92044		ServerResponse: googleapi.ServerResponse{
92045			Header:         res.Header,
92046			HTTPStatusCode: res.StatusCode,
92047		},
92048	}
92049	target := &ret
92050	if err := gensupport.DecodeResponse(target, res); err != nil {
92051		return nil, err
92052	}
92053	return ret, nil
92054	// {
92055	//   "description": "Retrieves the list of Snapshot resources contained within the specified project.",
92056	//   "httpMethod": "GET",
92057	//   "id": "compute.snapshots.list",
92058	//   "parameterOrder": [
92059	//     "project"
92060	//   ],
92061	//   "parameters": {
92062	//     "filter": {
92063	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
92064	//       "location": "query",
92065	//       "type": "string"
92066	//     },
92067	//     "maxResults": {
92068	//       "default": "500",
92069	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
92070	//       "format": "uint32",
92071	//       "location": "query",
92072	//       "minimum": "0",
92073	//       "type": "integer"
92074	//     },
92075	//     "orderBy": {
92076	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
92077	//       "location": "query",
92078	//       "type": "string"
92079	//     },
92080	//     "pageToken": {
92081	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
92082	//       "location": "query",
92083	//       "type": "string"
92084	//     },
92085	//     "project": {
92086	//       "description": "Project ID for this request.",
92087	//       "location": "path",
92088	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92089	//       "required": true,
92090	//       "type": "string"
92091	//     }
92092	//   },
92093	//   "path": "{project}/global/snapshots",
92094	//   "response": {
92095	//     "$ref": "SnapshotList"
92096	//   },
92097	//   "scopes": [
92098	//     "https://www.googleapis.com/auth/cloud-platform",
92099	//     "https://www.googleapis.com/auth/compute",
92100	//     "https://www.googleapis.com/auth/compute.readonly"
92101	//   ]
92102	// }
92103
92104}
92105
92106// Pages invokes f for each page of results.
92107// A non-nil error returned from f will halt the iteration.
92108// The provided context supersedes any context provided to the Context method.
92109func (c *SnapshotsListCall) Pages(ctx context.Context, f func(*SnapshotList) error) error {
92110	c.ctx_ = ctx
92111	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
92112	for {
92113		x, err := c.Do()
92114		if err != nil {
92115			return err
92116		}
92117		if err := f(x); err != nil {
92118			return err
92119		}
92120		if x.NextPageToken == "" {
92121			return nil
92122		}
92123		c.PageToken(x.NextPageToken)
92124	}
92125}
92126
92127// method id "compute.snapshots.setIamPolicy":
92128
92129type SnapshotsSetIamPolicyCall struct {
92130	s                      *Service
92131	project                string
92132	resource               string
92133	globalsetpolicyrequest *GlobalSetPolicyRequest
92134	urlParams_             gensupport.URLParams
92135	ctx_                   context.Context
92136	header_                http.Header
92137}
92138
92139// SetIamPolicy: Sets the access control policy on the specified
92140// resource. Replaces any existing policy.
92141func (r *SnapshotsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *SnapshotsSetIamPolicyCall {
92142	c := &SnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92143	c.project = project
92144	c.resource = resource
92145	c.globalsetpolicyrequest = globalsetpolicyrequest
92146	return c
92147}
92148
92149// Fields allows partial responses to be retrieved. See
92150// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92151// for more information.
92152func (c *SnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsSetIamPolicyCall {
92153	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92154	return c
92155}
92156
92157// Context sets the context to be used in this call's Do method. Any
92158// pending HTTP request will be aborted if the provided context is
92159// canceled.
92160func (c *SnapshotsSetIamPolicyCall) Context(ctx context.Context) *SnapshotsSetIamPolicyCall {
92161	c.ctx_ = ctx
92162	return c
92163}
92164
92165// Header returns an http.Header that can be modified by the caller to
92166// add HTTP headers to the request.
92167func (c *SnapshotsSetIamPolicyCall) Header() http.Header {
92168	if c.header_ == nil {
92169		c.header_ = make(http.Header)
92170	}
92171	return c.header_
92172}
92173
92174func (c *SnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
92175	reqHeaders := make(http.Header)
92176	for k, v := range c.header_ {
92177		reqHeaders[k] = v
92178	}
92179	reqHeaders.Set("User-Agent", c.s.userAgent())
92180	var body io.Reader = nil
92181	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
92182	if err != nil {
92183		return nil, err
92184	}
92185	reqHeaders.Set("Content-Type", "application/json")
92186	c.urlParams_.Set("alt", alt)
92187	c.urlParams_.Set("prettyPrint", "false")
92188	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/setIamPolicy")
92189	urls += "?" + c.urlParams_.Encode()
92190	req, err := http.NewRequest("POST", urls, body)
92191	if err != nil {
92192		return nil, err
92193	}
92194	req.Header = reqHeaders
92195	googleapi.Expand(req.URL, map[string]string{
92196		"project":  c.project,
92197		"resource": c.resource,
92198	})
92199	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92200}
92201
92202// Do executes the "compute.snapshots.setIamPolicy" call.
92203// Exactly one of *Policy or error will be non-nil. Any non-2xx status
92204// code is an error. Response headers are in either
92205// *Policy.ServerResponse.Header or (if a response was returned at all)
92206// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
92207// check whether the returned error was because http.StatusNotModified
92208// was returned.
92209func (c *SnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
92210	gensupport.SetOptions(c.urlParams_, opts...)
92211	res, err := c.doRequest("json")
92212	if res != nil && res.StatusCode == http.StatusNotModified {
92213		if res.Body != nil {
92214			res.Body.Close()
92215		}
92216		return nil, &googleapi.Error{
92217			Code:   res.StatusCode,
92218			Header: res.Header,
92219		}
92220	}
92221	if err != nil {
92222		return nil, err
92223	}
92224	defer googleapi.CloseBody(res)
92225	if err := googleapi.CheckResponse(res); err != nil {
92226		return nil, err
92227	}
92228	ret := &Policy{
92229		ServerResponse: googleapi.ServerResponse{
92230			Header:         res.Header,
92231			HTTPStatusCode: res.StatusCode,
92232		},
92233	}
92234	target := &ret
92235	if err := gensupport.DecodeResponse(target, res); err != nil {
92236		return nil, err
92237	}
92238	return ret, nil
92239	// {
92240	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
92241	//   "httpMethod": "POST",
92242	//   "id": "compute.snapshots.setIamPolicy",
92243	//   "parameterOrder": [
92244	//     "project",
92245	//     "resource"
92246	//   ],
92247	//   "parameters": {
92248	//     "project": {
92249	//       "description": "Project ID for this request.",
92250	//       "location": "path",
92251	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92252	//       "required": true,
92253	//       "type": "string"
92254	//     },
92255	//     "resource": {
92256	//       "description": "Name or id of the resource for this request.",
92257	//       "location": "path",
92258	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92259	//       "required": true,
92260	//       "type": "string"
92261	//     }
92262	//   },
92263	//   "path": "{project}/global/snapshots/{resource}/setIamPolicy",
92264	//   "request": {
92265	//     "$ref": "GlobalSetPolicyRequest"
92266	//   },
92267	//   "response": {
92268	//     "$ref": "Policy"
92269	//   },
92270	//   "scopes": [
92271	//     "https://www.googleapis.com/auth/cloud-platform",
92272	//     "https://www.googleapis.com/auth/compute"
92273	//   ]
92274	// }
92275
92276}
92277
92278// method id "compute.snapshots.setLabels":
92279
92280type SnapshotsSetLabelsCall struct {
92281	s                      *Service
92282	project                string
92283	resource               string
92284	globalsetlabelsrequest *GlobalSetLabelsRequest
92285	urlParams_             gensupport.URLParams
92286	ctx_                   context.Context
92287	header_                http.Header
92288}
92289
92290// SetLabels: Sets the labels on a snapshot. To learn more about labels,
92291// read the Labeling Resources documentation.
92292func (r *SnapshotsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SnapshotsSetLabelsCall {
92293	c := &SnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92294	c.project = project
92295	c.resource = resource
92296	c.globalsetlabelsrequest = globalsetlabelsrequest
92297	return c
92298}
92299
92300// Fields allows partial responses to be retrieved. See
92301// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92302// for more information.
92303func (c *SnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *SnapshotsSetLabelsCall {
92304	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92305	return c
92306}
92307
92308// Context sets the context to be used in this call's Do method. Any
92309// pending HTTP request will be aborted if the provided context is
92310// canceled.
92311func (c *SnapshotsSetLabelsCall) Context(ctx context.Context) *SnapshotsSetLabelsCall {
92312	c.ctx_ = ctx
92313	return c
92314}
92315
92316// Header returns an http.Header that can be modified by the caller to
92317// add HTTP headers to the request.
92318func (c *SnapshotsSetLabelsCall) Header() http.Header {
92319	if c.header_ == nil {
92320		c.header_ = make(http.Header)
92321	}
92322	return c.header_
92323}
92324
92325func (c *SnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
92326	reqHeaders := make(http.Header)
92327	for k, v := range c.header_ {
92328		reqHeaders[k] = v
92329	}
92330	reqHeaders.Set("User-Agent", c.s.userAgent())
92331	var body io.Reader = nil
92332	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
92333	if err != nil {
92334		return nil, err
92335	}
92336	reqHeaders.Set("Content-Type", "application/json")
92337	c.urlParams_.Set("alt", alt)
92338	c.urlParams_.Set("prettyPrint", "false")
92339	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/setLabels")
92340	urls += "?" + c.urlParams_.Encode()
92341	req, err := http.NewRequest("POST", urls, body)
92342	if err != nil {
92343		return nil, err
92344	}
92345	req.Header = reqHeaders
92346	googleapi.Expand(req.URL, map[string]string{
92347		"project":  c.project,
92348		"resource": c.resource,
92349	})
92350	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92351}
92352
92353// Do executes the "compute.snapshots.setLabels" call.
92354// Exactly one of *Operation or error will be non-nil. Any non-2xx
92355// status code is an error. Response headers are in either
92356// *Operation.ServerResponse.Header or (if a response was returned at
92357// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92358// to check whether the returned error was because
92359// http.StatusNotModified was returned.
92360func (c *SnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92361	gensupport.SetOptions(c.urlParams_, opts...)
92362	res, err := c.doRequest("json")
92363	if res != nil && res.StatusCode == http.StatusNotModified {
92364		if res.Body != nil {
92365			res.Body.Close()
92366		}
92367		return nil, &googleapi.Error{
92368			Code:   res.StatusCode,
92369			Header: res.Header,
92370		}
92371	}
92372	if err != nil {
92373		return nil, err
92374	}
92375	defer googleapi.CloseBody(res)
92376	if err := googleapi.CheckResponse(res); err != nil {
92377		return nil, err
92378	}
92379	ret := &Operation{
92380		ServerResponse: googleapi.ServerResponse{
92381			Header:         res.Header,
92382			HTTPStatusCode: res.StatusCode,
92383		},
92384	}
92385	target := &ret
92386	if err := gensupport.DecodeResponse(target, res); err != nil {
92387		return nil, err
92388	}
92389	return ret, nil
92390	// {
92391	//   "description": "Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation.",
92392	//   "httpMethod": "POST",
92393	//   "id": "compute.snapshots.setLabels",
92394	//   "parameterOrder": [
92395	//     "project",
92396	//     "resource"
92397	//   ],
92398	//   "parameters": {
92399	//     "project": {
92400	//       "description": "Project ID for this request.",
92401	//       "location": "path",
92402	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92403	//       "required": true,
92404	//       "type": "string"
92405	//     },
92406	//     "resource": {
92407	//       "description": "Name or id of the resource for this request.",
92408	//       "location": "path",
92409	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92410	//       "required": true,
92411	//       "type": "string"
92412	//     }
92413	//   },
92414	//   "path": "{project}/global/snapshots/{resource}/setLabels",
92415	//   "request": {
92416	//     "$ref": "GlobalSetLabelsRequest"
92417	//   },
92418	//   "response": {
92419	//     "$ref": "Operation"
92420	//   },
92421	//   "scopes": [
92422	//     "https://www.googleapis.com/auth/cloud-platform",
92423	//     "https://www.googleapis.com/auth/compute"
92424	//   ]
92425	// }
92426
92427}
92428
92429// method id "compute.snapshots.testIamPermissions":
92430
92431type SnapshotsTestIamPermissionsCall struct {
92432	s                      *Service
92433	project                string
92434	resource               string
92435	testpermissionsrequest *TestPermissionsRequest
92436	urlParams_             gensupport.URLParams
92437	ctx_                   context.Context
92438	header_                http.Header
92439}
92440
92441// TestIamPermissions: Returns permissions that a caller has on the
92442// specified resource.
92443func (r *SnapshotsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SnapshotsTestIamPermissionsCall {
92444	c := &SnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92445	c.project = project
92446	c.resource = resource
92447	c.testpermissionsrequest = testpermissionsrequest
92448	return c
92449}
92450
92451// Fields allows partial responses to be retrieved. See
92452// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92453// for more information.
92454func (c *SnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *SnapshotsTestIamPermissionsCall {
92455	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92456	return c
92457}
92458
92459// Context sets the context to be used in this call's Do method. Any
92460// pending HTTP request will be aborted if the provided context is
92461// canceled.
92462func (c *SnapshotsTestIamPermissionsCall) Context(ctx context.Context) *SnapshotsTestIamPermissionsCall {
92463	c.ctx_ = ctx
92464	return c
92465}
92466
92467// Header returns an http.Header that can be modified by the caller to
92468// add HTTP headers to the request.
92469func (c *SnapshotsTestIamPermissionsCall) Header() http.Header {
92470	if c.header_ == nil {
92471		c.header_ = make(http.Header)
92472	}
92473	return c.header_
92474}
92475
92476func (c *SnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
92477	reqHeaders := make(http.Header)
92478	for k, v := range c.header_ {
92479		reqHeaders[k] = v
92480	}
92481	reqHeaders.Set("User-Agent", c.s.userAgent())
92482	var body io.Reader = nil
92483	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
92484	if err != nil {
92485		return nil, err
92486	}
92487	reqHeaders.Set("Content-Type", "application/json")
92488	c.urlParams_.Set("alt", alt)
92489	c.urlParams_.Set("prettyPrint", "false")
92490	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/testIamPermissions")
92491	urls += "?" + c.urlParams_.Encode()
92492	req, err := http.NewRequest("POST", urls, body)
92493	if err != nil {
92494		return nil, err
92495	}
92496	req.Header = reqHeaders
92497	googleapi.Expand(req.URL, map[string]string{
92498		"project":  c.project,
92499		"resource": c.resource,
92500	})
92501	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92502}
92503
92504// Do executes the "compute.snapshots.testIamPermissions" call.
92505// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
92506// non-2xx status code is an error. Response headers are in either
92507// *TestPermissionsResponse.ServerResponse.Header or (if a response was
92508// returned at all) in error.(*googleapi.Error).Header. Use
92509// googleapi.IsNotModified to check whether the returned error was
92510// because http.StatusNotModified was returned.
92511func (c *SnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
92512	gensupport.SetOptions(c.urlParams_, opts...)
92513	res, err := c.doRequest("json")
92514	if res != nil && res.StatusCode == http.StatusNotModified {
92515		if res.Body != nil {
92516			res.Body.Close()
92517		}
92518		return nil, &googleapi.Error{
92519			Code:   res.StatusCode,
92520			Header: res.Header,
92521		}
92522	}
92523	if err != nil {
92524		return nil, err
92525	}
92526	defer googleapi.CloseBody(res)
92527	if err := googleapi.CheckResponse(res); err != nil {
92528		return nil, err
92529	}
92530	ret := &TestPermissionsResponse{
92531		ServerResponse: googleapi.ServerResponse{
92532			Header:         res.Header,
92533			HTTPStatusCode: res.StatusCode,
92534		},
92535	}
92536	target := &ret
92537	if err := gensupport.DecodeResponse(target, res); err != nil {
92538		return nil, err
92539	}
92540	return ret, nil
92541	// {
92542	//   "description": "Returns permissions that a caller has on the specified resource.",
92543	//   "httpMethod": "POST",
92544	//   "id": "compute.snapshots.testIamPermissions",
92545	//   "parameterOrder": [
92546	//     "project",
92547	//     "resource"
92548	//   ],
92549	//   "parameters": {
92550	//     "project": {
92551	//       "description": "Project ID for this request.",
92552	//       "location": "path",
92553	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92554	//       "required": true,
92555	//       "type": "string"
92556	//     },
92557	//     "resource": {
92558	//       "description": "Name or id of the resource for this request.",
92559	//       "location": "path",
92560	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92561	//       "required": true,
92562	//       "type": "string"
92563	//     }
92564	//   },
92565	//   "path": "{project}/global/snapshots/{resource}/testIamPermissions",
92566	//   "request": {
92567	//     "$ref": "TestPermissionsRequest"
92568	//   },
92569	//   "response": {
92570	//     "$ref": "TestPermissionsResponse"
92571	//   },
92572	//   "scopes": [
92573	//     "https://www.googleapis.com/auth/cloud-platform",
92574	//     "https://www.googleapis.com/auth/compute",
92575	//     "https://www.googleapis.com/auth/compute.readonly"
92576	//   ]
92577	// }
92578
92579}
92580
92581// method id "compute.sslCertificates.delete":
92582
92583type SslCertificatesDeleteCall struct {
92584	s              *Service
92585	project        string
92586	sslCertificate string
92587	urlParams_     gensupport.URLParams
92588	ctx_           context.Context
92589	header_        http.Header
92590}
92591
92592// Delete: Deletes the specified SslCertificate resource.
92593func (r *SslCertificatesService) Delete(project string, sslCertificate string) *SslCertificatesDeleteCall {
92594	c := &SslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92595	c.project = project
92596	c.sslCertificate = sslCertificate
92597	return c
92598}
92599
92600// RequestId sets the optional parameter "requestId": An optional
92601// request ID to identify requests. Specify a unique request ID so that
92602// if you must retry your request, the server will know to ignore the
92603// request if it has already been completed.
92604//
92605// For example, consider a situation where you make an initial request
92606// and the request times out. If you make the request again with the
92607// same request ID, the server can check if original operation with the
92608// same request ID was received, and if so, will ignore the second
92609// request. This prevents clients from accidentally creating duplicate
92610// commitments.
92611//
92612// The request ID must be a valid UUID with the exception that zero UUID
92613// is not supported (00000000-0000-0000-0000-000000000000).
92614func (c *SslCertificatesDeleteCall) RequestId(requestId string) *SslCertificatesDeleteCall {
92615	c.urlParams_.Set("requestId", requestId)
92616	return c
92617}
92618
92619// Fields allows partial responses to be retrieved. See
92620// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92621// for more information.
92622func (c *SslCertificatesDeleteCall) Fields(s ...googleapi.Field) *SslCertificatesDeleteCall {
92623	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92624	return c
92625}
92626
92627// Context sets the context to be used in this call's Do method. Any
92628// pending HTTP request will be aborted if the provided context is
92629// canceled.
92630func (c *SslCertificatesDeleteCall) Context(ctx context.Context) *SslCertificatesDeleteCall {
92631	c.ctx_ = ctx
92632	return c
92633}
92634
92635// Header returns an http.Header that can be modified by the caller to
92636// add HTTP headers to the request.
92637func (c *SslCertificatesDeleteCall) Header() http.Header {
92638	if c.header_ == nil {
92639		c.header_ = make(http.Header)
92640	}
92641	return c.header_
92642}
92643
92644func (c *SslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
92645	reqHeaders := make(http.Header)
92646	for k, v := range c.header_ {
92647		reqHeaders[k] = v
92648	}
92649	reqHeaders.Set("User-Agent", c.s.userAgent())
92650	var body io.Reader = nil
92651	c.urlParams_.Set("alt", alt)
92652	c.urlParams_.Set("prettyPrint", "false")
92653	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{sslCertificate}")
92654	urls += "?" + c.urlParams_.Encode()
92655	req, err := http.NewRequest("DELETE", urls, body)
92656	if err != nil {
92657		return nil, err
92658	}
92659	req.Header = reqHeaders
92660	googleapi.Expand(req.URL, map[string]string{
92661		"project":        c.project,
92662		"sslCertificate": c.sslCertificate,
92663	})
92664	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92665}
92666
92667// Do executes the "compute.sslCertificates.delete" call.
92668// Exactly one of *Operation or error will be non-nil. Any non-2xx
92669// status code is an error. Response headers are in either
92670// *Operation.ServerResponse.Header or (if a response was returned at
92671// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92672// to check whether the returned error was because
92673// http.StatusNotModified was returned.
92674func (c *SslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92675	gensupport.SetOptions(c.urlParams_, opts...)
92676	res, err := c.doRequest("json")
92677	if res != nil && res.StatusCode == http.StatusNotModified {
92678		if res.Body != nil {
92679			res.Body.Close()
92680		}
92681		return nil, &googleapi.Error{
92682			Code:   res.StatusCode,
92683			Header: res.Header,
92684		}
92685	}
92686	if err != nil {
92687		return nil, err
92688	}
92689	defer googleapi.CloseBody(res)
92690	if err := googleapi.CheckResponse(res); err != nil {
92691		return nil, err
92692	}
92693	ret := &Operation{
92694		ServerResponse: googleapi.ServerResponse{
92695			Header:         res.Header,
92696			HTTPStatusCode: res.StatusCode,
92697		},
92698	}
92699	target := &ret
92700	if err := gensupport.DecodeResponse(target, res); err != nil {
92701		return nil, err
92702	}
92703	return ret, nil
92704	// {
92705	//   "description": "Deletes the specified SslCertificate resource.",
92706	//   "httpMethod": "DELETE",
92707	//   "id": "compute.sslCertificates.delete",
92708	//   "parameterOrder": [
92709	//     "project",
92710	//     "sslCertificate"
92711	//   ],
92712	//   "parameters": {
92713	//     "project": {
92714	//       "description": "Project ID for this request.",
92715	//       "location": "path",
92716	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92717	//       "required": true,
92718	//       "type": "string"
92719	//     },
92720	//     "requestId": {
92721	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92722	//       "location": "query",
92723	//       "type": "string"
92724	//     },
92725	//     "sslCertificate": {
92726	//       "description": "Name of the SslCertificate resource to delete.",
92727	//       "location": "path",
92728	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92729	//       "required": true,
92730	//       "type": "string"
92731	//     }
92732	//   },
92733	//   "path": "{project}/global/sslCertificates/{sslCertificate}",
92734	//   "response": {
92735	//     "$ref": "Operation"
92736	//   },
92737	//   "scopes": [
92738	//     "https://www.googleapis.com/auth/cloud-platform",
92739	//     "https://www.googleapis.com/auth/compute"
92740	//   ]
92741	// }
92742
92743}
92744
92745// method id "compute.sslCertificates.get":
92746
92747type SslCertificatesGetCall struct {
92748	s              *Service
92749	project        string
92750	sslCertificate string
92751	urlParams_     gensupport.URLParams
92752	ifNoneMatch_   string
92753	ctx_           context.Context
92754	header_        http.Header
92755}
92756
92757// Get: Returns the specified SslCertificate resource. Gets a list of
92758// available SSL certificates by making a list() request.
92759func (r *SslCertificatesService) Get(project string, sslCertificate string) *SslCertificatesGetCall {
92760	c := &SslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92761	c.project = project
92762	c.sslCertificate = sslCertificate
92763	return c
92764}
92765
92766// Fields allows partial responses to be retrieved. See
92767// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92768// for more information.
92769func (c *SslCertificatesGetCall) Fields(s ...googleapi.Field) *SslCertificatesGetCall {
92770	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92771	return c
92772}
92773
92774// IfNoneMatch sets the optional parameter which makes the operation
92775// fail if the object's ETag matches the given value. This is useful for
92776// getting updates only after the object has changed since the last
92777// request. Use googleapi.IsNotModified to check whether the response
92778// error from Do is the result of In-None-Match.
92779func (c *SslCertificatesGetCall) IfNoneMatch(entityTag string) *SslCertificatesGetCall {
92780	c.ifNoneMatch_ = entityTag
92781	return c
92782}
92783
92784// Context sets the context to be used in this call's Do method. Any
92785// pending HTTP request will be aborted if the provided context is
92786// canceled.
92787func (c *SslCertificatesGetCall) Context(ctx context.Context) *SslCertificatesGetCall {
92788	c.ctx_ = ctx
92789	return c
92790}
92791
92792// Header returns an http.Header that can be modified by the caller to
92793// add HTTP headers to the request.
92794func (c *SslCertificatesGetCall) Header() http.Header {
92795	if c.header_ == nil {
92796		c.header_ = make(http.Header)
92797	}
92798	return c.header_
92799}
92800
92801func (c *SslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
92802	reqHeaders := make(http.Header)
92803	for k, v := range c.header_ {
92804		reqHeaders[k] = v
92805	}
92806	reqHeaders.Set("User-Agent", c.s.userAgent())
92807	if c.ifNoneMatch_ != "" {
92808		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92809	}
92810	var body io.Reader = nil
92811	c.urlParams_.Set("alt", alt)
92812	c.urlParams_.Set("prettyPrint", "false")
92813	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{sslCertificate}")
92814	urls += "?" + c.urlParams_.Encode()
92815	req, err := http.NewRequest("GET", urls, body)
92816	if err != nil {
92817		return nil, err
92818	}
92819	req.Header = reqHeaders
92820	googleapi.Expand(req.URL, map[string]string{
92821		"project":        c.project,
92822		"sslCertificate": c.sslCertificate,
92823	})
92824	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92825}
92826
92827// Do executes the "compute.sslCertificates.get" call.
92828// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
92829// status code is an error. Response headers are in either
92830// *SslCertificate.ServerResponse.Header or (if a response was returned
92831// at all) in error.(*googleapi.Error).Header. Use
92832// googleapi.IsNotModified to check whether the returned error was
92833// because http.StatusNotModified was returned.
92834func (c *SslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
92835	gensupport.SetOptions(c.urlParams_, opts...)
92836	res, err := c.doRequest("json")
92837	if res != nil && res.StatusCode == http.StatusNotModified {
92838		if res.Body != nil {
92839			res.Body.Close()
92840		}
92841		return nil, &googleapi.Error{
92842			Code:   res.StatusCode,
92843			Header: res.Header,
92844		}
92845	}
92846	if err != nil {
92847		return nil, err
92848	}
92849	defer googleapi.CloseBody(res)
92850	if err := googleapi.CheckResponse(res); err != nil {
92851		return nil, err
92852	}
92853	ret := &SslCertificate{
92854		ServerResponse: googleapi.ServerResponse{
92855			Header:         res.Header,
92856			HTTPStatusCode: res.StatusCode,
92857		},
92858	}
92859	target := &ret
92860	if err := gensupport.DecodeResponse(target, res); err != nil {
92861		return nil, err
92862	}
92863	return ret, nil
92864	// {
92865	//   "description": "Returns the specified SslCertificate resource. Gets a list of available SSL certificates by making a list() request.",
92866	//   "httpMethod": "GET",
92867	//   "id": "compute.sslCertificates.get",
92868	//   "parameterOrder": [
92869	//     "project",
92870	//     "sslCertificate"
92871	//   ],
92872	//   "parameters": {
92873	//     "project": {
92874	//       "description": "Project ID for this request.",
92875	//       "location": "path",
92876	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92877	//       "required": true,
92878	//       "type": "string"
92879	//     },
92880	//     "sslCertificate": {
92881	//       "description": "Name of the SslCertificate resource to return.",
92882	//       "location": "path",
92883	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92884	//       "required": true,
92885	//       "type": "string"
92886	//     }
92887	//   },
92888	//   "path": "{project}/global/sslCertificates/{sslCertificate}",
92889	//   "response": {
92890	//     "$ref": "SslCertificate"
92891	//   },
92892	//   "scopes": [
92893	//     "https://www.googleapis.com/auth/cloud-platform",
92894	//     "https://www.googleapis.com/auth/compute",
92895	//     "https://www.googleapis.com/auth/compute.readonly"
92896	//   ]
92897	// }
92898
92899}
92900
92901// method id "compute.sslCertificates.insert":
92902
92903type SslCertificatesInsertCall struct {
92904	s              *Service
92905	project        string
92906	sslcertificate *SslCertificate
92907	urlParams_     gensupport.URLParams
92908	ctx_           context.Context
92909	header_        http.Header
92910}
92911
92912// Insert: Creates a SslCertificate resource in the specified project
92913// using the data included in the request.
92914func (r *SslCertificatesService) Insert(project string, sslcertificate *SslCertificate) *SslCertificatesInsertCall {
92915	c := &SslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92916	c.project = project
92917	c.sslcertificate = sslcertificate
92918	return c
92919}
92920
92921// RequestId sets the optional parameter "requestId": An optional
92922// request ID to identify requests. Specify a unique request ID so that
92923// if you must retry your request, the server will know to ignore the
92924// request if it has already been completed.
92925//
92926// For example, consider a situation where you make an initial request
92927// and the request times out. If you make the request again with the
92928// same request ID, the server can check if original operation with the
92929// same request ID was received, and if so, will ignore the second
92930// request. This prevents clients from accidentally creating duplicate
92931// commitments.
92932//
92933// The request ID must be a valid UUID with the exception that zero UUID
92934// is not supported (00000000-0000-0000-0000-000000000000).
92935func (c *SslCertificatesInsertCall) RequestId(requestId string) *SslCertificatesInsertCall {
92936	c.urlParams_.Set("requestId", requestId)
92937	return c
92938}
92939
92940// Fields allows partial responses to be retrieved. See
92941// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92942// for more information.
92943func (c *SslCertificatesInsertCall) Fields(s ...googleapi.Field) *SslCertificatesInsertCall {
92944	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92945	return c
92946}
92947
92948// Context sets the context to be used in this call's Do method. Any
92949// pending HTTP request will be aborted if the provided context is
92950// canceled.
92951func (c *SslCertificatesInsertCall) Context(ctx context.Context) *SslCertificatesInsertCall {
92952	c.ctx_ = ctx
92953	return c
92954}
92955
92956// Header returns an http.Header that can be modified by the caller to
92957// add HTTP headers to the request.
92958func (c *SslCertificatesInsertCall) Header() http.Header {
92959	if c.header_ == nil {
92960		c.header_ = make(http.Header)
92961	}
92962	return c.header_
92963}
92964
92965func (c *SslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
92966	reqHeaders := make(http.Header)
92967	for k, v := range c.header_ {
92968		reqHeaders[k] = v
92969	}
92970	reqHeaders.Set("User-Agent", c.s.userAgent())
92971	var body io.Reader = nil
92972	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
92973	if err != nil {
92974		return nil, err
92975	}
92976	reqHeaders.Set("Content-Type", "application/json")
92977	c.urlParams_.Set("alt", alt)
92978	c.urlParams_.Set("prettyPrint", "false")
92979	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates")
92980	urls += "?" + c.urlParams_.Encode()
92981	req, err := http.NewRequest("POST", urls, body)
92982	if err != nil {
92983		return nil, err
92984	}
92985	req.Header = reqHeaders
92986	googleapi.Expand(req.URL, map[string]string{
92987		"project": c.project,
92988	})
92989	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92990}
92991
92992// Do executes the "compute.sslCertificates.insert" call.
92993// Exactly one of *Operation or error will be non-nil. Any non-2xx
92994// status code is an error. Response headers are in either
92995// *Operation.ServerResponse.Header or (if a response was returned at
92996// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92997// to check whether the returned error was because
92998// http.StatusNotModified was returned.
92999func (c *SslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93000	gensupport.SetOptions(c.urlParams_, opts...)
93001	res, err := c.doRequest("json")
93002	if res != nil && res.StatusCode == http.StatusNotModified {
93003		if res.Body != nil {
93004			res.Body.Close()
93005		}
93006		return nil, &googleapi.Error{
93007			Code:   res.StatusCode,
93008			Header: res.Header,
93009		}
93010	}
93011	if err != nil {
93012		return nil, err
93013	}
93014	defer googleapi.CloseBody(res)
93015	if err := googleapi.CheckResponse(res); err != nil {
93016		return nil, err
93017	}
93018	ret := &Operation{
93019		ServerResponse: googleapi.ServerResponse{
93020			Header:         res.Header,
93021			HTTPStatusCode: res.StatusCode,
93022		},
93023	}
93024	target := &ret
93025	if err := gensupport.DecodeResponse(target, res); err != nil {
93026		return nil, err
93027	}
93028	return ret, nil
93029	// {
93030	//   "description": "Creates a SslCertificate resource in the specified project using the data included in the request.",
93031	//   "httpMethod": "POST",
93032	//   "id": "compute.sslCertificates.insert",
93033	//   "parameterOrder": [
93034	//     "project"
93035	//   ],
93036	//   "parameters": {
93037	//     "project": {
93038	//       "description": "Project ID for this request.",
93039	//       "location": "path",
93040	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93041	//       "required": true,
93042	//       "type": "string"
93043	//     },
93044	//     "requestId": {
93045	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93046	//       "location": "query",
93047	//       "type": "string"
93048	//     }
93049	//   },
93050	//   "path": "{project}/global/sslCertificates",
93051	//   "request": {
93052	//     "$ref": "SslCertificate"
93053	//   },
93054	//   "response": {
93055	//     "$ref": "Operation"
93056	//   },
93057	//   "scopes": [
93058	//     "https://www.googleapis.com/auth/cloud-platform",
93059	//     "https://www.googleapis.com/auth/compute"
93060	//   ]
93061	// }
93062
93063}
93064
93065// method id "compute.sslCertificates.list":
93066
93067type SslCertificatesListCall struct {
93068	s            *Service
93069	project      string
93070	urlParams_   gensupport.URLParams
93071	ifNoneMatch_ string
93072	ctx_         context.Context
93073	header_      http.Header
93074}
93075
93076// List: Retrieves the list of SslCertificate resources available to the
93077// specified project.
93078func (r *SslCertificatesService) List(project string) *SslCertificatesListCall {
93079	c := &SslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93080	c.project = project
93081	return c
93082}
93083
93084// Filter sets the optional parameter "filter": A filter expression that
93085// filters resources listed in the response. The expression must specify
93086// the field name, a comparison operator, and the value that you want to
93087// use for filtering. The value must be a string, a number, or a
93088// boolean. The comparison operator must be either =, !=, >, or <.
93089//
93090// For example, if you are filtering Compute Engine instances, you can
93091// exclude instances named example-instance by specifying name !=
93092// example-instance.
93093//
93094// You can also filter nested fields. For example, you could specify
93095// scheduling.automaticRestart = false to include instances only if they
93096// are not scheduled for automatic restarts. You can use filtering on
93097// nested fields to filter based on resource labels.
93098//
93099// To filter on multiple expressions, provide each separate expression
93100// within parentheses. For example, (scheduling.automaticRestart = true)
93101// (cpuPlatform = "Intel Skylake"). By default, each expression is an
93102// AND expression. However, you can include AND and OR expressions
93103// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
93104// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
93105// true).
93106func (c *SslCertificatesListCall) Filter(filter string) *SslCertificatesListCall {
93107	c.urlParams_.Set("filter", filter)
93108	return c
93109}
93110
93111// MaxResults sets the optional parameter "maxResults": The maximum
93112// number of results per page that should be returned. If the number of
93113// available results is larger than maxResults, Compute Engine returns a
93114// nextPageToken that can be used to get the next page of results in
93115// subsequent list requests. Acceptable values are 0 to 500, inclusive.
93116// (Default: 500)
93117func (c *SslCertificatesListCall) MaxResults(maxResults int64) *SslCertificatesListCall {
93118	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
93119	return c
93120}
93121
93122// OrderBy sets the optional parameter "orderBy": Sorts list results by
93123// a certain order. By default, results are returned in alphanumerical
93124// order based on the resource name.
93125//
93126// You can also sort results in descending order based on the creation
93127// timestamp using orderBy="creationTimestamp desc". This sorts results
93128// based on the creationTimestamp field in reverse chronological order
93129// (newest result first). Use this to sort resources like operations so
93130// that the newest operation is returned first.
93131//
93132// Currently, only sorting by name or creationTimestamp desc is
93133// supported.
93134func (c *SslCertificatesListCall) OrderBy(orderBy string) *SslCertificatesListCall {
93135	c.urlParams_.Set("orderBy", orderBy)
93136	return c
93137}
93138
93139// PageToken sets the optional parameter "pageToken": Specifies a page
93140// token to use. Set pageToken to the nextPageToken returned by a
93141// previous list request to get the next page of results.
93142func (c *SslCertificatesListCall) PageToken(pageToken string) *SslCertificatesListCall {
93143	c.urlParams_.Set("pageToken", pageToken)
93144	return c
93145}
93146
93147// Fields allows partial responses to be retrieved. See
93148// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93149// for more information.
93150func (c *SslCertificatesListCall) Fields(s ...googleapi.Field) *SslCertificatesListCall {
93151	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93152	return c
93153}
93154
93155// IfNoneMatch sets the optional parameter which makes the operation
93156// fail if the object's ETag matches the given value. This is useful for
93157// getting updates only after the object has changed since the last
93158// request. Use googleapi.IsNotModified to check whether the response
93159// error from Do is the result of In-None-Match.
93160func (c *SslCertificatesListCall) IfNoneMatch(entityTag string) *SslCertificatesListCall {
93161	c.ifNoneMatch_ = entityTag
93162	return c
93163}
93164
93165// Context sets the context to be used in this call's Do method. Any
93166// pending HTTP request will be aborted if the provided context is
93167// canceled.
93168func (c *SslCertificatesListCall) Context(ctx context.Context) *SslCertificatesListCall {
93169	c.ctx_ = ctx
93170	return c
93171}
93172
93173// Header returns an http.Header that can be modified by the caller to
93174// add HTTP headers to the request.
93175func (c *SslCertificatesListCall) Header() http.Header {
93176	if c.header_ == nil {
93177		c.header_ = make(http.Header)
93178	}
93179	return c.header_
93180}
93181
93182func (c *SslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
93183	reqHeaders := make(http.Header)
93184	for k, v := range c.header_ {
93185		reqHeaders[k] = v
93186	}
93187	reqHeaders.Set("User-Agent", c.s.userAgent())
93188	if c.ifNoneMatch_ != "" {
93189		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93190	}
93191	var body io.Reader = nil
93192	c.urlParams_.Set("alt", alt)
93193	c.urlParams_.Set("prettyPrint", "false")
93194	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates")
93195	urls += "?" + c.urlParams_.Encode()
93196	req, err := http.NewRequest("GET", urls, body)
93197	if err != nil {
93198		return nil, err
93199	}
93200	req.Header = reqHeaders
93201	googleapi.Expand(req.URL, map[string]string{
93202		"project": c.project,
93203	})
93204	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93205}
93206
93207// Do executes the "compute.sslCertificates.list" call.
93208// Exactly one of *SslCertificateList or error will be non-nil. Any
93209// non-2xx status code is an error. Response headers are in either
93210// *SslCertificateList.ServerResponse.Header or (if a response was
93211// returned at all) in error.(*googleapi.Error).Header. Use
93212// googleapi.IsNotModified to check whether the returned error was
93213// because http.StatusNotModified was returned.
93214func (c *SslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
93215	gensupport.SetOptions(c.urlParams_, opts...)
93216	res, err := c.doRequest("json")
93217	if res != nil && res.StatusCode == http.StatusNotModified {
93218		if res.Body != nil {
93219			res.Body.Close()
93220		}
93221		return nil, &googleapi.Error{
93222			Code:   res.StatusCode,
93223			Header: res.Header,
93224		}
93225	}
93226	if err != nil {
93227		return nil, err
93228	}
93229	defer googleapi.CloseBody(res)
93230	if err := googleapi.CheckResponse(res); err != nil {
93231		return nil, err
93232	}
93233	ret := &SslCertificateList{
93234		ServerResponse: googleapi.ServerResponse{
93235			Header:         res.Header,
93236			HTTPStatusCode: res.StatusCode,
93237		},
93238	}
93239	target := &ret
93240	if err := gensupport.DecodeResponse(target, res); err != nil {
93241		return nil, err
93242	}
93243	return ret, nil
93244	// {
93245	//   "description": "Retrieves the list of SslCertificate resources available to the specified project.",
93246	//   "httpMethod": "GET",
93247	//   "id": "compute.sslCertificates.list",
93248	//   "parameterOrder": [
93249	//     "project"
93250	//   ],
93251	//   "parameters": {
93252	//     "filter": {
93253	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
93254	//       "location": "query",
93255	//       "type": "string"
93256	//     },
93257	//     "maxResults": {
93258	//       "default": "500",
93259	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
93260	//       "format": "uint32",
93261	//       "location": "query",
93262	//       "minimum": "0",
93263	//       "type": "integer"
93264	//     },
93265	//     "orderBy": {
93266	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
93267	//       "location": "query",
93268	//       "type": "string"
93269	//     },
93270	//     "pageToken": {
93271	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
93272	//       "location": "query",
93273	//       "type": "string"
93274	//     },
93275	//     "project": {
93276	//       "description": "Project ID for this request.",
93277	//       "location": "path",
93278	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93279	//       "required": true,
93280	//       "type": "string"
93281	//     }
93282	//   },
93283	//   "path": "{project}/global/sslCertificates",
93284	//   "response": {
93285	//     "$ref": "SslCertificateList"
93286	//   },
93287	//   "scopes": [
93288	//     "https://www.googleapis.com/auth/cloud-platform",
93289	//     "https://www.googleapis.com/auth/compute",
93290	//     "https://www.googleapis.com/auth/compute.readonly"
93291	//   ]
93292	// }
93293
93294}
93295
93296// Pages invokes f for each page of results.
93297// A non-nil error returned from f will halt the iteration.
93298// The provided context supersedes any context provided to the Context method.
93299func (c *SslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
93300	c.ctx_ = ctx
93301	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
93302	for {
93303		x, err := c.Do()
93304		if err != nil {
93305			return err
93306		}
93307		if err := f(x); err != nil {
93308			return err
93309		}
93310		if x.NextPageToken == "" {
93311			return nil
93312		}
93313		c.PageToken(x.NextPageToken)
93314	}
93315}
93316
93317// method id "compute.sslPolicies.delete":
93318
93319type SslPoliciesDeleteCall struct {
93320	s          *Service
93321	project    string
93322	sslPolicy  string
93323	urlParams_ gensupport.URLParams
93324	ctx_       context.Context
93325	header_    http.Header
93326}
93327
93328// Delete: Deletes the specified SSL policy. The SSL policy resource can
93329// be deleted only if it is not in use by any TargetHttpsProxy or
93330// TargetSslProxy resources.
93331func (r *SslPoliciesService) Delete(project string, sslPolicy string) *SslPoliciesDeleteCall {
93332	c := &SslPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93333	c.project = project
93334	c.sslPolicy = sslPolicy
93335	return c
93336}
93337
93338// RequestId sets the optional parameter "requestId": An optional
93339// request ID to identify requests. Specify a unique request ID so that
93340// if you must retry your request, the server will know to ignore the
93341// request if it has already been completed.
93342//
93343// For example, consider a situation where you make an initial request
93344// and the request times out. If you make the request again with the
93345// same request ID, the server can check if original operation with the
93346// same request ID was received, and if so, will ignore the second
93347// request. This prevents clients from accidentally creating duplicate
93348// commitments.
93349//
93350// The request ID must be a valid UUID with the exception that zero UUID
93351// is not supported (00000000-0000-0000-0000-000000000000).
93352func (c *SslPoliciesDeleteCall) RequestId(requestId string) *SslPoliciesDeleteCall {
93353	c.urlParams_.Set("requestId", requestId)
93354	return c
93355}
93356
93357// Fields allows partial responses to be retrieved. See
93358// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93359// for more information.
93360func (c *SslPoliciesDeleteCall) Fields(s ...googleapi.Field) *SslPoliciesDeleteCall {
93361	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93362	return c
93363}
93364
93365// Context sets the context to be used in this call's Do method. Any
93366// pending HTTP request will be aborted if the provided context is
93367// canceled.
93368func (c *SslPoliciesDeleteCall) Context(ctx context.Context) *SslPoliciesDeleteCall {
93369	c.ctx_ = ctx
93370	return c
93371}
93372
93373// Header returns an http.Header that can be modified by the caller to
93374// add HTTP headers to the request.
93375func (c *SslPoliciesDeleteCall) Header() http.Header {
93376	if c.header_ == nil {
93377		c.header_ = make(http.Header)
93378	}
93379	return c.header_
93380}
93381
93382func (c *SslPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
93383	reqHeaders := make(http.Header)
93384	for k, v := range c.header_ {
93385		reqHeaders[k] = v
93386	}
93387	reqHeaders.Set("User-Agent", c.s.userAgent())
93388	var body io.Reader = nil
93389	c.urlParams_.Set("alt", alt)
93390	c.urlParams_.Set("prettyPrint", "false")
93391	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
93392	urls += "?" + c.urlParams_.Encode()
93393	req, err := http.NewRequest("DELETE", urls, body)
93394	if err != nil {
93395		return nil, err
93396	}
93397	req.Header = reqHeaders
93398	googleapi.Expand(req.URL, map[string]string{
93399		"project":   c.project,
93400		"sslPolicy": c.sslPolicy,
93401	})
93402	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93403}
93404
93405// Do executes the "compute.sslPolicies.delete" call.
93406// Exactly one of *Operation or error will be non-nil. Any non-2xx
93407// status code is an error. Response headers are in either
93408// *Operation.ServerResponse.Header or (if a response was returned at
93409// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93410// to check whether the returned error was because
93411// http.StatusNotModified was returned.
93412func (c *SslPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93413	gensupport.SetOptions(c.urlParams_, opts...)
93414	res, err := c.doRequest("json")
93415	if res != nil && res.StatusCode == http.StatusNotModified {
93416		if res.Body != nil {
93417			res.Body.Close()
93418		}
93419		return nil, &googleapi.Error{
93420			Code:   res.StatusCode,
93421			Header: res.Header,
93422		}
93423	}
93424	if err != nil {
93425		return nil, err
93426	}
93427	defer googleapi.CloseBody(res)
93428	if err := googleapi.CheckResponse(res); err != nil {
93429		return nil, err
93430	}
93431	ret := &Operation{
93432		ServerResponse: googleapi.ServerResponse{
93433			Header:         res.Header,
93434			HTTPStatusCode: res.StatusCode,
93435		},
93436	}
93437	target := &ret
93438	if err := gensupport.DecodeResponse(target, res); err != nil {
93439		return nil, err
93440	}
93441	return ret, nil
93442	// {
93443	//   "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.",
93444	//   "httpMethod": "DELETE",
93445	//   "id": "compute.sslPolicies.delete",
93446	//   "parameterOrder": [
93447	//     "project",
93448	//     "sslPolicy"
93449	//   ],
93450	//   "parameters": {
93451	//     "project": {
93452	//       "description": "Project ID for this request.",
93453	//       "location": "path",
93454	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93455	//       "required": true,
93456	//       "type": "string"
93457	//     },
93458	//     "requestId": {
93459	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93460	//       "location": "query",
93461	//       "type": "string"
93462	//     },
93463	//     "sslPolicy": {
93464	//       "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.",
93465	//       "location": "path",
93466	//       "required": true,
93467	//       "type": "string"
93468	//     }
93469	//   },
93470	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
93471	//   "response": {
93472	//     "$ref": "Operation"
93473	//   },
93474	//   "scopes": [
93475	//     "https://www.googleapis.com/auth/cloud-platform",
93476	//     "https://www.googleapis.com/auth/compute"
93477	//   ]
93478	// }
93479
93480}
93481
93482// method id "compute.sslPolicies.get":
93483
93484type SslPoliciesGetCall struct {
93485	s            *Service
93486	project      string
93487	sslPolicy    string
93488	urlParams_   gensupport.URLParams
93489	ifNoneMatch_ string
93490	ctx_         context.Context
93491	header_      http.Header
93492}
93493
93494// Get: Lists all of the ordered rules present in a single specified
93495// policy.
93496func (r *SslPoliciesService) Get(project string, sslPolicy string) *SslPoliciesGetCall {
93497	c := &SslPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93498	c.project = project
93499	c.sslPolicy = sslPolicy
93500	return c
93501}
93502
93503// Fields allows partial responses to be retrieved. See
93504// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93505// for more information.
93506func (c *SslPoliciesGetCall) Fields(s ...googleapi.Field) *SslPoliciesGetCall {
93507	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93508	return c
93509}
93510
93511// IfNoneMatch sets the optional parameter which makes the operation
93512// fail if the object's ETag matches the given value. This is useful for
93513// getting updates only after the object has changed since the last
93514// request. Use googleapi.IsNotModified to check whether the response
93515// error from Do is the result of In-None-Match.
93516func (c *SslPoliciesGetCall) IfNoneMatch(entityTag string) *SslPoliciesGetCall {
93517	c.ifNoneMatch_ = entityTag
93518	return c
93519}
93520
93521// Context sets the context to be used in this call's Do method. Any
93522// pending HTTP request will be aborted if the provided context is
93523// canceled.
93524func (c *SslPoliciesGetCall) Context(ctx context.Context) *SslPoliciesGetCall {
93525	c.ctx_ = ctx
93526	return c
93527}
93528
93529// Header returns an http.Header that can be modified by the caller to
93530// add HTTP headers to the request.
93531func (c *SslPoliciesGetCall) Header() http.Header {
93532	if c.header_ == nil {
93533		c.header_ = make(http.Header)
93534	}
93535	return c.header_
93536}
93537
93538func (c *SslPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
93539	reqHeaders := make(http.Header)
93540	for k, v := range c.header_ {
93541		reqHeaders[k] = v
93542	}
93543	reqHeaders.Set("User-Agent", c.s.userAgent())
93544	if c.ifNoneMatch_ != "" {
93545		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93546	}
93547	var body io.Reader = nil
93548	c.urlParams_.Set("alt", alt)
93549	c.urlParams_.Set("prettyPrint", "false")
93550	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
93551	urls += "?" + c.urlParams_.Encode()
93552	req, err := http.NewRequest("GET", urls, body)
93553	if err != nil {
93554		return nil, err
93555	}
93556	req.Header = reqHeaders
93557	googleapi.Expand(req.URL, map[string]string{
93558		"project":   c.project,
93559		"sslPolicy": c.sslPolicy,
93560	})
93561	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93562}
93563
93564// Do executes the "compute.sslPolicies.get" call.
93565// Exactly one of *SslPolicy or error will be non-nil. Any non-2xx
93566// status code is an error. Response headers are in either
93567// *SslPolicy.ServerResponse.Header or (if a response was returned at
93568// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93569// to check whether the returned error was because
93570// http.StatusNotModified was returned.
93571func (c *SslPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SslPolicy, 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 := &SslPolicy{
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": "Lists all of the ordered rules present in a single specified policy.",
93603	//   "httpMethod": "GET",
93604	//   "id": "compute.sslPolicies.get",
93605	//   "parameterOrder": [
93606	//     "project",
93607	//     "sslPolicy"
93608	//   ],
93609	//   "parameters": {
93610	//     "project": {
93611	//       "description": "Project ID for this request.",
93612	//       "location": "path",
93613	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93614	//       "required": true,
93615	//       "type": "string"
93616	//     },
93617	//     "sslPolicy": {
93618	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
93619	//       "location": "path",
93620	//       "required": true,
93621	//       "type": "string"
93622	//     }
93623	//   },
93624	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
93625	//   "response": {
93626	//     "$ref": "SslPolicy"
93627	//   },
93628	//   "scopes": [
93629	//     "https://www.googleapis.com/auth/cloud-platform",
93630	//     "https://www.googleapis.com/auth/compute",
93631	//     "https://www.googleapis.com/auth/compute.readonly"
93632	//   ]
93633	// }
93634
93635}
93636
93637// method id "compute.sslPolicies.insert":
93638
93639type SslPoliciesInsertCall struct {
93640	s          *Service
93641	project    string
93642	sslpolicy  *SslPolicy
93643	urlParams_ gensupport.URLParams
93644	ctx_       context.Context
93645	header_    http.Header
93646}
93647
93648// Insert: Returns the specified SSL policy resource. Gets a list of
93649// available SSL policies by making a list() request.
93650func (r *SslPoliciesService) Insert(project string, sslpolicy *SslPolicy) *SslPoliciesInsertCall {
93651	c := &SslPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93652	c.project = project
93653	c.sslpolicy = sslpolicy
93654	return c
93655}
93656
93657// RequestId sets the optional parameter "requestId": An optional
93658// request ID to identify requests. Specify a unique request ID so that
93659// if you must retry your request, the server will know to ignore the
93660// request if it has already been completed.
93661//
93662// For example, consider a situation where you make an initial request
93663// and the request times out. If you make the request again with the
93664// same request ID, the server can check if original operation with the
93665// same request ID was received, and if so, will ignore the second
93666// request. This prevents clients from accidentally creating duplicate
93667// commitments.
93668//
93669// The request ID must be a valid UUID with the exception that zero UUID
93670// is not supported (00000000-0000-0000-0000-000000000000).
93671func (c *SslPoliciesInsertCall) RequestId(requestId string) *SslPoliciesInsertCall {
93672	c.urlParams_.Set("requestId", requestId)
93673	return c
93674}
93675
93676// Fields allows partial responses to be retrieved. See
93677// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93678// for more information.
93679func (c *SslPoliciesInsertCall) Fields(s ...googleapi.Field) *SslPoliciesInsertCall {
93680	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93681	return c
93682}
93683
93684// Context sets the context to be used in this call's Do method. Any
93685// pending HTTP request will be aborted if the provided context is
93686// canceled.
93687func (c *SslPoliciesInsertCall) Context(ctx context.Context) *SslPoliciesInsertCall {
93688	c.ctx_ = ctx
93689	return c
93690}
93691
93692// Header returns an http.Header that can be modified by the caller to
93693// add HTTP headers to the request.
93694func (c *SslPoliciesInsertCall) Header() http.Header {
93695	if c.header_ == nil {
93696		c.header_ = make(http.Header)
93697	}
93698	return c.header_
93699}
93700
93701func (c *SslPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
93702	reqHeaders := make(http.Header)
93703	for k, v := range c.header_ {
93704		reqHeaders[k] = v
93705	}
93706	reqHeaders.Set("User-Agent", c.s.userAgent())
93707	var body io.Reader = nil
93708	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
93709	if err != nil {
93710		return nil, err
93711	}
93712	reqHeaders.Set("Content-Type", "application/json")
93713	c.urlParams_.Set("alt", alt)
93714	c.urlParams_.Set("prettyPrint", "false")
93715	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies")
93716	urls += "?" + c.urlParams_.Encode()
93717	req, err := http.NewRequest("POST", urls, body)
93718	if err != nil {
93719		return nil, err
93720	}
93721	req.Header = reqHeaders
93722	googleapi.Expand(req.URL, map[string]string{
93723		"project": c.project,
93724	})
93725	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93726}
93727
93728// Do executes the "compute.sslPolicies.insert" call.
93729// Exactly one of *Operation or error will be non-nil. Any non-2xx
93730// status code is an error. Response headers are in either
93731// *Operation.ServerResponse.Header or (if a response was returned at
93732// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93733// to check whether the returned error was because
93734// http.StatusNotModified was returned.
93735func (c *SslPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93736	gensupport.SetOptions(c.urlParams_, opts...)
93737	res, err := c.doRequest("json")
93738	if res != nil && res.StatusCode == http.StatusNotModified {
93739		if res.Body != nil {
93740			res.Body.Close()
93741		}
93742		return nil, &googleapi.Error{
93743			Code:   res.StatusCode,
93744			Header: res.Header,
93745		}
93746	}
93747	if err != nil {
93748		return nil, err
93749	}
93750	defer googleapi.CloseBody(res)
93751	if err := googleapi.CheckResponse(res); err != nil {
93752		return nil, err
93753	}
93754	ret := &Operation{
93755		ServerResponse: googleapi.ServerResponse{
93756			Header:         res.Header,
93757			HTTPStatusCode: res.StatusCode,
93758		},
93759	}
93760	target := &ret
93761	if err := gensupport.DecodeResponse(target, res); err != nil {
93762		return nil, err
93763	}
93764	return ret, nil
93765	// {
93766	//   "description": "Returns the specified SSL policy resource. Gets a list of available SSL policies by making a list() request.",
93767	//   "httpMethod": "POST",
93768	//   "id": "compute.sslPolicies.insert",
93769	//   "parameterOrder": [
93770	//     "project"
93771	//   ],
93772	//   "parameters": {
93773	//     "project": {
93774	//       "description": "Project ID for this request.",
93775	//       "location": "path",
93776	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93777	//       "required": true,
93778	//       "type": "string"
93779	//     },
93780	//     "requestId": {
93781	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93782	//       "location": "query",
93783	//       "type": "string"
93784	//     }
93785	//   },
93786	//   "path": "{project}/global/sslPolicies",
93787	//   "request": {
93788	//     "$ref": "SslPolicy"
93789	//   },
93790	//   "response": {
93791	//     "$ref": "Operation"
93792	//   },
93793	//   "scopes": [
93794	//     "https://www.googleapis.com/auth/cloud-platform",
93795	//     "https://www.googleapis.com/auth/compute"
93796	//   ]
93797	// }
93798
93799}
93800
93801// method id "compute.sslPolicies.list":
93802
93803type SslPoliciesListCall struct {
93804	s            *Service
93805	project      string
93806	urlParams_   gensupport.URLParams
93807	ifNoneMatch_ string
93808	ctx_         context.Context
93809	header_      http.Header
93810}
93811
93812// List: Lists all the SSL policies that have been configured for the
93813// specified project.
93814func (r *SslPoliciesService) List(project string) *SslPoliciesListCall {
93815	c := &SslPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93816	c.project = project
93817	return c
93818}
93819
93820// Filter sets the optional parameter "filter": A filter expression that
93821// filters resources listed in the response. The expression must specify
93822// the field name, a comparison operator, and the value that you want to
93823// use for filtering. The value must be a string, a number, or a
93824// boolean. The comparison operator must be either =, !=, >, or <.
93825//
93826// For example, if you are filtering Compute Engine instances, you can
93827// exclude instances named example-instance by specifying name !=
93828// example-instance.
93829//
93830// You can also filter nested fields. For example, you could specify
93831// scheduling.automaticRestart = false to include instances only if they
93832// are not scheduled for automatic restarts. You can use filtering on
93833// nested fields to filter based on resource labels.
93834//
93835// To filter on multiple expressions, provide each separate expression
93836// within parentheses. For example, (scheduling.automaticRestart = true)
93837// (cpuPlatform = "Intel Skylake"). By default, each expression is an
93838// AND expression. However, you can include AND and OR expressions
93839// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
93840// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
93841// true).
93842func (c *SslPoliciesListCall) Filter(filter string) *SslPoliciesListCall {
93843	c.urlParams_.Set("filter", filter)
93844	return c
93845}
93846
93847// MaxResults sets the optional parameter "maxResults": The maximum
93848// number of results per page that should be returned. If the number of
93849// available results is larger than maxResults, Compute Engine returns a
93850// nextPageToken that can be used to get the next page of results in
93851// subsequent list requests. Acceptable values are 0 to 500, inclusive.
93852// (Default: 500)
93853func (c *SslPoliciesListCall) MaxResults(maxResults int64) *SslPoliciesListCall {
93854	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
93855	return c
93856}
93857
93858// OrderBy sets the optional parameter "orderBy": Sorts list results by
93859// a certain order. By default, results are returned in alphanumerical
93860// order based on the resource name.
93861//
93862// You can also sort results in descending order based on the creation
93863// timestamp using orderBy="creationTimestamp desc". This sorts results
93864// based on the creationTimestamp field in reverse chronological order
93865// (newest result first). Use this to sort resources like operations so
93866// that the newest operation is returned first.
93867//
93868// Currently, only sorting by name or creationTimestamp desc is
93869// supported.
93870func (c *SslPoliciesListCall) OrderBy(orderBy string) *SslPoliciesListCall {
93871	c.urlParams_.Set("orderBy", orderBy)
93872	return c
93873}
93874
93875// PageToken sets the optional parameter "pageToken": Specifies a page
93876// token to use. Set pageToken to the nextPageToken returned by a
93877// previous list request to get the next page of results.
93878func (c *SslPoliciesListCall) PageToken(pageToken string) *SslPoliciesListCall {
93879	c.urlParams_.Set("pageToken", pageToken)
93880	return c
93881}
93882
93883// Fields allows partial responses to be retrieved. See
93884// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93885// for more information.
93886func (c *SslPoliciesListCall) Fields(s ...googleapi.Field) *SslPoliciesListCall {
93887	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93888	return c
93889}
93890
93891// IfNoneMatch sets the optional parameter which makes the operation
93892// fail if the object's ETag matches the given value. This is useful for
93893// getting updates only after the object has changed since the last
93894// request. Use googleapi.IsNotModified to check whether the response
93895// error from Do is the result of In-None-Match.
93896func (c *SslPoliciesListCall) IfNoneMatch(entityTag string) *SslPoliciesListCall {
93897	c.ifNoneMatch_ = entityTag
93898	return c
93899}
93900
93901// Context sets the context to be used in this call's Do method. Any
93902// pending HTTP request will be aborted if the provided context is
93903// canceled.
93904func (c *SslPoliciesListCall) Context(ctx context.Context) *SslPoliciesListCall {
93905	c.ctx_ = ctx
93906	return c
93907}
93908
93909// Header returns an http.Header that can be modified by the caller to
93910// add HTTP headers to the request.
93911func (c *SslPoliciesListCall) Header() http.Header {
93912	if c.header_ == nil {
93913		c.header_ = make(http.Header)
93914	}
93915	return c.header_
93916}
93917
93918func (c *SslPoliciesListCall) doRequest(alt string) (*http.Response, error) {
93919	reqHeaders := make(http.Header)
93920	for k, v := range c.header_ {
93921		reqHeaders[k] = v
93922	}
93923	reqHeaders.Set("User-Agent", c.s.userAgent())
93924	if c.ifNoneMatch_ != "" {
93925		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93926	}
93927	var body io.Reader = nil
93928	c.urlParams_.Set("alt", alt)
93929	c.urlParams_.Set("prettyPrint", "false")
93930	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies")
93931	urls += "?" + c.urlParams_.Encode()
93932	req, err := http.NewRequest("GET", urls, body)
93933	if err != nil {
93934		return nil, err
93935	}
93936	req.Header = reqHeaders
93937	googleapi.Expand(req.URL, map[string]string{
93938		"project": c.project,
93939	})
93940	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93941}
93942
93943// Do executes the "compute.sslPolicies.list" call.
93944// Exactly one of *SslPoliciesList or error will be non-nil. Any non-2xx
93945// status code is an error. Response headers are in either
93946// *SslPoliciesList.ServerResponse.Header or (if a response was returned
93947// at all) in error.(*googleapi.Error).Header. Use
93948// googleapi.IsNotModified to check whether the returned error was
93949// because http.StatusNotModified was returned.
93950func (c *SslPoliciesListCall) Do(opts ...googleapi.CallOption) (*SslPoliciesList, error) {
93951	gensupport.SetOptions(c.urlParams_, opts...)
93952	res, err := c.doRequest("json")
93953	if res != nil && res.StatusCode == http.StatusNotModified {
93954		if res.Body != nil {
93955			res.Body.Close()
93956		}
93957		return nil, &googleapi.Error{
93958			Code:   res.StatusCode,
93959			Header: res.Header,
93960		}
93961	}
93962	if err != nil {
93963		return nil, err
93964	}
93965	defer googleapi.CloseBody(res)
93966	if err := googleapi.CheckResponse(res); err != nil {
93967		return nil, err
93968	}
93969	ret := &SslPoliciesList{
93970		ServerResponse: googleapi.ServerResponse{
93971			Header:         res.Header,
93972			HTTPStatusCode: res.StatusCode,
93973		},
93974	}
93975	target := &ret
93976	if err := gensupport.DecodeResponse(target, res); err != nil {
93977		return nil, err
93978	}
93979	return ret, nil
93980	// {
93981	//   "description": "Lists all the SSL policies that have been configured for the specified project.",
93982	//   "httpMethod": "GET",
93983	//   "id": "compute.sslPolicies.list",
93984	//   "parameterOrder": [
93985	//     "project"
93986	//   ],
93987	//   "parameters": {
93988	//     "filter": {
93989	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
93990	//       "location": "query",
93991	//       "type": "string"
93992	//     },
93993	//     "maxResults": {
93994	//       "default": "500",
93995	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
93996	//       "format": "uint32",
93997	//       "location": "query",
93998	//       "minimum": "0",
93999	//       "type": "integer"
94000	//     },
94001	//     "orderBy": {
94002	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
94003	//       "location": "query",
94004	//       "type": "string"
94005	//     },
94006	//     "pageToken": {
94007	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
94008	//       "location": "query",
94009	//       "type": "string"
94010	//     },
94011	//     "project": {
94012	//       "description": "Project ID for this request.",
94013	//       "location": "path",
94014	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94015	//       "required": true,
94016	//       "type": "string"
94017	//     }
94018	//   },
94019	//   "path": "{project}/global/sslPolicies",
94020	//   "response": {
94021	//     "$ref": "SslPoliciesList"
94022	//   },
94023	//   "scopes": [
94024	//     "https://www.googleapis.com/auth/cloud-platform",
94025	//     "https://www.googleapis.com/auth/compute",
94026	//     "https://www.googleapis.com/auth/compute.readonly"
94027	//   ]
94028	// }
94029
94030}
94031
94032// Pages invokes f for each page of results.
94033// A non-nil error returned from f will halt the iteration.
94034// The provided context supersedes any context provided to the Context method.
94035func (c *SslPoliciesListCall) Pages(ctx context.Context, f func(*SslPoliciesList) error) error {
94036	c.ctx_ = ctx
94037	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
94038	for {
94039		x, err := c.Do()
94040		if err != nil {
94041			return err
94042		}
94043		if err := f(x); err != nil {
94044			return err
94045		}
94046		if x.NextPageToken == "" {
94047			return nil
94048		}
94049		c.PageToken(x.NextPageToken)
94050	}
94051}
94052
94053// method id "compute.sslPolicies.listAvailableFeatures":
94054
94055type SslPoliciesListAvailableFeaturesCall struct {
94056	s            *Service
94057	project      string
94058	urlParams_   gensupport.URLParams
94059	ifNoneMatch_ string
94060	ctx_         context.Context
94061	header_      http.Header
94062}
94063
94064// ListAvailableFeatures: Lists all features that can be specified in
94065// the SSL policy when using custom profile.
94066func (r *SslPoliciesService) ListAvailableFeatures(project string) *SslPoliciesListAvailableFeaturesCall {
94067	c := &SslPoliciesListAvailableFeaturesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94068	c.project = project
94069	return c
94070}
94071
94072// Filter sets the optional parameter "filter": A filter expression that
94073// filters resources listed in the response. The expression must specify
94074// the field name, a comparison operator, and the value that you want to
94075// use for filtering. The value must be a string, a number, or a
94076// boolean. The comparison operator must be either =, !=, >, or <.
94077//
94078// For example, if you are filtering Compute Engine instances, you can
94079// exclude instances named example-instance by specifying name !=
94080// example-instance.
94081//
94082// You can also filter nested fields. For example, you could specify
94083// scheduling.automaticRestart = false to include instances only if they
94084// are not scheduled for automatic restarts. You can use filtering on
94085// nested fields to filter based on resource labels.
94086//
94087// To filter on multiple expressions, provide each separate expression
94088// within parentheses. For example, (scheduling.automaticRestart = true)
94089// (cpuPlatform = "Intel Skylake"). By default, each expression is an
94090// AND expression. However, you can include AND and OR expressions
94091// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
94092// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
94093// true).
94094func (c *SslPoliciesListAvailableFeaturesCall) Filter(filter string) *SslPoliciesListAvailableFeaturesCall {
94095	c.urlParams_.Set("filter", filter)
94096	return c
94097}
94098
94099// MaxResults sets the optional parameter "maxResults": The maximum
94100// number of results per page that should be returned. If the number of
94101// available results is larger than maxResults, Compute Engine returns a
94102// nextPageToken that can be used to get the next page of results in
94103// subsequent list requests. Acceptable values are 0 to 500, inclusive.
94104// (Default: 500)
94105func (c *SslPoliciesListAvailableFeaturesCall) MaxResults(maxResults int64) *SslPoliciesListAvailableFeaturesCall {
94106	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
94107	return c
94108}
94109
94110// OrderBy sets the optional parameter "orderBy": Sorts list results by
94111// a certain order. By default, results are returned in alphanumerical
94112// order based on the resource name.
94113//
94114// You can also sort results in descending order based on the creation
94115// timestamp using orderBy="creationTimestamp desc". This sorts results
94116// based on the creationTimestamp field in reverse chronological order
94117// (newest result first). Use this to sort resources like operations so
94118// that the newest operation is returned first.
94119//
94120// Currently, only sorting by name or creationTimestamp desc is
94121// supported.
94122func (c *SslPoliciesListAvailableFeaturesCall) OrderBy(orderBy string) *SslPoliciesListAvailableFeaturesCall {
94123	c.urlParams_.Set("orderBy", orderBy)
94124	return c
94125}
94126
94127// PageToken sets the optional parameter "pageToken": Specifies a page
94128// token to use. Set pageToken to the nextPageToken returned by a
94129// previous list request to get the next page of results.
94130func (c *SslPoliciesListAvailableFeaturesCall) PageToken(pageToken string) *SslPoliciesListAvailableFeaturesCall {
94131	c.urlParams_.Set("pageToken", pageToken)
94132	return c
94133}
94134
94135// Fields allows partial responses to be retrieved. See
94136// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94137// for more information.
94138func (c *SslPoliciesListAvailableFeaturesCall) Fields(s ...googleapi.Field) *SslPoliciesListAvailableFeaturesCall {
94139	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94140	return c
94141}
94142
94143// IfNoneMatch sets the optional parameter which makes the operation
94144// fail if the object's ETag matches the given value. This is useful for
94145// getting updates only after the object has changed since the last
94146// request. Use googleapi.IsNotModified to check whether the response
94147// error from Do is the result of In-None-Match.
94148func (c *SslPoliciesListAvailableFeaturesCall) IfNoneMatch(entityTag string) *SslPoliciesListAvailableFeaturesCall {
94149	c.ifNoneMatch_ = entityTag
94150	return c
94151}
94152
94153// Context sets the context to be used in this call's Do method. Any
94154// pending HTTP request will be aborted if the provided context is
94155// canceled.
94156func (c *SslPoliciesListAvailableFeaturesCall) Context(ctx context.Context) *SslPoliciesListAvailableFeaturesCall {
94157	c.ctx_ = ctx
94158	return c
94159}
94160
94161// Header returns an http.Header that can be modified by the caller to
94162// add HTTP headers to the request.
94163func (c *SslPoliciesListAvailableFeaturesCall) Header() http.Header {
94164	if c.header_ == nil {
94165		c.header_ = make(http.Header)
94166	}
94167	return c.header_
94168}
94169
94170func (c *SslPoliciesListAvailableFeaturesCall) doRequest(alt string) (*http.Response, error) {
94171	reqHeaders := make(http.Header)
94172	for k, v := range c.header_ {
94173		reqHeaders[k] = v
94174	}
94175	reqHeaders.Set("User-Agent", c.s.userAgent())
94176	if c.ifNoneMatch_ != "" {
94177		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
94178	}
94179	var body io.Reader = nil
94180	c.urlParams_.Set("alt", alt)
94181	c.urlParams_.Set("prettyPrint", "false")
94182	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/listAvailableFeatures")
94183	urls += "?" + c.urlParams_.Encode()
94184	req, err := http.NewRequest("GET", urls, body)
94185	if err != nil {
94186		return nil, err
94187	}
94188	req.Header = reqHeaders
94189	googleapi.Expand(req.URL, map[string]string{
94190		"project": c.project,
94191	})
94192	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94193}
94194
94195// Do executes the "compute.sslPolicies.listAvailableFeatures" call.
94196// Exactly one of *SslPoliciesListAvailableFeaturesResponse or error
94197// will be non-nil. Any non-2xx status code is an error. Response
94198// headers are in either
94199// *SslPoliciesListAvailableFeaturesResponse.ServerResponse.Header or
94200// (if a response was returned at all) in
94201// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
94202// whether the returned error was because http.StatusNotModified was
94203// returned.
94204func (c *SslPoliciesListAvailableFeaturesCall) Do(opts ...googleapi.CallOption) (*SslPoliciesListAvailableFeaturesResponse, error) {
94205	gensupport.SetOptions(c.urlParams_, opts...)
94206	res, err := c.doRequest("json")
94207	if res != nil && res.StatusCode == http.StatusNotModified {
94208		if res.Body != nil {
94209			res.Body.Close()
94210		}
94211		return nil, &googleapi.Error{
94212			Code:   res.StatusCode,
94213			Header: res.Header,
94214		}
94215	}
94216	if err != nil {
94217		return nil, err
94218	}
94219	defer googleapi.CloseBody(res)
94220	if err := googleapi.CheckResponse(res); err != nil {
94221		return nil, err
94222	}
94223	ret := &SslPoliciesListAvailableFeaturesResponse{
94224		ServerResponse: googleapi.ServerResponse{
94225			Header:         res.Header,
94226			HTTPStatusCode: res.StatusCode,
94227		},
94228	}
94229	target := &ret
94230	if err := gensupport.DecodeResponse(target, res); err != nil {
94231		return nil, err
94232	}
94233	return ret, nil
94234	// {
94235	//   "description": "Lists all features that can be specified in the SSL policy when using custom profile.",
94236	//   "httpMethod": "GET",
94237	//   "id": "compute.sslPolicies.listAvailableFeatures",
94238	//   "parameterOrder": [
94239	//     "project"
94240	//   ],
94241	//   "parameters": {
94242	//     "filter": {
94243	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
94244	//       "location": "query",
94245	//       "type": "string"
94246	//     },
94247	//     "maxResults": {
94248	//       "default": "500",
94249	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
94250	//       "format": "uint32",
94251	//       "location": "query",
94252	//       "minimum": "0",
94253	//       "type": "integer"
94254	//     },
94255	//     "orderBy": {
94256	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
94257	//       "location": "query",
94258	//       "type": "string"
94259	//     },
94260	//     "pageToken": {
94261	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
94262	//       "location": "query",
94263	//       "type": "string"
94264	//     },
94265	//     "project": {
94266	//       "description": "Project ID for this request.",
94267	//       "location": "path",
94268	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94269	//       "required": true,
94270	//       "type": "string"
94271	//     }
94272	//   },
94273	//   "path": "{project}/global/sslPolicies/listAvailableFeatures",
94274	//   "response": {
94275	//     "$ref": "SslPoliciesListAvailableFeaturesResponse"
94276	//   },
94277	//   "scopes": [
94278	//     "https://www.googleapis.com/auth/cloud-platform",
94279	//     "https://www.googleapis.com/auth/compute",
94280	//     "https://www.googleapis.com/auth/compute.readonly"
94281	//   ]
94282	// }
94283
94284}
94285
94286// method id "compute.sslPolicies.patch":
94287
94288type SslPoliciesPatchCall struct {
94289	s          *Service
94290	project    string
94291	sslPolicy  string
94292	sslpolicy  *SslPolicy
94293	urlParams_ gensupport.URLParams
94294	ctx_       context.Context
94295	header_    http.Header
94296}
94297
94298// Patch: Patches the specified SSL policy with the data included in the
94299// request.
94300func (r *SslPoliciesService) Patch(project string, sslPolicy string, sslpolicy *SslPolicy) *SslPoliciesPatchCall {
94301	c := &SslPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94302	c.project = project
94303	c.sslPolicy = sslPolicy
94304	c.sslpolicy = sslpolicy
94305	return c
94306}
94307
94308// RequestId sets the optional parameter "requestId": An optional
94309// request ID to identify requests. Specify a unique request ID so that
94310// if you must retry your request, the server will know to ignore the
94311// request if it has already been completed.
94312//
94313// For example, consider a situation where you make an initial request
94314// and the request times out. If you make the request again with the
94315// same request ID, the server can check if original operation with the
94316// same request ID was received, and if so, will ignore the second
94317// request. This prevents clients from accidentally creating duplicate
94318// commitments.
94319//
94320// The request ID must be a valid UUID with the exception that zero UUID
94321// is not supported (00000000-0000-0000-0000-000000000000).
94322func (c *SslPoliciesPatchCall) RequestId(requestId string) *SslPoliciesPatchCall {
94323	c.urlParams_.Set("requestId", requestId)
94324	return c
94325}
94326
94327// Fields allows partial responses to be retrieved. See
94328// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94329// for more information.
94330func (c *SslPoliciesPatchCall) Fields(s ...googleapi.Field) *SslPoliciesPatchCall {
94331	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94332	return c
94333}
94334
94335// Context sets the context to be used in this call's Do method. Any
94336// pending HTTP request will be aborted if the provided context is
94337// canceled.
94338func (c *SslPoliciesPatchCall) Context(ctx context.Context) *SslPoliciesPatchCall {
94339	c.ctx_ = ctx
94340	return c
94341}
94342
94343// Header returns an http.Header that can be modified by the caller to
94344// add HTTP headers to the request.
94345func (c *SslPoliciesPatchCall) Header() http.Header {
94346	if c.header_ == nil {
94347		c.header_ = make(http.Header)
94348	}
94349	return c.header_
94350}
94351
94352func (c *SslPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
94353	reqHeaders := make(http.Header)
94354	for k, v := range c.header_ {
94355		reqHeaders[k] = v
94356	}
94357	reqHeaders.Set("User-Agent", c.s.userAgent())
94358	var body io.Reader = nil
94359	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
94360	if err != nil {
94361		return nil, err
94362	}
94363	reqHeaders.Set("Content-Type", "application/json")
94364	c.urlParams_.Set("alt", alt)
94365	c.urlParams_.Set("prettyPrint", "false")
94366	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
94367	urls += "?" + c.urlParams_.Encode()
94368	req, err := http.NewRequest("PATCH", urls, body)
94369	if err != nil {
94370		return nil, err
94371	}
94372	req.Header = reqHeaders
94373	googleapi.Expand(req.URL, map[string]string{
94374		"project":   c.project,
94375		"sslPolicy": c.sslPolicy,
94376	})
94377	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94378}
94379
94380// Do executes the "compute.sslPolicies.patch" call.
94381// Exactly one of *Operation or error will be non-nil. Any non-2xx
94382// status code is an error. Response headers are in either
94383// *Operation.ServerResponse.Header or (if a response was returned at
94384// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94385// to check whether the returned error was because
94386// http.StatusNotModified was returned.
94387func (c *SslPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94388	gensupport.SetOptions(c.urlParams_, opts...)
94389	res, err := c.doRequest("json")
94390	if res != nil && res.StatusCode == http.StatusNotModified {
94391		if res.Body != nil {
94392			res.Body.Close()
94393		}
94394		return nil, &googleapi.Error{
94395			Code:   res.StatusCode,
94396			Header: res.Header,
94397		}
94398	}
94399	if err != nil {
94400		return nil, err
94401	}
94402	defer googleapi.CloseBody(res)
94403	if err := googleapi.CheckResponse(res); err != nil {
94404		return nil, err
94405	}
94406	ret := &Operation{
94407		ServerResponse: googleapi.ServerResponse{
94408			Header:         res.Header,
94409			HTTPStatusCode: res.StatusCode,
94410		},
94411	}
94412	target := &ret
94413	if err := gensupport.DecodeResponse(target, res); err != nil {
94414		return nil, err
94415	}
94416	return ret, nil
94417	// {
94418	//   "description": "Patches the specified SSL policy with the data included in the request.",
94419	//   "httpMethod": "PATCH",
94420	//   "id": "compute.sslPolicies.patch",
94421	//   "parameterOrder": [
94422	//     "project",
94423	//     "sslPolicy"
94424	//   ],
94425	//   "parameters": {
94426	//     "project": {
94427	//       "description": "Project ID for this request.",
94428	//       "location": "path",
94429	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94430	//       "required": true,
94431	//       "type": "string"
94432	//     },
94433	//     "requestId": {
94434	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94435	//       "location": "query",
94436	//       "type": "string"
94437	//     },
94438	//     "sslPolicy": {
94439	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
94440	//       "location": "path",
94441	//       "required": true,
94442	//       "type": "string"
94443	//     }
94444	//   },
94445	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
94446	//   "request": {
94447	//     "$ref": "SslPolicy"
94448	//   },
94449	//   "response": {
94450	//     "$ref": "Operation"
94451	//   },
94452	//   "scopes": [
94453	//     "https://www.googleapis.com/auth/cloud-platform",
94454	//     "https://www.googleapis.com/auth/compute"
94455	//   ]
94456	// }
94457
94458}
94459
94460// method id "compute.subnetworks.aggregatedList":
94461
94462type SubnetworksAggregatedListCall struct {
94463	s            *Service
94464	project      string
94465	urlParams_   gensupport.URLParams
94466	ifNoneMatch_ string
94467	ctx_         context.Context
94468	header_      http.Header
94469}
94470
94471// AggregatedList: Retrieves an aggregated list of subnetworks.
94472func (r *SubnetworksService) AggregatedList(project string) *SubnetworksAggregatedListCall {
94473	c := &SubnetworksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94474	c.project = project
94475	return c
94476}
94477
94478// Filter sets the optional parameter "filter": A filter expression that
94479// filters resources listed in the response. The expression must specify
94480// the field name, a comparison operator, and the value that you want to
94481// use for filtering. The value must be a string, a number, or a
94482// boolean. The comparison operator must be either =, !=, >, or <.
94483//
94484// For example, if you are filtering Compute Engine instances, you can
94485// exclude instances named example-instance by specifying name !=
94486// example-instance.
94487//
94488// You can also filter nested fields. For example, you could specify
94489// scheduling.automaticRestart = false to include instances only if they
94490// are not scheduled for automatic restarts. You can use filtering on
94491// nested fields to filter based on resource labels.
94492//
94493// To filter on multiple expressions, provide each separate expression
94494// within parentheses. For example, (scheduling.automaticRestart = true)
94495// (cpuPlatform = "Intel Skylake"). By default, each expression is an
94496// AND expression. However, you can include AND and OR expressions
94497// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
94498// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
94499// true).
94500func (c *SubnetworksAggregatedListCall) Filter(filter string) *SubnetworksAggregatedListCall {
94501	c.urlParams_.Set("filter", filter)
94502	return c
94503}
94504
94505// MaxResults sets the optional parameter "maxResults": The maximum
94506// number of results per page that should be returned. If the number of
94507// available results is larger than maxResults, Compute Engine returns a
94508// nextPageToken that can be used to get the next page of results in
94509// subsequent list requests. Acceptable values are 0 to 500, inclusive.
94510// (Default: 500)
94511func (c *SubnetworksAggregatedListCall) MaxResults(maxResults int64) *SubnetworksAggregatedListCall {
94512	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
94513	return c
94514}
94515
94516// OrderBy sets the optional parameter "orderBy": Sorts list results by
94517// a certain order. By default, results are returned in alphanumerical
94518// order based on the resource name.
94519//
94520// You can also sort results in descending order based on the creation
94521// timestamp using orderBy="creationTimestamp desc". This sorts results
94522// based on the creationTimestamp field in reverse chronological order
94523// (newest result first). Use this to sort resources like operations so
94524// that the newest operation is returned first.
94525//
94526// Currently, only sorting by name or creationTimestamp desc is
94527// supported.
94528func (c *SubnetworksAggregatedListCall) OrderBy(orderBy string) *SubnetworksAggregatedListCall {
94529	c.urlParams_.Set("orderBy", orderBy)
94530	return c
94531}
94532
94533// PageToken sets the optional parameter "pageToken": Specifies a page
94534// token to use. Set pageToken to the nextPageToken returned by a
94535// previous list request to get the next page of results.
94536func (c *SubnetworksAggregatedListCall) PageToken(pageToken string) *SubnetworksAggregatedListCall {
94537	c.urlParams_.Set("pageToken", pageToken)
94538	return c
94539}
94540
94541// Fields allows partial responses to be retrieved. See
94542// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94543// for more information.
94544func (c *SubnetworksAggregatedListCall) Fields(s ...googleapi.Field) *SubnetworksAggregatedListCall {
94545	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94546	return c
94547}
94548
94549// IfNoneMatch sets the optional parameter which makes the operation
94550// fail if the object's ETag matches the given value. This is useful for
94551// getting updates only after the object has changed since the last
94552// request. Use googleapi.IsNotModified to check whether the response
94553// error from Do is the result of In-None-Match.
94554func (c *SubnetworksAggregatedListCall) IfNoneMatch(entityTag string) *SubnetworksAggregatedListCall {
94555	c.ifNoneMatch_ = entityTag
94556	return c
94557}
94558
94559// Context sets the context to be used in this call's Do method. Any
94560// pending HTTP request will be aborted if the provided context is
94561// canceled.
94562func (c *SubnetworksAggregatedListCall) Context(ctx context.Context) *SubnetworksAggregatedListCall {
94563	c.ctx_ = ctx
94564	return c
94565}
94566
94567// Header returns an http.Header that can be modified by the caller to
94568// add HTTP headers to the request.
94569func (c *SubnetworksAggregatedListCall) Header() http.Header {
94570	if c.header_ == nil {
94571		c.header_ = make(http.Header)
94572	}
94573	return c.header_
94574}
94575
94576func (c *SubnetworksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
94577	reqHeaders := make(http.Header)
94578	for k, v := range c.header_ {
94579		reqHeaders[k] = v
94580	}
94581	reqHeaders.Set("User-Agent", c.s.userAgent())
94582	if c.ifNoneMatch_ != "" {
94583		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
94584	}
94585	var body io.Reader = nil
94586	c.urlParams_.Set("alt", alt)
94587	c.urlParams_.Set("prettyPrint", "false")
94588	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/subnetworks")
94589	urls += "?" + c.urlParams_.Encode()
94590	req, err := http.NewRequest("GET", urls, body)
94591	if err != nil {
94592		return nil, err
94593	}
94594	req.Header = reqHeaders
94595	googleapi.Expand(req.URL, map[string]string{
94596		"project": c.project,
94597	})
94598	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94599}
94600
94601// Do executes the "compute.subnetworks.aggregatedList" call.
94602// Exactly one of *SubnetworkAggregatedList or error will be non-nil.
94603// Any non-2xx status code is an error. Response headers are in either
94604// *SubnetworkAggregatedList.ServerResponse.Header or (if a response was
94605// returned at all) in error.(*googleapi.Error).Header. Use
94606// googleapi.IsNotModified to check whether the returned error was
94607// because http.StatusNotModified was returned.
94608func (c *SubnetworksAggregatedListCall) Do(opts ...googleapi.CallOption) (*SubnetworkAggregatedList, error) {
94609	gensupport.SetOptions(c.urlParams_, opts...)
94610	res, err := c.doRequest("json")
94611	if res != nil && res.StatusCode == http.StatusNotModified {
94612		if res.Body != nil {
94613			res.Body.Close()
94614		}
94615		return nil, &googleapi.Error{
94616			Code:   res.StatusCode,
94617			Header: res.Header,
94618		}
94619	}
94620	if err != nil {
94621		return nil, err
94622	}
94623	defer googleapi.CloseBody(res)
94624	if err := googleapi.CheckResponse(res); err != nil {
94625		return nil, err
94626	}
94627	ret := &SubnetworkAggregatedList{
94628		ServerResponse: googleapi.ServerResponse{
94629			Header:         res.Header,
94630			HTTPStatusCode: res.StatusCode,
94631		},
94632	}
94633	target := &ret
94634	if err := gensupport.DecodeResponse(target, res); err != nil {
94635		return nil, err
94636	}
94637	return ret, nil
94638	// {
94639	//   "description": "Retrieves an aggregated list of subnetworks.",
94640	//   "httpMethod": "GET",
94641	//   "id": "compute.subnetworks.aggregatedList",
94642	//   "parameterOrder": [
94643	//     "project"
94644	//   ],
94645	//   "parameters": {
94646	//     "filter": {
94647	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
94648	//       "location": "query",
94649	//       "type": "string"
94650	//     },
94651	//     "maxResults": {
94652	//       "default": "500",
94653	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
94654	//       "format": "uint32",
94655	//       "location": "query",
94656	//       "minimum": "0",
94657	//       "type": "integer"
94658	//     },
94659	//     "orderBy": {
94660	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
94661	//       "location": "query",
94662	//       "type": "string"
94663	//     },
94664	//     "pageToken": {
94665	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
94666	//       "location": "query",
94667	//       "type": "string"
94668	//     },
94669	//     "project": {
94670	//       "description": "Project ID for this request.",
94671	//       "location": "path",
94672	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94673	//       "required": true,
94674	//       "type": "string"
94675	//     }
94676	//   },
94677	//   "path": "{project}/aggregated/subnetworks",
94678	//   "response": {
94679	//     "$ref": "SubnetworkAggregatedList"
94680	//   },
94681	//   "scopes": [
94682	//     "https://www.googleapis.com/auth/cloud-platform",
94683	//     "https://www.googleapis.com/auth/compute",
94684	//     "https://www.googleapis.com/auth/compute.readonly"
94685	//   ]
94686	// }
94687
94688}
94689
94690// Pages invokes f for each page of results.
94691// A non-nil error returned from f will halt the iteration.
94692// The provided context supersedes any context provided to the Context method.
94693func (c *SubnetworksAggregatedListCall) Pages(ctx context.Context, f func(*SubnetworkAggregatedList) error) error {
94694	c.ctx_ = ctx
94695	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
94696	for {
94697		x, err := c.Do()
94698		if err != nil {
94699			return err
94700		}
94701		if err := f(x); err != nil {
94702			return err
94703		}
94704		if x.NextPageToken == "" {
94705			return nil
94706		}
94707		c.PageToken(x.NextPageToken)
94708	}
94709}
94710
94711// method id "compute.subnetworks.delete":
94712
94713type SubnetworksDeleteCall struct {
94714	s          *Service
94715	project    string
94716	region     string
94717	subnetwork string
94718	urlParams_ gensupport.URLParams
94719	ctx_       context.Context
94720	header_    http.Header
94721}
94722
94723// Delete: Deletes the specified subnetwork.
94724func (r *SubnetworksService) Delete(project string, region string, subnetwork string) *SubnetworksDeleteCall {
94725	c := &SubnetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94726	c.project = project
94727	c.region = region
94728	c.subnetwork = subnetwork
94729	return c
94730}
94731
94732// RequestId sets the optional parameter "requestId": An optional
94733// request ID to identify requests. Specify a unique request ID so that
94734// if you must retry your request, the server will know to ignore the
94735// request if it has already been completed.
94736//
94737// For example, consider a situation where you make an initial request
94738// and the request times out. If you make the request again with the
94739// same request ID, the server can check if original operation with the
94740// same request ID was received, and if so, will ignore the second
94741// request. This prevents clients from accidentally creating duplicate
94742// commitments.
94743//
94744// The request ID must be a valid UUID with the exception that zero UUID
94745// is not supported (00000000-0000-0000-0000-000000000000).
94746func (c *SubnetworksDeleteCall) RequestId(requestId string) *SubnetworksDeleteCall {
94747	c.urlParams_.Set("requestId", requestId)
94748	return c
94749}
94750
94751// Fields allows partial responses to be retrieved. See
94752// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94753// for more information.
94754func (c *SubnetworksDeleteCall) Fields(s ...googleapi.Field) *SubnetworksDeleteCall {
94755	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94756	return c
94757}
94758
94759// Context sets the context to be used in this call's Do method. Any
94760// pending HTTP request will be aborted if the provided context is
94761// canceled.
94762func (c *SubnetworksDeleteCall) Context(ctx context.Context) *SubnetworksDeleteCall {
94763	c.ctx_ = ctx
94764	return c
94765}
94766
94767// Header returns an http.Header that can be modified by the caller to
94768// add HTTP headers to the request.
94769func (c *SubnetworksDeleteCall) Header() http.Header {
94770	if c.header_ == nil {
94771		c.header_ = make(http.Header)
94772	}
94773	return c.header_
94774}
94775
94776func (c *SubnetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
94777	reqHeaders := make(http.Header)
94778	for k, v := range c.header_ {
94779		reqHeaders[k] = v
94780	}
94781	reqHeaders.Set("User-Agent", c.s.userAgent())
94782	var body io.Reader = nil
94783	c.urlParams_.Set("alt", alt)
94784	c.urlParams_.Set("prettyPrint", "false")
94785	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
94786	urls += "?" + c.urlParams_.Encode()
94787	req, err := http.NewRequest("DELETE", urls, body)
94788	if err != nil {
94789		return nil, err
94790	}
94791	req.Header = reqHeaders
94792	googleapi.Expand(req.URL, map[string]string{
94793		"project":    c.project,
94794		"region":     c.region,
94795		"subnetwork": c.subnetwork,
94796	})
94797	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94798}
94799
94800// Do executes the "compute.subnetworks.delete" call.
94801// Exactly one of *Operation or error will be non-nil. Any non-2xx
94802// status code is an error. Response headers are in either
94803// *Operation.ServerResponse.Header or (if a response was returned at
94804// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94805// to check whether the returned error was because
94806// http.StatusNotModified was returned.
94807func (c *SubnetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94808	gensupport.SetOptions(c.urlParams_, opts...)
94809	res, err := c.doRequest("json")
94810	if res != nil && res.StatusCode == http.StatusNotModified {
94811		if res.Body != nil {
94812			res.Body.Close()
94813		}
94814		return nil, &googleapi.Error{
94815			Code:   res.StatusCode,
94816			Header: res.Header,
94817		}
94818	}
94819	if err != nil {
94820		return nil, err
94821	}
94822	defer googleapi.CloseBody(res)
94823	if err := googleapi.CheckResponse(res); err != nil {
94824		return nil, err
94825	}
94826	ret := &Operation{
94827		ServerResponse: googleapi.ServerResponse{
94828			Header:         res.Header,
94829			HTTPStatusCode: res.StatusCode,
94830		},
94831	}
94832	target := &ret
94833	if err := gensupport.DecodeResponse(target, res); err != nil {
94834		return nil, err
94835	}
94836	return ret, nil
94837	// {
94838	//   "description": "Deletes the specified subnetwork.",
94839	//   "httpMethod": "DELETE",
94840	//   "id": "compute.subnetworks.delete",
94841	//   "parameterOrder": [
94842	//     "project",
94843	//     "region",
94844	//     "subnetwork"
94845	//   ],
94846	//   "parameters": {
94847	//     "project": {
94848	//       "description": "Project ID for this request.",
94849	//       "location": "path",
94850	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94851	//       "required": true,
94852	//       "type": "string"
94853	//     },
94854	//     "region": {
94855	//       "description": "Name of the region scoping this request.",
94856	//       "location": "path",
94857	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94858	//       "required": true,
94859	//       "type": "string"
94860	//     },
94861	//     "requestId": {
94862	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94863	//       "location": "query",
94864	//       "type": "string"
94865	//     },
94866	//     "subnetwork": {
94867	//       "description": "Name of the Subnetwork resource to delete.",
94868	//       "location": "path",
94869	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94870	//       "required": true,
94871	//       "type": "string"
94872	//     }
94873	//   },
94874	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
94875	//   "response": {
94876	//     "$ref": "Operation"
94877	//   },
94878	//   "scopes": [
94879	//     "https://www.googleapis.com/auth/cloud-platform",
94880	//     "https://www.googleapis.com/auth/compute"
94881	//   ]
94882	// }
94883
94884}
94885
94886// method id "compute.subnetworks.expandIpCidrRange":
94887
94888type SubnetworksExpandIpCidrRangeCall struct {
94889	s                                   *Service
94890	project                             string
94891	region                              string
94892	subnetwork                          string
94893	subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest
94894	urlParams_                          gensupport.URLParams
94895	ctx_                                context.Context
94896	header_                             http.Header
94897}
94898
94899// ExpandIpCidrRange: Expands the IP CIDR range of the subnetwork to a
94900// specified value.
94901func (r *SubnetworksService) ExpandIpCidrRange(project string, region string, subnetwork string, subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest) *SubnetworksExpandIpCidrRangeCall {
94902	c := &SubnetworksExpandIpCidrRangeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94903	c.project = project
94904	c.region = region
94905	c.subnetwork = subnetwork
94906	c.subnetworksexpandipcidrrangerequest = subnetworksexpandipcidrrangerequest
94907	return c
94908}
94909
94910// RequestId sets the optional parameter "requestId": An optional
94911// request ID to identify requests. Specify a unique request ID so that
94912// if you must retry your request, the server will know to ignore the
94913// request if it has already been completed.
94914//
94915// For example, consider a situation where you make an initial request
94916// and the request times out. If you make the request again with the
94917// same request ID, the server can check if original operation with the
94918// same request ID was received, and if so, will ignore the second
94919// request. This prevents clients from accidentally creating duplicate
94920// commitments.
94921//
94922// The request ID must be a valid UUID with the exception that zero UUID
94923// is not supported (00000000-0000-0000-0000-000000000000).
94924func (c *SubnetworksExpandIpCidrRangeCall) RequestId(requestId string) *SubnetworksExpandIpCidrRangeCall {
94925	c.urlParams_.Set("requestId", requestId)
94926	return c
94927}
94928
94929// Fields allows partial responses to be retrieved. See
94930// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94931// for more information.
94932func (c *SubnetworksExpandIpCidrRangeCall) Fields(s ...googleapi.Field) *SubnetworksExpandIpCidrRangeCall {
94933	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94934	return c
94935}
94936
94937// Context sets the context to be used in this call's Do method. Any
94938// pending HTTP request will be aborted if the provided context is
94939// canceled.
94940func (c *SubnetworksExpandIpCidrRangeCall) Context(ctx context.Context) *SubnetworksExpandIpCidrRangeCall {
94941	c.ctx_ = ctx
94942	return c
94943}
94944
94945// Header returns an http.Header that can be modified by the caller to
94946// add HTTP headers to the request.
94947func (c *SubnetworksExpandIpCidrRangeCall) Header() http.Header {
94948	if c.header_ == nil {
94949		c.header_ = make(http.Header)
94950	}
94951	return c.header_
94952}
94953
94954func (c *SubnetworksExpandIpCidrRangeCall) doRequest(alt string) (*http.Response, error) {
94955	reqHeaders := make(http.Header)
94956	for k, v := range c.header_ {
94957		reqHeaders[k] = v
94958	}
94959	reqHeaders.Set("User-Agent", c.s.userAgent())
94960	var body io.Reader = nil
94961	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworksexpandipcidrrangerequest)
94962	if err != nil {
94963		return nil, err
94964	}
94965	reqHeaders.Set("Content-Type", "application/json")
94966	c.urlParams_.Set("alt", alt)
94967	c.urlParams_.Set("prettyPrint", "false")
94968	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange")
94969	urls += "?" + c.urlParams_.Encode()
94970	req, err := http.NewRequest("POST", urls, body)
94971	if err != nil {
94972		return nil, err
94973	}
94974	req.Header = reqHeaders
94975	googleapi.Expand(req.URL, map[string]string{
94976		"project":    c.project,
94977		"region":     c.region,
94978		"subnetwork": c.subnetwork,
94979	})
94980	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94981}
94982
94983// Do executes the "compute.subnetworks.expandIpCidrRange" call.
94984// Exactly one of *Operation or error will be non-nil. Any non-2xx
94985// status code is an error. Response headers are in either
94986// *Operation.ServerResponse.Header or (if a response was returned at
94987// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94988// to check whether the returned error was because
94989// http.StatusNotModified was returned.
94990func (c *SubnetworksExpandIpCidrRangeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94991	gensupport.SetOptions(c.urlParams_, opts...)
94992	res, err := c.doRequest("json")
94993	if res != nil && res.StatusCode == http.StatusNotModified {
94994		if res.Body != nil {
94995			res.Body.Close()
94996		}
94997		return nil, &googleapi.Error{
94998			Code:   res.StatusCode,
94999			Header: res.Header,
95000		}
95001	}
95002	if err != nil {
95003		return nil, err
95004	}
95005	defer googleapi.CloseBody(res)
95006	if err := googleapi.CheckResponse(res); err != nil {
95007		return nil, err
95008	}
95009	ret := &Operation{
95010		ServerResponse: googleapi.ServerResponse{
95011			Header:         res.Header,
95012			HTTPStatusCode: res.StatusCode,
95013		},
95014	}
95015	target := &ret
95016	if err := gensupport.DecodeResponse(target, res); err != nil {
95017		return nil, err
95018	}
95019	return ret, nil
95020	// {
95021	//   "description": "Expands the IP CIDR range of the subnetwork to a specified value.",
95022	//   "httpMethod": "POST",
95023	//   "id": "compute.subnetworks.expandIpCidrRange",
95024	//   "parameterOrder": [
95025	//     "project",
95026	//     "region",
95027	//     "subnetwork"
95028	//   ],
95029	//   "parameters": {
95030	//     "project": {
95031	//       "description": "Project ID for this request.",
95032	//       "location": "path",
95033	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95034	//       "required": true,
95035	//       "type": "string"
95036	//     },
95037	//     "region": {
95038	//       "description": "Name of the region scoping this request.",
95039	//       "location": "path",
95040	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95041	//       "required": true,
95042	//       "type": "string"
95043	//     },
95044	//     "requestId": {
95045	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95046	//       "location": "query",
95047	//       "type": "string"
95048	//     },
95049	//     "subnetwork": {
95050	//       "description": "Name of the Subnetwork resource to update.",
95051	//       "location": "path",
95052	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95053	//       "required": true,
95054	//       "type": "string"
95055	//     }
95056	//   },
95057	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange",
95058	//   "request": {
95059	//     "$ref": "SubnetworksExpandIpCidrRangeRequest"
95060	//   },
95061	//   "response": {
95062	//     "$ref": "Operation"
95063	//   },
95064	//   "scopes": [
95065	//     "https://www.googleapis.com/auth/cloud-platform",
95066	//     "https://www.googleapis.com/auth/compute"
95067	//   ]
95068	// }
95069
95070}
95071
95072// method id "compute.subnetworks.get":
95073
95074type SubnetworksGetCall struct {
95075	s            *Service
95076	project      string
95077	region       string
95078	subnetwork   string
95079	urlParams_   gensupport.URLParams
95080	ifNoneMatch_ string
95081	ctx_         context.Context
95082	header_      http.Header
95083}
95084
95085// Get: Returns the specified subnetwork. Gets a list of available
95086// subnetworks list() request.
95087func (r *SubnetworksService) Get(project string, region string, subnetwork string) *SubnetworksGetCall {
95088	c := &SubnetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95089	c.project = project
95090	c.region = region
95091	c.subnetwork = subnetwork
95092	return c
95093}
95094
95095// Fields allows partial responses to be retrieved. See
95096// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95097// for more information.
95098func (c *SubnetworksGetCall) Fields(s ...googleapi.Field) *SubnetworksGetCall {
95099	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95100	return c
95101}
95102
95103// IfNoneMatch sets the optional parameter which makes the operation
95104// fail if the object's ETag matches the given value. This is useful for
95105// getting updates only after the object has changed since the last
95106// request. Use googleapi.IsNotModified to check whether the response
95107// error from Do is the result of In-None-Match.
95108func (c *SubnetworksGetCall) IfNoneMatch(entityTag string) *SubnetworksGetCall {
95109	c.ifNoneMatch_ = entityTag
95110	return c
95111}
95112
95113// Context sets the context to be used in this call's Do method. Any
95114// pending HTTP request will be aborted if the provided context is
95115// canceled.
95116func (c *SubnetworksGetCall) Context(ctx context.Context) *SubnetworksGetCall {
95117	c.ctx_ = ctx
95118	return c
95119}
95120
95121// Header returns an http.Header that can be modified by the caller to
95122// add HTTP headers to the request.
95123func (c *SubnetworksGetCall) Header() http.Header {
95124	if c.header_ == nil {
95125		c.header_ = make(http.Header)
95126	}
95127	return c.header_
95128}
95129
95130func (c *SubnetworksGetCall) doRequest(alt string) (*http.Response, error) {
95131	reqHeaders := make(http.Header)
95132	for k, v := range c.header_ {
95133		reqHeaders[k] = v
95134	}
95135	reqHeaders.Set("User-Agent", c.s.userAgent())
95136	if c.ifNoneMatch_ != "" {
95137		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
95138	}
95139	var body io.Reader = nil
95140	c.urlParams_.Set("alt", alt)
95141	c.urlParams_.Set("prettyPrint", "false")
95142	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
95143	urls += "?" + c.urlParams_.Encode()
95144	req, err := http.NewRequest("GET", urls, body)
95145	if err != nil {
95146		return nil, err
95147	}
95148	req.Header = reqHeaders
95149	googleapi.Expand(req.URL, map[string]string{
95150		"project":    c.project,
95151		"region":     c.region,
95152		"subnetwork": c.subnetwork,
95153	})
95154	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95155}
95156
95157// Do executes the "compute.subnetworks.get" call.
95158// Exactly one of *Subnetwork or error will be non-nil. Any non-2xx
95159// status code is an error. Response headers are in either
95160// *Subnetwork.ServerResponse.Header or (if a response was returned at
95161// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95162// to check whether the returned error was because
95163// http.StatusNotModified was returned.
95164func (c *SubnetworksGetCall) Do(opts ...googleapi.CallOption) (*Subnetwork, error) {
95165	gensupport.SetOptions(c.urlParams_, opts...)
95166	res, err := c.doRequest("json")
95167	if res != nil && res.StatusCode == http.StatusNotModified {
95168		if res.Body != nil {
95169			res.Body.Close()
95170		}
95171		return nil, &googleapi.Error{
95172			Code:   res.StatusCode,
95173			Header: res.Header,
95174		}
95175	}
95176	if err != nil {
95177		return nil, err
95178	}
95179	defer googleapi.CloseBody(res)
95180	if err := googleapi.CheckResponse(res); err != nil {
95181		return nil, err
95182	}
95183	ret := &Subnetwork{
95184		ServerResponse: googleapi.ServerResponse{
95185			Header:         res.Header,
95186			HTTPStatusCode: res.StatusCode,
95187		},
95188	}
95189	target := &ret
95190	if err := gensupport.DecodeResponse(target, res); err != nil {
95191		return nil, err
95192	}
95193	return ret, nil
95194	// {
95195	//   "description": "Returns the specified subnetwork. Gets a list of available subnetworks list() request.",
95196	//   "httpMethod": "GET",
95197	//   "id": "compute.subnetworks.get",
95198	//   "parameterOrder": [
95199	//     "project",
95200	//     "region",
95201	//     "subnetwork"
95202	//   ],
95203	//   "parameters": {
95204	//     "project": {
95205	//       "description": "Project ID for this request.",
95206	//       "location": "path",
95207	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95208	//       "required": true,
95209	//       "type": "string"
95210	//     },
95211	//     "region": {
95212	//       "description": "Name of the region scoping this request.",
95213	//       "location": "path",
95214	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95215	//       "required": true,
95216	//       "type": "string"
95217	//     },
95218	//     "subnetwork": {
95219	//       "description": "Name of the Subnetwork resource to return.",
95220	//       "location": "path",
95221	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95222	//       "required": true,
95223	//       "type": "string"
95224	//     }
95225	//   },
95226	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
95227	//   "response": {
95228	//     "$ref": "Subnetwork"
95229	//   },
95230	//   "scopes": [
95231	//     "https://www.googleapis.com/auth/cloud-platform",
95232	//     "https://www.googleapis.com/auth/compute",
95233	//     "https://www.googleapis.com/auth/compute.readonly"
95234	//   ]
95235	// }
95236
95237}
95238
95239// method id "compute.subnetworks.getIamPolicy":
95240
95241type SubnetworksGetIamPolicyCall struct {
95242	s            *Service
95243	project      string
95244	region       string
95245	resource     string
95246	urlParams_   gensupport.URLParams
95247	ifNoneMatch_ string
95248	ctx_         context.Context
95249	header_      http.Header
95250}
95251
95252// GetIamPolicy: Gets the access control policy for a resource. May be
95253// empty if no such policy or resource exists.
95254func (r *SubnetworksService) GetIamPolicy(project string, region string, resource string) *SubnetworksGetIamPolicyCall {
95255	c := &SubnetworksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95256	c.project = project
95257	c.region = region
95258	c.resource = resource
95259	return c
95260}
95261
95262// Fields allows partial responses to be retrieved. See
95263// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95264// for more information.
95265func (c *SubnetworksGetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksGetIamPolicyCall {
95266	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95267	return c
95268}
95269
95270// IfNoneMatch sets the optional parameter which makes the operation
95271// fail if the object's ETag matches the given value. This is useful for
95272// getting updates only after the object has changed since the last
95273// request. Use googleapi.IsNotModified to check whether the response
95274// error from Do is the result of In-None-Match.
95275func (c *SubnetworksGetIamPolicyCall) IfNoneMatch(entityTag string) *SubnetworksGetIamPolicyCall {
95276	c.ifNoneMatch_ = entityTag
95277	return c
95278}
95279
95280// Context sets the context to be used in this call's Do method. Any
95281// pending HTTP request will be aborted if the provided context is
95282// canceled.
95283func (c *SubnetworksGetIamPolicyCall) Context(ctx context.Context) *SubnetworksGetIamPolicyCall {
95284	c.ctx_ = ctx
95285	return c
95286}
95287
95288// Header returns an http.Header that can be modified by the caller to
95289// add HTTP headers to the request.
95290func (c *SubnetworksGetIamPolicyCall) Header() http.Header {
95291	if c.header_ == nil {
95292		c.header_ = make(http.Header)
95293	}
95294	return c.header_
95295}
95296
95297func (c *SubnetworksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
95298	reqHeaders := make(http.Header)
95299	for k, v := range c.header_ {
95300		reqHeaders[k] = v
95301	}
95302	reqHeaders.Set("User-Agent", c.s.userAgent())
95303	if c.ifNoneMatch_ != "" {
95304		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
95305	}
95306	var body io.Reader = nil
95307	c.urlParams_.Set("alt", alt)
95308	c.urlParams_.Set("prettyPrint", "false")
95309	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/getIamPolicy")
95310	urls += "?" + c.urlParams_.Encode()
95311	req, err := http.NewRequest("GET", urls, body)
95312	if err != nil {
95313		return nil, err
95314	}
95315	req.Header = reqHeaders
95316	googleapi.Expand(req.URL, map[string]string{
95317		"project":  c.project,
95318		"region":   c.region,
95319		"resource": c.resource,
95320	})
95321	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95322}
95323
95324// Do executes the "compute.subnetworks.getIamPolicy" call.
95325// Exactly one of *Policy or error will be non-nil. Any non-2xx status
95326// code is an error. Response headers are in either
95327// *Policy.ServerResponse.Header or (if a response was returned at all)
95328// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
95329// check whether the returned error was because http.StatusNotModified
95330// was returned.
95331func (c *SubnetworksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
95332	gensupport.SetOptions(c.urlParams_, opts...)
95333	res, err := c.doRequest("json")
95334	if res != nil && res.StatusCode == http.StatusNotModified {
95335		if res.Body != nil {
95336			res.Body.Close()
95337		}
95338		return nil, &googleapi.Error{
95339			Code:   res.StatusCode,
95340			Header: res.Header,
95341		}
95342	}
95343	if err != nil {
95344		return nil, err
95345	}
95346	defer googleapi.CloseBody(res)
95347	if err := googleapi.CheckResponse(res); err != nil {
95348		return nil, err
95349	}
95350	ret := &Policy{
95351		ServerResponse: googleapi.ServerResponse{
95352			Header:         res.Header,
95353			HTTPStatusCode: res.StatusCode,
95354		},
95355	}
95356	target := &ret
95357	if err := gensupport.DecodeResponse(target, res); err != nil {
95358		return nil, err
95359	}
95360	return ret, nil
95361	// {
95362	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
95363	//   "httpMethod": "GET",
95364	//   "id": "compute.subnetworks.getIamPolicy",
95365	//   "parameterOrder": [
95366	//     "project",
95367	//     "region",
95368	//     "resource"
95369	//   ],
95370	//   "parameters": {
95371	//     "project": {
95372	//       "description": "Project ID for this request.",
95373	//       "location": "path",
95374	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95375	//       "required": true,
95376	//       "type": "string"
95377	//     },
95378	//     "region": {
95379	//       "description": "The name of the region for this request.",
95380	//       "location": "path",
95381	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95382	//       "required": true,
95383	//       "type": "string"
95384	//     },
95385	//     "resource": {
95386	//       "description": "Name or id of the resource for this request.",
95387	//       "location": "path",
95388	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95389	//       "required": true,
95390	//       "type": "string"
95391	//     }
95392	//   },
95393	//   "path": "{project}/regions/{region}/subnetworks/{resource}/getIamPolicy",
95394	//   "response": {
95395	//     "$ref": "Policy"
95396	//   },
95397	//   "scopes": [
95398	//     "https://www.googleapis.com/auth/cloud-platform",
95399	//     "https://www.googleapis.com/auth/compute",
95400	//     "https://www.googleapis.com/auth/compute.readonly"
95401	//   ]
95402	// }
95403
95404}
95405
95406// method id "compute.subnetworks.insert":
95407
95408type SubnetworksInsertCall struct {
95409	s          *Service
95410	project    string
95411	region     string
95412	subnetwork *Subnetwork
95413	urlParams_ gensupport.URLParams
95414	ctx_       context.Context
95415	header_    http.Header
95416}
95417
95418// Insert: Creates a subnetwork in the specified project using the data
95419// included in the request.
95420func (r *SubnetworksService) Insert(project string, region string, subnetwork *Subnetwork) *SubnetworksInsertCall {
95421	c := &SubnetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95422	c.project = project
95423	c.region = region
95424	c.subnetwork = subnetwork
95425	return c
95426}
95427
95428// RequestId sets the optional parameter "requestId": An optional
95429// request ID to identify requests. Specify a unique request ID so that
95430// if you must retry your request, the server will know to ignore the
95431// request if it has already been completed.
95432//
95433// For example, consider a situation where you make an initial request
95434// and the request times out. If you make the request again with the
95435// same request ID, the server can check if original operation with the
95436// same request ID was received, and if so, will ignore the second
95437// request. This prevents clients from accidentally creating duplicate
95438// commitments.
95439//
95440// The request ID must be a valid UUID with the exception that zero UUID
95441// is not supported (00000000-0000-0000-0000-000000000000).
95442func (c *SubnetworksInsertCall) RequestId(requestId string) *SubnetworksInsertCall {
95443	c.urlParams_.Set("requestId", requestId)
95444	return c
95445}
95446
95447// Fields allows partial responses to be retrieved. See
95448// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95449// for more information.
95450func (c *SubnetworksInsertCall) Fields(s ...googleapi.Field) *SubnetworksInsertCall {
95451	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95452	return c
95453}
95454
95455// Context sets the context to be used in this call's Do method. Any
95456// pending HTTP request will be aborted if the provided context is
95457// canceled.
95458func (c *SubnetworksInsertCall) Context(ctx context.Context) *SubnetworksInsertCall {
95459	c.ctx_ = ctx
95460	return c
95461}
95462
95463// Header returns an http.Header that can be modified by the caller to
95464// add HTTP headers to the request.
95465func (c *SubnetworksInsertCall) Header() http.Header {
95466	if c.header_ == nil {
95467		c.header_ = make(http.Header)
95468	}
95469	return c.header_
95470}
95471
95472func (c *SubnetworksInsertCall) doRequest(alt string) (*http.Response, error) {
95473	reqHeaders := make(http.Header)
95474	for k, v := range c.header_ {
95475		reqHeaders[k] = v
95476	}
95477	reqHeaders.Set("User-Agent", c.s.userAgent())
95478	var body io.Reader = nil
95479	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork)
95480	if err != nil {
95481		return nil, err
95482	}
95483	reqHeaders.Set("Content-Type", "application/json")
95484	c.urlParams_.Set("alt", alt)
95485	c.urlParams_.Set("prettyPrint", "false")
95486	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks")
95487	urls += "?" + c.urlParams_.Encode()
95488	req, err := http.NewRequest("POST", urls, body)
95489	if err != nil {
95490		return nil, err
95491	}
95492	req.Header = reqHeaders
95493	googleapi.Expand(req.URL, map[string]string{
95494		"project": c.project,
95495		"region":  c.region,
95496	})
95497	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95498}
95499
95500// Do executes the "compute.subnetworks.insert" call.
95501// Exactly one of *Operation or error will be non-nil. Any non-2xx
95502// status code is an error. Response headers are in either
95503// *Operation.ServerResponse.Header or (if a response was returned at
95504// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95505// to check whether the returned error was because
95506// http.StatusNotModified was returned.
95507func (c *SubnetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95508	gensupport.SetOptions(c.urlParams_, opts...)
95509	res, err := c.doRequest("json")
95510	if res != nil && res.StatusCode == http.StatusNotModified {
95511		if res.Body != nil {
95512			res.Body.Close()
95513		}
95514		return nil, &googleapi.Error{
95515			Code:   res.StatusCode,
95516			Header: res.Header,
95517		}
95518	}
95519	if err != nil {
95520		return nil, err
95521	}
95522	defer googleapi.CloseBody(res)
95523	if err := googleapi.CheckResponse(res); err != nil {
95524		return nil, err
95525	}
95526	ret := &Operation{
95527		ServerResponse: googleapi.ServerResponse{
95528			Header:         res.Header,
95529			HTTPStatusCode: res.StatusCode,
95530		},
95531	}
95532	target := &ret
95533	if err := gensupport.DecodeResponse(target, res); err != nil {
95534		return nil, err
95535	}
95536	return ret, nil
95537	// {
95538	//   "description": "Creates a subnetwork in the specified project using the data included in the request.",
95539	//   "httpMethod": "POST",
95540	//   "id": "compute.subnetworks.insert",
95541	//   "parameterOrder": [
95542	//     "project",
95543	//     "region"
95544	//   ],
95545	//   "parameters": {
95546	//     "project": {
95547	//       "description": "Project ID for this request.",
95548	//       "location": "path",
95549	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95550	//       "required": true,
95551	//       "type": "string"
95552	//     },
95553	//     "region": {
95554	//       "description": "Name of the region scoping this request.",
95555	//       "location": "path",
95556	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95557	//       "required": true,
95558	//       "type": "string"
95559	//     },
95560	//     "requestId": {
95561	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95562	//       "location": "query",
95563	//       "type": "string"
95564	//     }
95565	//   },
95566	//   "path": "{project}/regions/{region}/subnetworks",
95567	//   "request": {
95568	//     "$ref": "Subnetwork"
95569	//   },
95570	//   "response": {
95571	//     "$ref": "Operation"
95572	//   },
95573	//   "scopes": [
95574	//     "https://www.googleapis.com/auth/cloud-platform",
95575	//     "https://www.googleapis.com/auth/compute"
95576	//   ]
95577	// }
95578
95579}
95580
95581// method id "compute.subnetworks.list":
95582
95583type SubnetworksListCall struct {
95584	s            *Service
95585	project      string
95586	region       string
95587	urlParams_   gensupport.URLParams
95588	ifNoneMatch_ string
95589	ctx_         context.Context
95590	header_      http.Header
95591}
95592
95593// List: Retrieves a list of subnetworks available to the specified
95594// project.
95595func (r *SubnetworksService) List(project string, region string) *SubnetworksListCall {
95596	c := &SubnetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95597	c.project = project
95598	c.region = region
95599	return c
95600}
95601
95602// Filter sets the optional parameter "filter": A filter expression that
95603// filters resources listed in the response. The expression must specify
95604// the field name, a comparison operator, and the value that you want to
95605// use for filtering. The value must be a string, a number, or a
95606// boolean. The comparison operator must be either =, !=, >, or <.
95607//
95608// For example, if you are filtering Compute Engine instances, you can
95609// exclude instances named example-instance by specifying name !=
95610// example-instance.
95611//
95612// You can also filter nested fields. For example, you could specify
95613// scheduling.automaticRestart = false to include instances only if they
95614// are not scheduled for automatic restarts. You can use filtering on
95615// nested fields to filter based on resource labels.
95616//
95617// To filter on multiple expressions, provide each separate expression
95618// within parentheses. For example, (scheduling.automaticRestart = true)
95619// (cpuPlatform = "Intel Skylake"). By default, each expression is an
95620// AND expression. However, you can include AND and OR expressions
95621// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
95622// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
95623// true).
95624func (c *SubnetworksListCall) Filter(filter string) *SubnetworksListCall {
95625	c.urlParams_.Set("filter", filter)
95626	return c
95627}
95628
95629// MaxResults sets the optional parameter "maxResults": The maximum
95630// number of results per page that should be returned. If the number of
95631// available results is larger than maxResults, Compute Engine returns a
95632// nextPageToken that can be used to get the next page of results in
95633// subsequent list requests. Acceptable values are 0 to 500, inclusive.
95634// (Default: 500)
95635func (c *SubnetworksListCall) MaxResults(maxResults int64) *SubnetworksListCall {
95636	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
95637	return c
95638}
95639
95640// OrderBy sets the optional parameter "orderBy": Sorts list results by
95641// a certain order. By default, results are returned in alphanumerical
95642// order based on the resource name.
95643//
95644// You can also sort results in descending order based on the creation
95645// timestamp using orderBy="creationTimestamp desc". This sorts results
95646// based on the creationTimestamp field in reverse chronological order
95647// (newest result first). Use this to sort resources like operations so
95648// that the newest operation is returned first.
95649//
95650// Currently, only sorting by name or creationTimestamp desc is
95651// supported.
95652func (c *SubnetworksListCall) OrderBy(orderBy string) *SubnetworksListCall {
95653	c.urlParams_.Set("orderBy", orderBy)
95654	return c
95655}
95656
95657// PageToken sets the optional parameter "pageToken": Specifies a page
95658// token to use. Set pageToken to the nextPageToken returned by a
95659// previous list request to get the next page of results.
95660func (c *SubnetworksListCall) PageToken(pageToken string) *SubnetworksListCall {
95661	c.urlParams_.Set("pageToken", pageToken)
95662	return c
95663}
95664
95665// Fields allows partial responses to be retrieved. See
95666// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95667// for more information.
95668func (c *SubnetworksListCall) Fields(s ...googleapi.Field) *SubnetworksListCall {
95669	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95670	return c
95671}
95672
95673// IfNoneMatch sets the optional parameter which makes the operation
95674// fail if the object's ETag matches the given value. This is useful for
95675// getting updates only after the object has changed since the last
95676// request. Use googleapi.IsNotModified to check whether the response
95677// error from Do is the result of In-None-Match.
95678func (c *SubnetworksListCall) IfNoneMatch(entityTag string) *SubnetworksListCall {
95679	c.ifNoneMatch_ = entityTag
95680	return c
95681}
95682
95683// Context sets the context to be used in this call's Do method. Any
95684// pending HTTP request will be aborted if the provided context is
95685// canceled.
95686func (c *SubnetworksListCall) Context(ctx context.Context) *SubnetworksListCall {
95687	c.ctx_ = ctx
95688	return c
95689}
95690
95691// Header returns an http.Header that can be modified by the caller to
95692// add HTTP headers to the request.
95693func (c *SubnetworksListCall) Header() http.Header {
95694	if c.header_ == nil {
95695		c.header_ = make(http.Header)
95696	}
95697	return c.header_
95698}
95699
95700func (c *SubnetworksListCall) doRequest(alt string) (*http.Response, error) {
95701	reqHeaders := make(http.Header)
95702	for k, v := range c.header_ {
95703		reqHeaders[k] = v
95704	}
95705	reqHeaders.Set("User-Agent", c.s.userAgent())
95706	if c.ifNoneMatch_ != "" {
95707		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
95708	}
95709	var body io.Reader = nil
95710	c.urlParams_.Set("alt", alt)
95711	c.urlParams_.Set("prettyPrint", "false")
95712	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks")
95713	urls += "?" + c.urlParams_.Encode()
95714	req, err := http.NewRequest("GET", urls, body)
95715	if err != nil {
95716		return nil, err
95717	}
95718	req.Header = reqHeaders
95719	googleapi.Expand(req.URL, map[string]string{
95720		"project": c.project,
95721		"region":  c.region,
95722	})
95723	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95724}
95725
95726// Do executes the "compute.subnetworks.list" call.
95727// Exactly one of *SubnetworkList or error will be non-nil. Any non-2xx
95728// status code is an error. Response headers are in either
95729// *SubnetworkList.ServerResponse.Header or (if a response was returned
95730// at all) in error.(*googleapi.Error).Header. Use
95731// googleapi.IsNotModified to check whether the returned error was
95732// because http.StatusNotModified was returned.
95733func (c *SubnetworksListCall) Do(opts ...googleapi.CallOption) (*SubnetworkList, error) {
95734	gensupport.SetOptions(c.urlParams_, opts...)
95735	res, err := c.doRequest("json")
95736	if res != nil && res.StatusCode == http.StatusNotModified {
95737		if res.Body != nil {
95738			res.Body.Close()
95739		}
95740		return nil, &googleapi.Error{
95741			Code:   res.StatusCode,
95742			Header: res.Header,
95743		}
95744	}
95745	if err != nil {
95746		return nil, err
95747	}
95748	defer googleapi.CloseBody(res)
95749	if err := googleapi.CheckResponse(res); err != nil {
95750		return nil, err
95751	}
95752	ret := &SubnetworkList{
95753		ServerResponse: googleapi.ServerResponse{
95754			Header:         res.Header,
95755			HTTPStatusCode: res.StatusCode,
95756		},
95757	}
95758	target := &ret
95759	if err := gensupport.DecodeResponse(target, res); err != nil {
95760		return nil, err
95761	}
95762	return ret, nil
95763	// {
95764	//   "description": "Retrieves a list of subnetworks available to the specified project.",
95765	//   "httpMethod": "GET",
95766	//   "id": "compute.subnetworks.list",
95767	//   "parameterOrder": [
95768	//     "project",
95769	//     "region"
95770	//   ],
95771	//   "parameters": {
95772	//     "filter": {
95773	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
95774	//       "location": "query",
95775	//       "type": "string"
95776	//     },
95777	//     "maxResults": {
95778	//       "default": "500",
95779	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
95780	//       "format": "uint32",
95781	//       "location": "query",
95782	//       "minimum": "0",
95783	//       "type": "integer"
95784	//     },
95785	//     "orderBy": {
95786	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
95787	//       "location": "query",
95788	//       "type": "string"
95789	//     },
95790	//     "pageToken": {
95791	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
95792	//       "location": "query",
95793	//       "type": "string"
95794	//     },
95795	//     "project": {
95796	//       "description": "Project ID for this request.",
95797	//       "location": "path",
95798	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95799	//       "required": true,
95800	//       "type": "string"
95801	//     },
95802	//     "region": {
95803	//       "description": "Name of the region scoping this request.",
95804	//       "location": "path",
95805	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95806	//       "required": true,
95807	//       "type": "string"
95808	//     }
95809	//   },
95810	//   "path": "{project}/regions/{region}/subnetworks",
95811	//   "response": {
95812	//     "$ref": "SubnetworkList"
95813	//   },
95814	//   "scopes": [
95815	//     "https://www.googleapis.com/auth/cloud-platform",
95816	//     "https://www.googleapis.com/auth/compute",
95817	//     "https://www.googleapis.com/auth/compute.readonly"
95818	//   ]
95819	// }
95820
95821}
95822
95823// Pages invokes f for each page of results.
95824// A non-nil error returned from f will halt the iteration.
95825// The provided context supersedes any context provided to the Context method.
95826func (c *SubnetworksListCall) Pages(ctx context.Context, f func(*SubnetworkList) error) error {
95827	c.ctx_ = ctx
95828	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
95829	for {
95830		x, err := c.Do()
95831		if err != nil {
95832			return err
95833		}
95834		if err := f(x); err != nil {
95835			return err
95836		}
95837		if x.NextPageToken == "" {
95838			return nil
95839		}
95840		c.PageToken(x.NextPageToken)
95841	}
95842}
95843
95844// method id "compute.subnetworks.listUsable":
95845
95846type SubnetworksListUsableCall struct {
95847	s            *Service
95848	project      string
95849	urlParams_   gensupport.URLParams
95850	ifNoneMatch_ string
95851	ctx_         context.Context
95852	header_      http.Header
95853}
95854
95855// ListUsable: Retrieves an aggregated list of usable subnetworks.
95856func (r *SubnetworksService) ListUsable(project string) *SubnetworksListUsableCall {
95857	c := &SubnetworksListUsableCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95858	c.project = project
95859	return c
95860}
95861
95862// Filter sets the optional parameter "filter": A filter expression that
95863// filters resources listed in the response. The expression must specify
95864// the field name, a comparison operator, and the value that you want to
95865// use for filtering. The value must be a string, a number, or a
95866// boolean. The comparison operator must be either =, !=, >, or <.
95867//
95868// For example, if you are filtering Compute Engine instances, you can
95869// exclude instances named example-instance by specifying name !=
95870// example-instance.
95871//
95872// You can also filter nested fields. For example, you could specify
95873// scheduling.automaticRestart = false to include instances only if they
95874// are not scheduled for automatic restarts. You can use filtering on
95875// nested fields to filter based on resource labels.
95876//
95877// To filter on multiple expressions, provide each separate expression
95878// within parentheses. For example, (scheduling.automaticRestart = true)
95879// (cpuPlatform = "Intel Skylake"). By default, each expression is an
95880// AND expression. However, you can include AND and OR expressions
95881// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
95882// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
95883// true).
95884func (c *SubnetworksListUsableCall) Filter(filter string) *SubnetworksListUsableCall {
95885	c.urlParams_.Set("filter", filter)
95886	return c
95887}
95888
95889// MaxResults sets the optional parameter "maxResults": The maximum
95890// number of results per page that should be returned. If the number of
95891// available results is larger than maxResults, Compute Engine returns a
95892// nextPageToken that can be used to get the next page of results in
95893// subsequent list requests. Acceptable values are 0 to 500, inclusive.
95894// (Default: 500)
95895func (c *SubnetworksListUsableCall) MaxResults(maxResults int64) *SubnetworksListUsableCall {
95896	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
95897	return c
95898}
95899
95900// OrderBy sets the optional parameter "orderBy": Sorts list results by
95901// a certain order. By default, results are returned in alphanumerical
95902// order based on the resource name.
95903//
95904// You can also sort results in descending order based on the creation
95905// timestamp using orderBy="creationTimestamp desc". This sorts results
95906// based on the creationTimestamp field in reverse chronological order
95907// (newest result first). Use this to sort resources like operations so
95908// that the newest operation is returned first.
95909//
95910// Currently, only sorting by name or creationTimestamp desc is
95911// supported.
95912func (c *SubnetworksListUsableCall) OrderBy(orderBy string) *SubnetworksListUsableCall {
95913	c.urlParams_.Set("orderBy", orderBy)
95914	return c
95915}
95916
95917// PageToken sets the optional parameter "pageToken": Specifies a page
95918// token to use. Set pageToken to the nextPageToken returned by a
95919// previous list request to get the next page of results.
95920func (c *SubnetworksListUsableCall) PageToken(pageToken string) *SubnetworksListUsableCall {
95921	c.urlParams_.Set("pageToken", pageToken)
95922	return c
95923}
95924
95925// Fields allows partial responses to be retrieved. See
95926// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95927// for more information.
95928func (c *SubnetworksListUsableCall) Fields(s ...googleapi.Field) *SubnetworksListUsableCall {
95929	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95930	return c
95931}
95932
95933// IfNoneMatch sets the optional parameter which makes the operation
95934// fail if the object's ETag matches the given value. This is useful for
95935// getting updates only after the object has changed since the last
95936// request. Use googleapi.IsNotModified to check whether the response
95937// error from Do is the result of In-None-Match.
95938func (c *SubnetworksListUsableCall) IfNoneMatch(entityTag string) *SubnetworksListUsableCall {
95939	c.ifNoneMatch_ = entityTag
95940	return c
95941}
95942
95943// Context sets the context to be used in this call's Do method. Any
95944// pending HTTP request will be aborted if the provided context is
95945// canceled.
95946func (c *SubnetworksListUsableCall) Context(ctx context.Context) *SubnetworksListUsableCall {
95947	c.ctx_ = ctx
95948	return c
95949}
95950
95951// Header returns an http.Header that can be modified by the caller to
95952// add HTTP headers to the request.
95953func (c *SubnetworksListUsableCall) Header() http.Header {
95954	if c.header_ == nil {
95955		c.header_ = make(http.Header)
95956	}
95957	return c.header_
95958}
95959
95960func (c *SubnetworksListUsableCall) doRequest(alt string) (*http.Response, error) {
95961	reqHeaders := make(http.Header)
95962	for k, v := range c.header_ {
95963		reqHeaders[k] = v
95964	}
95965	reqHeaders.Set("User-Agent", c.s.userAgent())
95966	if c.ifNoneMatch_ != "" {
95967		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
95968	}
95969	var body io.Reader = nil
95970	c.urlParams_.Set("alt", alt)
95971	c.urlParams_.Set("prettyPrint", "false")
95972	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/subnetworks/listUsable")
95973	urls += "?" + c.urlParams_.Encode()
95974	req, err := http.NewRequest("GET", urls, body)
95975	if err != nil {
95976		return nil, err
95977	}
95978	req.Header = reqHeaders
95979	googleapi.Expand(req.URL, map[string]string{
95980		"project": c.project,
95981	})
95982	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95983}
95984
95985// Do executes the "compute.subnetworks.listUsable" call.
95986// Exactly one of *UsableSubnetworksAggregatedList or error will be
95987// non-nil. Any non-2xx status code is an error. Response headers are in
95988// either *UsableSubnetworksAggregatedList.ServerResponse.Header or (if
95989// a response was returned at all) in error.(*googleapi.Error).Header.
95990// Use googleapi.IsNotModified to check whether the returned error was
95991// because http.StatusNotModified was returned.
95992func (c *SubnetworksListUsableCall) Do(opts ...googleapi.CallOption) (*UsableSubnetworksAggregatedList, error) {
95993	gensupport.SetOptions(c.urlParams_, opts...)
95994	res, err := c.doRequest("json")
95995	if res != nil && res.StatusCode == http.StatusNotModified {
95996		if res.Body != nil {
95997			res.Body.Close()
95998		}
95999		return nil, &googleapi.Error{
96000			Code:   res.StatusCode,
96001			Header: res.Header,
96002		}
96003	}
96004	if err != nil {
96005		return nil, err
96006	}
96007	defer googleapi.CloseBody(res)
96008	if err := googleapi.CheckResponse(res); err != nil {
96009		return nil, err
96010	}
96011	ret := &UsableSubnetworksAggregatedList{
96012		ServerResponse: googleapi.ServerResponse{
96013			Header:         res.Header,
96014			HTTPStatusCode: res.StatusCode,
96015		},
96016	}
96017	target := &ret
96018	if err := gensupport.DecodeResponse(target, res); err != nil {
96019		return nil, err
96020	}
96021	return ret, nil
96022	// {
96023	//   "description": "Retrieves an aggregated list of usable subnetworks.",
96024	//   "httpMethod": "GET",
96025	//   "id": "compute.subnetworks.listUsable",
96026	//   "parameterOrder": [
96027	//     "project"
96028	//   ],
96029	//   "parameters": {
96030	//     "filter": {
96031	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
96032	//       "location": "query",
96033	//       "type": "string"
96034	//     },
96035	//     "maxResults": {
96036	//       "default": "500",
96037	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
96038	//       "format": "uint32",
96039	//       "location": "query",
96040	//       "minimum": "0",
96041	//       "type": "integer"
96042	//     },
96043	//     "orderBy": {
96044	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
96045	//       "location": "query",
96046	//       "type": "string"
96047	//     },
96048	//     "pageToken": {
96049	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
96050	//       "location": "query",
96051	//       "type": "string"
96052	//     },
96053	//     "project": {
96054	//       "description": "Project ID for this request.",
96055	//       "location": "path",
96056	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96057	//       "required": true,
96058	//       "type": "string"
96059	//     }
96060	//   },
96061	//   "path": "{project}/aggregated/subnetworks/listUsable",
96062	//   "response": {
96063	//     "$ref": "UsableSubnetworksAggregatedList"
96064	//   },
96065	//   "scopes": [
96066	//     "https://www.googleapis.com/auth/cloud-platform",
96067	//     "https://www.googleapis.com/auth/compute",
96068	//     "https://www.googleapis.com/auth/compute.readonly"
96069	//   ]
96070	// }
96071
96072}
96073
96074// Pages invokes f for each page of results.
96075// A non-nil error returned from f will halt the iteration.
96076// The provided context supersedes any context provided to the Context method.
96077func (c *SubnetworksListUsableCall) Pages(ctx context.Context, f func(*UsableSubnetworksAggregatedList) error) error {
96078	c.ctx_ = ctx
96079	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
96080	for {
96081		x, err := c.Do()
96082		if err != nil {
96083			return err
96084		}
96085		if err := f(x); err != nil {
96086			return err
96087		}
96088		if x.NextPageToken == "" {
96089			return nil
96090		}
96091		c.PageToken(x.NextPageToken)
96092	}
96093}
96094
96095// method id "compute.subnetworks.patch":
96096
96097type SubnetworksPatchCall struct {
96098	s           *Service
96099	project     string
96100	region      string
96101	subnetwork  string
96102	subnetwork2 *Subnetwork
96103	urlParams_  gensupport.URLParams
96104	ctx_        context.Context
96105	header_     http.Header
96106}
96107
96108// Patch: Patches the specified subnetwork with the data included in the
96109// request. Only certain fields can up updated with a patch request as
96110// indicated in the field descriptions. You must specify the current
96111// fingeprint of the subnetwork resource being patched.
96112func (r *SubnetworksService) Patch(project string, region string, subnetwork string, subnetwork2 *Subnetwork) *SubnetworksPatchCall {
96113	c := &SubnetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96114	c.project = project
96115	c.region = region
96116	c.subnetwork = subnetwork
96117	c.subnetwork2 = subnetwork2
96118	return c
96119}
96120
96121// RequestId sets the optional parameter "requestId": An optional
96122// request ID to identify requests. Specify a unique request ID so that
96123// if you must retry your request, the server will know to ignore the
96124// request if it has already been completed.
96125//
96126// For example, consider a situation where you make an initial request
96127// and the request times out. If you make the request again with the
96128// same request ID, the server can check if original operation with the
96129// same request ID was received, and if so, will ignore the second
96130// request. This prevents clients from accidentally creating duplicate
96131// commitments.
96132//
96133// The request ID must be a valid UUID with the exception that zero UUID
96134// is not supported (00000000-0000-0000-0000-000000000000).
96135func (c *SubnetworksPatchCall) RequestId(requestId string) *SubnetworksPatchCall {
96136	c.urlParams_.Set("requestId", requestId)
96137	return c
96138}
96139
96140// Fields allows partial responses to be retrieved. See
96141// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96142// for more information.
96143func (c *SubnetworksPatchCall) Fields(s ...googleapi.Field) *SubnetworksPatchCall {
96144	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96145	return c
96146}
96147
96148// Context sets the context to be used in this call's Do method. Any
96149// pending HTTP request will be aborted if the provided context is
96150// canceled.
96151func (c *SubnetworksPatchCall) Context(ctx context.Context) *SubnetworksPatchCall {
96152	c.ctx_ = ctx
96153	return c
96154}
96155
96156// Header returns an http.Header that can be modified by the caller to
96157// add HTTP headers to the request.
96158func (c *SubnetworksPatchCall) Header() http.Header {
96159	if c.header_ == nil {
96160		c.header_ = make(http.Header)
96161	}
96162	return c.header_
96163}
96164
96165func (c *SubnetworksPatchCall) doRequest(alt string) (*http.Response, error) {
96166	reqHeaders := make(http.Header)
96167	for k, v := range c.header_ {
96168		reqHeaders[k] = v
96169	}
96170	reqHeaders.Set("User-Agent", c.s.userAgent())
96171	var body io.Reader = nil
96172	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork2)
96173	if err != nil {
96174		return nil, err
96175	}
96176	reqHeaders.Set("Content-Type", "application/json")
96177	c.urlParams_.Set("alt", alt)
96178	c.urlParams_.Set("prettyPrint", "false")
96179	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
96180	urls += "?" + c.urlParams_.Encode()
96181	req, err := http.NewRequest("PATCH", urls, body)
96182	if err != nil {
96183		return nil, err
96184	}
96185	req.Header = reqHeaders
96186	googleapi.Expand(req.URL, map[string]string{
96187		"project":    c.project,
96188		"region":     c.region,
96189		"subnetwork": c.subnetwork,
96190	})
96191	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96192}
96193
96194// Do executes the "compute.subnetworks.patch" call.
96195// Exactly one of *Operation or error will be non-nil. Any non-2xx
96196// status code is an error. Response headers are in either
96197// *Operation.ServerResponse.Header or (if a response was returned at
96198// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96199// to check whether the returned error was because
96200// http.StatusNotModified was returned.
96201func (c *SubnetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96202	gensupport.SetOptions(c.urlParams_, opts...)
96203	res, err := c.doRequest("json")
96204	if res != nil && res.StatusCode == http.StatusNotModified {
96205		if res.Body != nil {
96206			res.Body.Close()
96207		}
96208		return nil, &googleapi.Error{
96209			Code:   res.StatusCode,
96210			Header: res.Header,
96211		}
96212	}
96213	if err != nil {
96214		return nil, err
96215	}
96216	defer googleapi.CloseBody(res)
96217	if err := googleapi.CheckResponse(res); err != nil {
96218		return nil, err
96219	}
96220	ret := &Operation{
96221		ServerResponse: googleapi.ServerResponse{
96222			Header:         res.Header,
96223			HTTPStatusCode: res.StatusCode,
96224		},
96225	}
96226	target := &ret
96227	if err := gensupport.DecodeResponse(target, res); err != nil {
96228		return nil, err
96229	}
96230	return ret, nil
96231	// {
96232	//   "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.",
96233	//   "httpMethod": "PATCH",
96234	//   "id": "compute.subnetworks.patch",
96235	//   "parameterOrder": [
96236	//     "project",
96237	//     "region",
96238	//     "subnetwork"
96239	//   ],
96240	//   "parameters": {
96241	//     "project": {
96242	//       "description": "Project ID for this request.",
96243	//       "location": "path",
96244	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96245	//       "required": true,
96246	//       "type": "string"
96247	//     },
96248	//     "region": {
96249	//       "description": "Name of the region scoping this request.",
96250	//       "location": "path",
96251	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96252	//       "required": true,
96253	//       "type": "string"
96254	//     },
96255	//     "requestId": {
96256	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96257	//       "location": "query",
96258	//       "type": "string"
96259	//     },
96260	//     "subnetwork": {
96261	//       "description": "Name of the Subnetwork resource to patch.",
96262	//       "location": "path",
96263	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96264	//       "required": true,
96265	//       "type": "string"
96266	//     }
96267	//   },
96268	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
96269	//   "request": {
96270	//     "$ref": "Subnetwork"
96271	//   },
96272	//   "response": {
96273	//     "$ref": "Operation"
96274	//   },
96275	//   "scopes": [
96276	//     "https://www.googleapis.com/auth/cloud-platform",
96277	//     "https://www.googleapis.com/auth/compute"
96278	//   ]
96279	// }
96280
96281}
96282
96283// method id "compute.subnetworks.setIamPolicy":
96284
96285type SubnetworksSetIamPolicyCall struct {
96286	s                      *Service
96287	project                string
96288	region                 string
96289	resource               string
96290	regionsetpolicyrequest *RegionSetPolicyRequest
96291	urlParams_             gensupport.URLParams
96292	ctx_                   context.Context
96293	header_                http.Header
96294}
96295
96296// SetIamPolicy: Sets the access control policy on the specified
96297// resource. Replaces any existing policy.
96298func (r *SubnetworksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *SubnetworksSetIamPolicyCall {
96299	c := &SubnetworksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96300	c.project = project
96301	c.region = region
96302	c.resource = resource
96303	c.regionsetpolicyrequest = regionsetpolicyrequest
96304	return c
96305}
96306
96307// Fields allows partial responses to be retrieved. See
96308// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96309// for more information.
96310func (c *SubnetworksSetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksSetIamPolicyCall {
96311	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96312	return c
96313}
96314
96315// Context sets the context to be used in this call's Do method. Any
96316// pending HTTP request will be aborted if the provided context is
96317// canceled.
96318func (c *SubnetworksSetIamPolicyCall) Context(ctx context.Context) *SubnetworksSetIamPolicyCall {
96319	c.ctx_ = ctx
96320	return c
96321}
96322
96323// Header returns an http.Header that can be modified by the caller to
96324// add HTTP headers to the request.
96325func (c *SubnetworksSetIamPolicyCall) Header() http.Header {
96326	if c.header_ == nil {
96327		c.header_ = make(http.Header)
96328	}
96329	return c.header_
96330}
96331
96332func (c *SubnetworksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
96333	reqHeaders := make(http.Header)
96334	for k, v := range c.header_ {
96335		reqHeaders[k] = v
96336	}
96337	reqHeaders.Set("User-Agent", c.s.userAgent())
96338	var body io.Reader = nil
96339	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
96340	if err != nil {
96341		return nil, err
96342	}
96343	reqHeaders.Set("Content-Type", "application/json")
96344	c.urlParams_.Set("alt", alt)
96345	c.urlParams_.Set("prettyPrint", "false")
96346	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/setIamPolicy")
96347	urls += "?" + c.urlParams_.Encode()
96348	req, err := http.NewRequest("POST", urls, body)
96349	if err != nil {
96350		return nil, err
96351	}
96352	req.Header = reqHeaders
96353	googleapi.Expand(req.URL, map[string]string{
96354		"project":  c.project,
96355		"region":   c.region,
96356		"resource": c.resource,
96357	})
96358	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96359}
96360
96361// Do executes the "compute.subnetworks.setIamPolicy" call.
96362// Exactly one of *Policy or error will be non-nil. Any non-2xx status
96363// code is an error. Response headers are in either
96364// *Policy.ServerResponse.Header or (if a response was returned at all)
96365// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
96366// check whether the returned error was because http.StatusNotModified
96367// was returned.
96368func (c *SubnetworksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
96369	gensupport.SetOptions(c.urlParams_, opts...)
96370	res, err := c.doRequest("json")
96371	if res != nil && res.StatusCode == http.StatusNotModified {
96372		if res.Body != nil {
96373			res.Body.Close()
96374		}
96375		return nil, &googleapi.Error{
96376			Code:   res.StatusCode,
96377			Header: res.Header,
96378		}
96379	}
96380	if err != nil {
96381		return nil, err
96382	}
96383	defer googleapi.CloseBody(res)
96384	if err := googleapi.CheckResponse(res); err != nil {
96385		return nil, err
96386	}
96387	ret := &Policy{
96388		ServerResponse: googleapi.ServerResponse{
96389			Header:         res.Header,
96390			HTTPStatusCode: res.StatusCode,
96391		},
96392	}
96393	target := &ret
96394	if err := gensupport.DecodeResponse(target, res); err != nil {
96395		return nil, err
96396	}
96397	return ret, nil
96398	// {
96399	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
96400	//   "httpMethod": "POST",
96401	//   "id": "compute.subnetworks.setIamPolicy",
96402	//   "parameterOrder": [
96403	//     "project",
96404	//     "region",
96405	//     "resource"
96406	//   ],
96407	//   "parameters": {
96408	//     "project": {
96409	//       "description": "Project ID for this request.",
96410	//       "location": "path",
96411	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96412	//       "required": true,
96413	//       "type": "string"
96414	//     },
96415	//     "region": {
96416	//       "description": "The name of the region for this request.",
96417	//       "location": "path",
96418	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96419	//       "required": true,
96420	//       "type": "string"
96421	//     },
96422	//     "resource": {
96423	//       "description": "Name or id of the resource for this request.",
96424	//       "location": "path",
96425	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96426	//       "required": true,
96427	//       "type": "string"
96428	//     }
96429	//   },
96430	//   "path": "{project}/regions/{region}/subnetworks/{resource}/setIamPolicy",
96431	//   "request": {
96432	//     "$ref": "RegionSetPolicyRequest"
96433	//   },
96434	//   "response": {
96435	//     "$ref": "Policy"
96436	//   },
96437	//   "scopes": [
96438	//     "https://www.googleapis.com/auth/cloud-platform",
96439	//     "https://www.googleapis.com/auth/compute"
96440	//   ]
96441	// }
96442
96443}
96444
96445// method id "compute.subnetworks.setPrivateIpGoogleAccess":
96446
96447type SubnetworksSetPrivateIpGoogleAccessCall struct {
96448	s                                          *Service
96449	project                                    string
96450	region                                     string
96451	subnetwork                                 string
96452	subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest
96453	urlParams_                                 gensupport.URLParams
96454	ctx_                                       context.Context
96455	header_                                    http.Header
96456}
96457
96458// SetPrivateIpGoogleAccess: Set whether VMs in this subnet can access
96459// Google services without assigning external IP addresses through
96460// Private Google Access.
96461func (r *SubnetworksService) SetPrivateIpGoogleAccess(project string, region string, subnetwork string, subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest) *SubnetworksSetPrivateIpGoogleAccessCall {
96462	c := &SubnetworksSetPrivateIpGoogleAccessCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96463	c.project = project
96464	c.region = region
96465	c.subnetwork = subnetwork
96466	c.subnetworkssetprivateipgoogleaccessrequest = subnetworkssetprivateipgoogleaccessrequest
96467	return c
96468}
96469
96470// RequestId sets the optional parameter "requestId": An optional
96471// request ID to identify requests. Specify a unique request ID so that
96472// if you must retry your request, the server will know to ignore the
96473// request if it has already been completed.
96474//
96475// For example, consider a situation where you make an initial request
96476// and the request times out. If you make the request again with the
96477// same request ID, the server can check if original operation with the
96478// same request ID was received, and if so, will ignore the second
96479// request. This prevents clients from accidentally creating duplicate
96480// commitments.
96481//
96482// The request ID must be a valid UUID with the exception that zero UUID
96483// is not supported (00000000-0000-0000-0000-000000000000).
96484func (c *SubnetworksSetPrivateIpGoogleAccessCall) RequestId(requestId string) *SubnetworksSetPrivateIpGoogleAccessCall {
96485	c.urlParams_.Set("requestId", requestId)
96486	return c
96487}
96488
96489// Fields allows partial responses to be retrieved. See
96490// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96491// for more information.
96492func (c *SubnetworksSetPrivateIpGoogleAccessCall) Fields(s ...googleapi.Field) *SubnetworksSetPrivateIpGoogleAccessCall {
96493	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96494	return c
96495}
96496
96497// Context sets the context to be used in this call's Do method. Any
96498// pending HTTP request will be aborted if the provided context is
96499// canceled.
96500func (c *SubnetworksSetPrivateIpGoogleAccessCall) Context(ctx context.Context) *SubnetworksSetPrivateIpGoogleAccessCall {
96501	c.ctx_ = ctx
96502	return c
96503}
96504
96505// Header returns an http.Header that can be modified by the caller to
96506// add HTTP headers to the request.
96507func (c *SubnetworksSetPrivateIpGoogleAccessCall) Header() http.Header {
96508	if c.header_ == nil {
96509		c.header_ = make(http.Header)
96510	}
96511	return c.header_
96512}
96513
96514func (c *SubnetworksSetPrivateIpGoogleAccessCall) doRequest(alt string) (*http.Response, error) {
96515	reqHeaders := make(http.Header)
96516	for k, v := range c.header_ {
96517		reqHeaders[k] = v
96518	}
96519	reqHeaders.Set("User-Agent", c.s.userAgent())
96520	var body io.Reader = nil
96521	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworkssetprivateipgoogleaccessrequest)
96522	if err != nil {
96523		return nil, err
96524	}
96525	reqHeaders.Set("Content-Type", "application/json")
96526	c.urlParams_.Set("alt", alt)
96527	c.urlParams_.Set("prettyPrint", "false")
96528	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess")
96529	urls += "?" + c.urlParams_.Encode()
96530	req, err := http.NewRequest("POST", urls, body)
96531	if err != nil {
96532		return nil, err
96533	}
96534	req.Header = reqHeaders
96535	googleapi.Expand(req.URL, map[string]string{
96536		"project":    c.project,
96537		"region":     c.region,
96538		"subnetwork": c.subnetwork,
96539	})
96540	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96541}
96542
96543// Do executes the "compute.subnetworks.setPrivateIpGoogleAccess" call.
96544// Exactly one of *Operation or error will be non-nil. Any non-2xx
96545// status code is an error. Response headers are in either
96546// *Operation.ServerResponse.Header or (if a response was returned at
96547// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96548// to check whether the returned error was because
96549// http.StatusNotModified was returned.
96550func (c *SubnetworksSetPrivateIpGoogleAccessCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96551	gensupport.SetOptions(c.urlParams_, opts...)
96552	res, err := c.doRequest("json")
96553	if res != nil && res.StatusCode == http.StatusNotModified {
96554		if res.Body != nil {
96555			res.Body.Close()
96556		}
96557		return nil, &googleapi.Error{
96558			Code:   res.StatusCode,
96559			Header: res.Header,
96560		}
96561	}
96562	if err != nil {
96563		return nil, err
96564	}
96565	defer googleapi.CloseBody(res)
96566	if err := googleapi.CheckResponse(res); err != nil {
96567		return nil, err
96568	}
96569	ret := &Operation{
96570		ServerResponse: googleapi.ServerResponse{
96571			Header:         res.Header,
96572			HTTPStatusCode: res.StatusCode,
96573		},
96574	}
96575	target := &ret
96576	if err := gensupport.DecodeResponse(target, res); err != nil {
96577		return nil, err
96578	}
96579	return ret, nil
96580	// {
96581	//   "description": "Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.",
96582	//   "httpMethod": "POST",
96583	//   "id": "compute.subnetworks.setPrivateIpGoogleAccess",
96584	//   "parameterOrder": [
96585	//     "project",
96586	//     "region",
96587	//     "subnetwork"
96588	//   ],
96589	//   "parameters": {
96590	//     "project": {
96591	//       "description": "Project ID for this request.",
96592	//       "location": "path",
96593	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96594	//       "required": true,
96595	//       "type": "string"
96596	//     },
96597	//     "region": {
96598	//       "description": "Name of the region scoping this request.",
96599	//       "location": "path",
96600	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96601	//       "required": true,
96602	//       "type": "string"
96603	//     },
96604	//     "requestId": {
96605	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96606	//       "location": "query",
96607	//       "type": "string"
96608	//     },
96609	//     "subnetwork": {
96610	//       "description": "Name of the Subnetwork resource.",
96611	//       "location": "path",
96612	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96613	//       "required": true,
96614	//       "type": "string"
96615	//     }
96616	//   },
96617	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess",
96618	//   "request": {
96619	//     "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest"
96620	//   },
96621	//   "response": {
96622	//     "$ref": "Operation"
96623	//   },
96624	//   "scopes": [
96625	//     "https://www.googleapis.com/auth/cloud-platform",
96626	//     "https://www.googleapis.com/auth/compute"
96627	//   ]
96628	// }
96629
96630}
96631
96632// method id "compute.subnetworks.testIamPermissions":
96633
96634type SubnetworksTestIamPermissionsCall struct {
96635	s                      *Service
96636	project                string
96637	region                 string
96638	resource               string
96639	testpermissionsrequest *TestPermissionsRequest
96640	urlParams_             gensupport.URLParams
96641	ctx_                   context.Context
96642	header_                http.Header
96643}
96644
96645// TestIamPermissions: Returns permissions that a caller has on the
96646// specified resource.
96647func (r *SubnetworksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *SubnetworksTestIamPermissionsCall {
96648	c := &SubnetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96649	c.project = project
96650	c.region = region
96651	c.resource = resource
96652	c.testpermissionsrequest = testpermissionsrequest
96653	return c
96654}
96655
96656// Fields allows partial responses to be retrieved. See
96657// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96658// for more information.
96659func (c *SubnetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *SubnetworksTestIamPermissionsCall {
96660	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96661	return c
96662}
96663
96664// Context sets the context to be used in this call's Do method. Any
96665// pending HTTP request will be aborted if the provided context is
96666// canceled.
96667func (c *SubnetworksTestIamPermissionsCall) Context(ctx context.Context) *SubnetworksTestIamPermissionsCall {
96668	c.ctx_ = ctx
96669	return c
96670}
96671
96672// Header returns an http.Header that can be modified by the caller to
96673// add HTTP headers to the request.
96674func (c *SubnetworksTestIamPermissionsCall) Header() http.Header {
96675	if c.header_ == nil {
96676		c.header_ = make(http.Header)
96677	}
96678	return c.header_
96679}
96680
96681func (c *SubnetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
96682	reqHeaders := make(http.Header)
96683	for k, v := range c.header_ {
96684		reqHeaders[k] = v
96685	}
96686	reqHeaders.Set("User-Agent", c.s.userAgent())
96687	var body io.Reader = nil
96688	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
96689	if err != nil {
96690		return nil, err
96691	}
96692	reqHeaders.Set("Content-Type", "application/json")
96693	c.urlParams_.Set("alt", alt)
96694	c.urlParams_.Set("prettyPrint", "false")
96695	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/testIamPermissions")
96696	urls += "?" + c.urlParams_.Encode()
96697	req, err := http.NewRequest("POST", urls, body)
96698	if err != nil {
96699		return nil, err
96700	}
96701	req.Header = reqHeaders
96702	googleapi.Expand(req.URL, map[string]string{
96703		"project":  c.project,
96704		"region":   c.region,
96705		"resource": c.resource,
96706	})
96707	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96708}
96709
96710// Do executes the "compute.subnetworks.testIamPermissions" call.
96711// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
96712// non-2xx status code is an error. Response headers are in either
96713// *TestPermissionsResponse.ServerResponse.Header or (if a response was
96714// returned at all) in error.(*googleapi.Error).Header. Use
96715// googleapi.IsNotModified to check whether the returned error was
96716// because http.StatusNotModified was returned.
96717func (c *SubnetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
96718	gensupport.SetOptions(c.urlParams_, opts...)
96719	res, err := c.doRequest("json")
96720	if res != nil && res.StatusCode == http.StatusNotModified {
96721		if res.Body != nil {
96722			res.Body.Close()
96723		}
96724		return nil, &googleapi.Error{
96725			Code:   res.StatusCode,
96726			Header: res.Header,
96727		}
96728	}
96729	if err != nil {
96730		return nil, err
96731	}
96732	defer googleapi.CloseBody(res)
96733	if err := googleapi.CheckResponse(res); err != nil {
96734		return nil, err
96735	}
96736	ret := &TestPermissionsResponse{
96737		ServerResponse: googleapi.ServerResponse{
96738			Header:         res.Header,
96739			HTTPStatusCode: res.StatusCode,
96740		},
96741	}
96742	target := &ret
96743	if err := gensupport.DecodeResponse(target, res); err != nil {
96744		return nil, err
96745	}
96746	return ret, nil
96747	// {
96748	//   "description": "Returns permissions that a caller has on the specified resource.",
96749	//   "httpMethod": "POST",
96750	//   "id": "compute.subnetworks.testIamPermissions",
96751	//   "parameterOrder": [
96752	//     "project",
96753	//     "region",
96754	//     "resource"
96755	//   ],
96756	//   "parameters": {
96757	//     "project": {
96758	//       "description": "Project ID for this request.",
96759	//       "location": "path",
96760	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96761	//       "required": true,
96762	//       "type": "string"
96763	//     },
96764	//     "region": {
96765	//       "description": "The name of the region for this request.",
96766	//       "location": "path",
96767	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96768	//       "required": true,
96769	//       "type": "string"
96770	//     },
96771	//     "resource": {
96772	//       "description": "Name or id of the resource for this request.",
96773	//       "location": "path",
96774	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96775	//       "required": true,
96776	//       "type": "string"
96777	//     }
96778	//   },
96779	//   "path": "{project}/regions/{region}/subnetworks/{resource}/testIamPermissions",
96780	//   "request": {
96781	//     "$ref": "TestPermissionsRequest"
96782	//   },
96783	//   "response": {
96784	//     "$ref": "TestPermissionsResponse"
96785	//   },
96786	//   "scopes": [
96787	//     "https://www.googleapis.com/auth/cloud-platform",
96788	//     "https://www.googleapis.com/auth/compute",
96789	//     "https://www.googleapis.com/auth/compute.readonly"
96790	//   ]
96791	// }
96792
96793}
96794
96795// method id "compute.targetHttpProxies.delete":
96796
96797type TargetHttpProxiesDeleteCall struct {
96798	s               *Service
96799	project         string
96800	targetHttpProxy string
96801	urlParams_      gensupport.URLParams
96802	ctx_            context.Context
96803	header_         http.Header
96804}
96805
96806// Delete: Deletes the specified TargetHttpProxy resource.
96807// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/delete
96808func (r *TargetHttpProxiesService) Delete(project string, targetHttpProxy string) *TargetHttpProxiesDeleteCall {
96809	c := &TargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96810	c.project = project
96811	c.targetHttpProxy = targetHttpProxy
96812	return c
96813}
96814
96815// RequestId sets the optional parameter "requestId": An optional
96816// request ID to identify requests. Specify a unique request ID so that
96817// if you must retry your request, the server will know to ignore the
96818// request if it has already been completed.
96819//
96820// For example, consider a situation where you make an initial request
96821// and the request times out. If you make the request again with the
96822// same request ID, the server can check if original operation with the
96823// same request ID was received, and if so, will ignore the second
96824// request. This prevents clients from accidentally creating duplicate
96825// commitments.
96826//
96827// The request ID must be a valid UUID with the exception that zero UUID
96828// is not supported (00000000-0000-0000-0000-000000000000).
96829func (c *TargetHttpProxiesDeleteCall) RequestId(requestId string) *TargetHttpProxiesDeleteCall {
96830	c.urlParams_.Set("requestId", requestId)
96831	return c
96832}
96833
96834// Fields allows partial responses to be retrieved. See
96835// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96836// for more information.
96837func (c *TargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpProxiesDeleteCall {
96838	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96839	return c
96840}
96841
96842// Context sets the context to be used in this call's Do method. Any
96843// pending HTTP request will be aborted if the provided context is
96844// canceled.
96845func (c *TargetHttpProxiesDeleteCall) Context(ctx context.Context) *TargetHttpProxiesDeleteCall {
96846	c.ctx_ = ctx
96847	return c
96848}
96849
96850// Header returns an http.Header that can be modified by the caller to
96851// add HTTP headers to the request.
96852func (c *TargetHttpProxiesDeleteCall) Header() http.Header {
96853	if c.header_ == nil {
96854		c.header_ = make(http.Header)
96855	}
96856	return c.header_
96857}
96858
96859func (c *TargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
96860	reqHeaders := make(http.Header)
96861	for k, v := range c.header_ {
96862		reqHeaders[k] = v
96863	}
96864	reqHeaders.Set("User-Agent", c.s.userAgent())
96865	var body io.Reader = nil
96866	c.urlParams_.Set("alt", alt)
96867	c.urlParams_.Set("prettyPrint", "false")
96868	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{targetHttpProxy}")
96869	urls += "?" + c.urlParams_.Encode()
96870	req, err := http.NewRequest("DELETE", urls, body)
96871	if err != nil {
96872		return nil, err
96873	}
96874	req.Header = reqHeaders
96875	googleapi.Expand(req.URL, map[string]string{
96876		"project":         c.project,
96877		"targetHttpProxy": c.targetHttpProxy,
96878	})
96879	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96880}
96881
96882// Do executes the "compute.targetHttpProxies.delete" call.
96883// Exactly one of *Operation or error will be non-nil. Any non-2xx
96884// status code is an error. Response headers are in either
96885// *Operation.ServerResponse.Header or (if a response was returned at
96886// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96887// to check whether the returned error was because
96888// http.StatusNotModified was returned.
96889func (c *TargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96890	gensupport.SetOptions(c.urlParams_, opts...)
96891	res, err := c.doRequest("json")
96892	if res != nil && res.StatusCode == http.StatusNotModified {
96893		if res.Body != nil {
96894			res.Body.Close()
96895		}
96896		return nil, &googleapi.Error{
96897			Code:   res.StatusCode,
96898			Header: res.Header,
96899		}
96900	}
96901	if err != nil {
96902		return nil, err
96903	}
96904	defer googleapi.CloseBody(res)
96905	if err := googleapi.CheckResponse(res); err != nil {
96906		return nil, err
96907	}
96908	ret := &Operation{
96909		ServerResponse: googleapi.ServerResponse{
96910			Header:         res.Header,
96911			HTTPStatusCode: res.StatusCode,
96912		},
96913	}
96914	target := &ret
96915	if err := gensupport.DecodeResponse(target, res); err != nil {
96916		return nil, err
96917	}
96918	return ret, nil
96919	// {
96920	//   "description": "Deletes the specified TargetHttpProxy resource.",
96921	//   "httpMethod": "DELETE",
96922	//   "id": "compute.targetHttpProxies.delete",
96923	//   "parameterOrder": [
96924	//     "project",
96925	//     "targetHttpProxy"
96926	//   ],
96927	//   "parameters": {
96928	//     "project": {
96929	//       "description": "Project ID for this request.",
96930	//       "location": "path",
96931	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96932	//       "required": true,
96933	//       "type": "string"
96934	//     },
96935	//     "requestId": {
96936	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96937	//       "location": "query",
96938	//       "type": "string"
96939	//     },
96940	//     "targetHttpProxy": {
96941	//       "description": "Name of the TargetHttpProxy resource to delete.",
96942	//       "location": "path",
96943	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96944	//       "required": true,
96945	//       "type": "string"
96946	//     }
96947	//   },
96948	//   "path": "{project}/global/targetHttpProxies/{targetHttpProxy}",
96949	//   "response": {
96950	//     "$ref": "Operation"
96951	//   },
96952	//   "scopes": [
96953	//     "https://www.googleapis.com/auth/cloud-platform",
96954	//     "https://www.googleapis.com/auth/compute"
96955	//   ]
96956	// }
96957
96958}
96959
96960// method id "compute.targetHttpProxies.get":
96961
96962type TargetHttpProxiesGetCall struct {
96963	s               *Service
96964	project         string
96965	targetHttpProxy string
96966	urlParams_      gensupport.URLParams
96967	ifNoneMatch_    string
96968	ctx_            context.Context
96969	header_         http.Header
96970}
96971
96972// Get: Returns the specified TargetHttpProxy resource. Gets a list of
96973// available target HTTP proxies by making a list() request.
96974// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/get
96975func (r *TargetHttpProxiesService) Get(project string, targetHttpProxy string) *TargetHttpProxiesGetCall {
96976	c := &TargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96977	c.project = project
96978	c.targetHttpProxy = targetHttpProxy
96979	return c
96980}
96981
96982// Fields allows partial responses to be retrieved. See
96983// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96984// for more information.
96985func (c *TargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpProxiesGetCall {
96986	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96987	return c
96988}
96989
96990// IfNoneMatch sets the optional parameter which makes the operation
96991// fail if the object's ETag matches the given value. This is useful for
96992// getting updates only after the object has changed since the last
96993// request. Use googleapi.IsNotModified to check whether the response
96994// error from Do is the result of In-None-Match.
96995func (c *TargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpProxiesGetCall {
96996	c.ifNoneMatch_ = entityTag
96997	return c
96998}
96999
97000// Context sets the context to be used in this call's Do method. Any
97001// pending HTTP request will be aborted if the provided context is
97002// canceled.
97003func (c *TargetHttpProxiesGetCall) Context(ctx context.Context) *TargetHttpProxiesGetCall {
97004	c.ctx_ = ctx
97005	return c
97006}
97007
97008// Header returns an http.Header that can be modified by the caller to
97009// add HTTP headers to the request.
97010func (c *TargetHttpProxiesGetCall) Header() http.Header {
97011	if c.header_ == nil {
97012		c.header_ = make(http.Header)
97013	}
97014	return c.header_
97015}
97016
97017func (c *TargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
97018	reqHeaders := make(http.Header)
97019	for k, v := range c.header_ {
97020		reqHeaders[k] = v
97021	}
97022	reqHeaders.Set("User-Agent", c.s.userAgent())
97023	if c.ifNoneMatch_ != "" {
97024		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97025	}
97026	var body io.Reader = nil
97027	c.urlParams_.Set("alt", alt)
97028	c.urlParams_.Set("prettyPrint", "false")
97029	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{targetHttpProxy}")
97030	urls += "?" + c.urlParams_.Encode()
97031	req, err := http.NewRequest("GET", urls, body)
97032	if err != nil {
97033		return nil, err
97034	}
97035	req.Header = reqHeaders
97036	googleapi.Expand(req.URL, map[string]string{
97037		"project":         c.project,
97038		"targetHttpProxy": c.targetHttpProxy,
97039	})
97040	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97041}
97042
97043// Do executes the "compute.targetHttpProxies.get" call.
97044// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
97045// status code is an error. Response headers are in either
97046// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
97047// at all) in error.(*googleapi.Error).Header. Use
97048// googleapi.IsNotModified to check whether the returned error was
97049// because http.StatusNotModified was returned.
97050func (c *TargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
97051	gensupport.SetOptions(c.urlParams_, opts...)
97052	res, err := c.doRequest("json")
97053	if res != nil && res.StatusCode == http.StatusNotModified {
97054		if res.Body != nil {
97055			res.Body.Close()
97056		}
97057		return nil, &googleapi.Error{
97058			Code:   res.StatusCode,
97059			Header: res.Header,
97060		}
97061	}
97062	if err != nil {
97063		return nil, err
97064	}
97065	defer googleapi.CloseBody(res)
97066	if err := googleapi.CheckResponse(res); err != nil {
97067		return nil, err
97068	}
97069	ret := &TargetHttpProxy{
97070		ServerResponse: googleapi.ServerResponse{
97071			Header:         res.Header,
97072			HTTPStatusCode: res.StatusCode,
97073		},
97074	}
97075	target := &ret
97076	if err := gensupport.DecodeResponse(target, res); err != nil {
97077		return nil, err
97078	}
97079	return ret, nil
97080	// {
97081	//   "description": "Returns the specified TargetHttpProxy resource. Gets a list of available target HTTP proxies by making a list() request.",
97082	//   "httpMethod": "GET",
97083	//   "id": "compute.targetHttpProxies.get",
97084	//   "parameterOrder": [
97085	//     "project",
97086	//     "targetHttpProxy"
97087	//   ],
97088	//   "parameters": {
97089	//     "project": {
97090	//       "description": "Project ID for this request.",
97091	//       "location": "path",
97092	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97093	//       "required": true,
97094	//       "type": "string"
97095	//     },
97096	//     "targetHttpProxy": {
97097	//       "description": "Name of the TargetHttpProxy resource to return.",
97098	//       "location": "path",
97099	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97100	//       "required": true,
97101	//       "type": "string"
97102	//     }
97103	//   },
97104	//   "path": "{project}/global/targetHttpProxies/{targetHttpProxy}",
97105	//   "response": {
97106	//     "$ref": "TargetHttpProxy"
97107	//   },
97108	//   "scopes": [
97109	//     "https://www.googleapis.com/auth/cloud-platform",
97110	//     "https://www.googleapis.com/auth/compute",
97111	//     "https://www.googleapis.com/auth/compute.readonly"
97112	//   ]
97113	// }
97114
97115}
97116
97117// method id "compute.targetHttpProxies.insert":
97118
97119type TargetHttpProxiesInsertCall struct {
97120	s               *Service
97121	project         string
97122	targethttpproxy *TargetHttpProxy
97123	urlParams_      gensupport.URLParams
97124	ctx_            context.Context
97125	header_         http.Header
97126}
97127
97128// Insert: Creates a TargetHttpProxy resource in the specified project
97129// using the data included in the request.
97130// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/insert
97131func (r *TargetHttpProxiesService) Insert(project string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesInsertCall {
97132	c := &TargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97133	c.project = project
97134	c.targethttpproxy = targethttpproxy
97135	return c
97136}
97137
97138// RequestId sets the optional parameter "requestId": An optional
97139// request ID to identify requests. Specify a unique request ID so that
97140// if you must retry your request, the server will know to ignore the
97141// request if it has already been completed.
97142//
97143// For example, consider a situation where you make an initial request
97144// and the request times out. If you make the request again with the
97145// same request ID, the server can check if original operation with the
97146// same request ID was received, and if so, will ignore the second
97147// request. This prevents clients from accidentally creating duplicate
97148// commitments.
97149//
97150// The request ID must be a valid UUID with the exception that zero UUID
97151// is not supported (00000000-0000-0000-0000-000000000000).
97152func (c *TargetHttpProxiesInsertCall) RequestId(requestId string) *TargetHttpProxiesInsertCall {
97153	c.urlParams_.Set("requestId", requestId)
97154	return c
97155}
97156
97157// Fields allows partial responses to be retrieved. See
97158// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97159// for more information.
97160func (c *TargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpProxiesInsertCall {
97161	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97162	return c
97163}
97164
97165// Context sets the context to be used in this call's Do method. Any
97166// pending HTTP request will be aborted if the provided context is
97167// canceled.
97168func (c *TargetHttpProxiesInsertCall) Context(ctx context.Context) *TargetHttpProxiesInsertCall {
97169	c.ctx_ = ctx
97170	return c
97171}
97172
97173// Header returns an http.Header that can be modified by the caller to
97174// add HTTP headers to the request.
97175func (c *TargetHttpProxiesInsertCall) Header() http.Header {
97176	if c.header_ == nil {
97177		c.header_ = make(http.Header)
97178	}
97179	return c.header_
97180}
97181
97182func (c *TargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
97183	reqHeaders := make(http.Header)
97184	for k, v := range c.header_ {
97185		reqHeaders[k] = v
97186	}
97187	reqHeaders.Set("User-Agent", c.s.userAgent())
97188	var body io.Reader = nil
97189	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
97190	if err != nil {
97191		return nil, err
97192	}
97193	reqHeaders.Set("Content-Type", "application/json")
97194	c.urlParams_.Set("alt", alt)
97195	c.urlParams_.Set("prettyPrint", "false")
97196	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies")
97197	urls += "?" + c.urlParams_.Encode()
97198	req, err := http.NewRequest("POST", urls, body)
97199	if err != nil {
97200		return nil, err
97201	}
97202	req.Header = reqHeaders
97203	googleapi.Expand(req.URL, map[string]string{
97204		"project": c.project,
97205	})
97206	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97207}
97208
97209// Do executes the "compute.targetHttpProxies.insert" call.
97210// Exactly one of *Operation or error will be non-nil. Any non-2xx
97211// status code is an error. Response headers are in either
97212// *Operation.ServerResponse.Header or (if a response was returned at
97213// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97214// to check whether the returned error was because
97215// http.StatusNotModified was returned.
97216func (c *TargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97217	gensupport.SetOptions(c.urlParams_, opts...)
97218	res, err := c.doRequest("json")
97219	if res != nil && res.StatusCode == http.StatusNotModified {
97220		if res.Body != nil {
97221			res.Body.Close()
97222		}
97223		return nil, &googleapi.Error{
97224			Code:   res.StatusCode,
97225			Header: res.Header,
97226		}
97227	}
97228	if err != nil {
97229		return nil, err
97230	}
97231	defer googleapi.CloseBody(res)
97232	if err := googleapi.CheckResponse(res); err != nil {
97233		return nil, err
97234	}
97235	ret := &Operation{
97236		ServerResponse: googleapi.ServerResponse{
97237			Header:         res.Header,
97238			HTTPStatusCode: res.StatusCode,
97239		},
97240	}
97241	target := &ret
97242	if err := gensupport.DecodeResponse(target, res); err != nil {
97243		return nil, err
97244	}
97245	return ret, nil
97246	// {
97247	//   "description": "Creates a TargetHttpProxy resource in the specified project using the data included in the request.",
97248	//   "httpMethod": "POST",
97249	//   "id": "compute.targetHttpProxies.insert",
97250	//   "parameterOrder": [
97251	//     "project"
97252	//   ],
97253	//   "parameters": {
97254	//     "project": {
97255	//       "description": "Project ID for this request.",
97256	//       "location": "path",
97257	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97258	//       "required": true,
97259	//       "type": "string"
97260	//     },
97261	//     "requestId": {
97262	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97263	//       "location": "query",
97264	//       "type": "string"
97265	//     }
97266	//   },
97267	//   "path": "{project}/global/targetHttpProxies",
97268	//   "request": {
97269	//     "$ref": "TargetHttpProxy"
97270	//   },
97271	//   "response": {
97272	//     "$ref": "Operation"
97273	//   },
97274	//   "scopes": [
97275	//     "https://www.googleapis.com/auth/cloud-platform",
97276	//     "https://www.googleapis.com/auth/compute"
97277	//   ]
97278	// }
97279
97280}
97281
97282// method id "compute.targetHttpProxies.list":
97283
97284type TargetHttpProxiesListCall struct {
97285	s            *Service
97286	project      string
97287	urlParams_   gensupport.URLParams
97288	ifNoneMatch_ string
97289	ctx_         context.Context
97290	header_      http.Header
97291}
97292
97293// List: Retrieves the list of TargetHttpProxy resources available to
97294// the specified project.
97295// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/list
97296func (r *TargetHttpProxiesService) List(project string) *TargetHttpProxiesListCall {
97297	c := &TargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97298	c.project = project
97299	return c
97300}
97301
97302// Filter sets the optional parameter "filter": A filter expression that
97303// filters resources listed in the response. The expression must specify
97304// the field name, a comparison operator, and the value that you want to
97305// use for filtering. The value must be a string, a number, or a
97306// boolean. The comparison operator must be either =, !=, >, or <.
97307//
97308// For example, if you are filtering Compute Engine instances, you can
97309// exclude instances named example-instance by specifying name !=
97310// example-instance.
97311//
97312// You can also filter nested fields. For example, you could specify
97313// scheduling.automaticRestart = false to include instances only if they
97314// are not scheduled for automatic restarts. You can use filtering on
97315// nested fields to filter based on resource labels.
97316//
97317// To filter on multiple expressions, provide each separate expression
97318// within parentheses. For example, (scheduling.automaticRestart = true)
97319// (cpuPlatform = "Intel Skylake"). By default, each expression is an
97320// AND expression. However, you can include AND and OR expressions
97321// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
97322// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
97323// true).
97324func (c *TargetHttpProxiesListCall) Filter(filter string) *TargetHttpProxiesListCall {
97325	c.urlParams_.Set("filter", filter)
97326	return c
97327}
97328
97329// MaxResults sets the optional parameter "maxResults": The maximum
97330// number of results per page that should be returned. If the number of
97331// available results is larger than maxResults, Compute Engine returns a
97332// nextPageToken that can be used to get the next page of results in
97333// subsequent list requests. Acceptable values are 0 to 500, inclusive.
97334// (Default: 500)
97335func (c *TargetHttpProxiesListCall) MaxResults(maxResults int64) *TargetHttpProxiesListCall {
97336	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
97337	return c
97338}
97339
97340// OrderBy sets the optional parameter "orderBy": Sorts list results by
97341// a certain order. By default, results are returned in alphanumerical
97342// order based on the resource name.
97343//
97344// You can also sort results in descending order based on the creation
97345// timestamp using orderBy="creationTimestamp desc". This sorts results
97346// based on the creationTimestamp field in reverse chronological order
97347// (newest result first). Use this to sort resources like operations so
97348// that the newest operation is returned first.
97349//
97350// Currently, only sorting by name or creationTimestamp desc is
97351// supported.
97352func (c *TargetHttpProxiesListCall) OrderBy(orderBy string) *TargetHttpProxiesListCall {
97353	c.urlParams_.Set("orderBy", orderBy)
97354	return c
97355}
97356
97357// PageToken sets the optional parameter "pageToken": Specifies a page
97358// token to use. Set pageToken to the nextPageToken returned by a
97359// previous list request to get the next page of results.
97360func (c *TargetHttpProxiesListCall) PageToken(pageToken string) *TargetHttpProxiesListCall {
97361	c.urlParams_.Set("pageToken", pageToken)
97362	return c
97363}
97364
97365// Fields allows partial responses to be retrieved. See
97366// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97367// for more information.
97368func (c *TargetHttpProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesListCall {
97369	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97370	return c
97371}
97372
97373// IfNoneMatch sets the optional parameter which makes the operation
97374// fail if the object's ETag matches the given value. This is useful for
97375// getting updates only after the object has changed since the last
97376// request. Use googleapi.IsNotModified to check whether the response
97377// error from Do is the result of In-None-Match.
97378func (c *TargetHttpProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesListCall {
97379	c.ifNoneMatch_ = entityTag
97380	return c
97381}
97382
97383// Context sets the context to be used in this call's Do method. Any
97384// pending HTTP request will be aborted if the provided context is
97385// canceled.
97386func (c *TargetHttpProxiesListCall) Context(ctx context.Context) *TargetHttpProxiesListCall {
97387	c.ctx_ = ctx
97388	return c
97389}
97390
97391// Header returns an http.Header that can be modified by the caller to
97392// add HTTP headers to the request.
97393func (c *TargetHttpProxiesListCall) Header() http.Header {
97394	if c.header_ == nil {
97395		c.header_ = make(http.Header)
97396	}
97397	return c.header_
97398}
97399
97400func (c *TargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
97401	reqHeaders := make(http.Header)
97402	for k, v := range c.header_ {
97403		reqHeaders[k] = v
97404	}
97405	reqHeaders.Set("User-Agent", c.s.userAgent())
97406	if c.ifNoneMatch_ != "" {
97407		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97408	}
97409	var body io.Reader = nil
97410	c.urlParams_.Set("alt", alt)
97411	c.urlParams_.Set("prettyPrint", "false")
97412	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies")
97413	urls += "?" + c.urlParams_.Encode()
97414	req, err := http.NewRequest("GET", urls, body)
97415	if err != nil {
97416		return nil, err
97417	}
97418	req.Header = reqHeaders
97419	googleapi.Expand(req.URL, map[string]string{
97420		"project": c.project,
97421	})
97422	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97423}
97424
97425// Do executes the "compute.targetHttpProxies.list" call.
97426// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
97427// non-2xx status code is an error. Response headers are in either
97428// *TargetHttpProxyList.ServerResponse.Header or (if a response was
97429// returned at all) in error.(*googleapi.Error).Header. Use
97430// googleapi.IsNotModified to check whether the returned error was
97431// because http.StatusNotModified was returned.
97432func (c *TargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
97433	gensupport.SetOptions(c.urlParams_, opts...)
97434	res, err := c.doRequest("json")
97435	if res != nil && res.StatusCode == http.StatusNotModified {
97436		if res.Body != nil {
97437			res.Body.Close()
97438		}
97439		return nil, &googleapi.Error{
97440			Code:   res.StatusCode,
97441			Header: res.Header,
97442		}
97443	}
97444	if err != nil {
97445		return nil, err
97446	}
97447	defer googleapi.CloseBody(res)
97448	if err := googleapi.CheckResponse(res); err != nil {
97449		return nil, err
97450	}
97451	ret := &TargetHttpProxyList{
97452		ServerResponse: googleapi.ServerResponse{
97453			Header:         res.Header,
97454			HTTPStatusCode: res.StatusCode,
97455		},
97456	}
97457	target := &ret
97458	if err := gensupport.DecodeResponse(target, res); err != nil {
97459		return nil, err
97460	}
97461	return ret, nil
97462	// {
97463	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project.",
97464	//   "httpMethod": "GET",
97465	//   "id": "compute.targetHttpProxies.list",
97466	//   "parameterOrder": [
97467	//     "project"
97468	//   ],
97469	//   "parameters": {
97470	//     "filter": {
97471	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
97472	//       "location": "query",
97473	//       "type": "string"
97474	//     },
97475	//     "maxResults": {
97476	//       "default": "500",
97477	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
97478	//       "format": "uint32",
97479	//       "location": "query",
97480	//       "minimum": "0",
97481	//       "type": "integer"
97482	//     },
97483	//     "orderBy": {
97484	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
97485	//       "location": "query",
97486	//       "type": "string"
97487	//     },
97488	//     "pageToken": {
97489	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
97490	//       "location": "query",
97491	//       "type": "string"
97492	//     },
97493	//     "project": {
97494	//       "description": "Project ID for this request.",
97495	//       "location": "path",
97496	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97497	//       "required": true,
97498	//       "type": "string"
97499	//     }
97500	//   },
97501	//   "path": "{project}/global/targetHttpProxies",
97502	//   "response": {
97503	//     "$ref": "TargetHttpProxyList"
97504	//   },
97505	//   "scopes": [
97506	//     "https://www.googleapis.com/auth/cloud-platform",
97507	//     "https://www.googleapis.com/auth/compute",
97508	//     "https://www.googleapis.com/auth/compute.readonly"
97509	//   ]
97510	// }
97511
97512}
97513
97514// Pages invokes f for each page of results.
97515// A non-nil error returned from f will halt the iteration.
97516// The provided context supersedes any context provided to the Context method.
97517func (c *TargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
97518	c.ctx_ = ctx
97519	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
97520	for {
97521		x, err := c.Do()
97522		if err != nil {
97523			return err
97524		}
97525		if err := f(x); err != nil {
97526			return err
97527		}
97528		if x.NextPageToken == "" {
97529			return nil
97530		}
97531		c.PageToken(x.NextPageToken)
97532	}
97533}
97534
97535// method id "compute.targetHttpProxies.setUrlMap":
97536
97537type TargetHttpProxiesSetUrlMapCall struct {
97538	s               *Service
97539	project         string
97540	targetHttpProxy string
97541	urlmapreference *UrlMapReference
97542	urlParams_      gensupport.URLParams
97543	ctx_            context.Context
97544	header_         http.Header
97545}
97546
97547// SetUrlMap: Changes the URL map for TargetHttpProxy.
97548// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/setUrlMap
97549func (r *TargetHttpProxiesService) SetUrlMap(project string, targetHttpProxy string, urlmapreference *UrlMapReference) *TargetHttpProxiesSetUrlMapCall {
97550	c := &TargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97551	c.project = project
97552	c.targetHttpProxy = targetHttpProxy
97553	c.urlmapreference = urlmapreference
97554	return c
97555}
97556
97557// RequestId sets the optional parameter "requestId": An optional
97558// request ID to identify requests. Specify a unique request ID so that
97559// if you must retry your request, the server will know to ignore the
97560// request if it has already been completed.
97561//
97562// For example, consider a situation where you make an initial request
97563// and the request times out. If you make the request again with the
97564// same request ID, the server can check if original operation with the
97565// same request ID was received, and if so, will ignore the second
97566// request. This prevents clients from accidentally creating duplicate
97567// commitments.
97568//
97569// The request ID must be a valid UUID with the exception that zero UUID
97570// is not supported (00000000-0000-0000-0000-000000000000).
97571func (c *TargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpProxiesSetUrlMapCall {
97572	c.urlParams_.Set("requestId", requestId)
97573	return c
97574}
97575
97576// Fields allows partial responses to be retrieved. See
97577// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97578// for more information.
97579func (c *TargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpProxiesSetUrlMapCall {
97580	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97581	return c
97582}
97583
97584// Context sets the context to be used in this call's Do method. Any
97585// pending HTTP request will be aborted if the provided context is
97586// canceled.
97587func (c *TargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpProxiesSetUrlMapCall {
97588	c.ctx_ = ctx
97589	return c
97590}
97591
97592// Header returns an http.Header that can be modified by the caller to
97593// add HTTP headers to the request.
97594func (c *TargetHttpProxiesSetUrlMapCall) Header() http.Header {
97595	if c.header_ == nil {
97596		c.header_ = make(http.Header)
97597	}
97598	return c.header_
97599}
97600
97601func (c *TargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
97602	reqHeaders := make(http.Header)
97603	for k, v := range c.header_ {
97604		reqHeaders[k] = v
97605	}
97606	reqHeaders.Set("User-Agent", c.s.userAgent())
97607	var body io.Reader = nil
97608	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
97609	if err != nil {
97610		return nil, err
97611	}
97612	reqHeaders.Set("Content-Type", "application/json")
97613	c.urlParams_.Set("alt", alt)
97614	c.urlParams_.Set("prettyPrint", "false")
97615	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
97616	urls += "?" + c.urlParams_.Encode()
97617	req, err := http.NewRequest("POST", urls, body)
97618	if err != nil {
97619		return nil, err
97620	}
97621	req.Header = reqHeaders
97622	googleapi.Expand(req.URL, map[string]string{
97623		"project":         c.project,
97624		"targetHttpProxy": c.targetHttpProxy,
97625	})
97626	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97627}
97628
97629// Do executes the "compute.targetHttpProxies.setUrlMap" call.
97630// Exactly one of *Operation or error will be non-nil. Any non-2xx
97631// status code is an error. Response headers are in either
97632// *Operation.ServerResponse.Header or (if a response was returned at
97633// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97634// to check whether the returned error was because
97635// http.StatusNotModified was returned.
97636func (c *TargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97637	gensupport.SetOptions(c.urlParams_, opts...)
97638	res, err := c.doRequest("json")
97639	if res != nil && res.StatusCode == http.StatusNotModified {
97640		if res.Body != nil {
97641			res.Body.Close()
97642		}
97643		return nil, &googleapi.Error{
97644			Code:   res.StatusCode,
97645			Header: res.Header,
97646		}
97647	}
97648	if err != nil {
97649		return nil, err
97650	}
97651	defer googleapi.CloseBody(res)
97652	if err := googleapi.CheckResponse(res); err != nil {
97653		return nil, err
97654	}
97655	ret := &Operation{
97656		ServerResponse: googleapi.ServerResponse{
97657			Header:         res.Header,
97658			HTTPStatusCode: res.StatusCode,
97659		},
97660	}
97661	target := &ret
97662	if err := gensupport.DecodeResponse(target, res); err != nil {
97663		return nil, err
97664	}
97665	return ret, nil
97666	// {
97667	//   "description": "Changes the URL map for TargetHttpProxy.",
97668	//   "httpMethod": "POST",
97669	//   "id": "compute.targetHttpProxies.setUrlMap",
97670	//   "parameterOrder": [
97671	//     "project",
97672	//     "targetHttpProxy"
97673	//   ],
97674	//   "parameters": {
97675	//     "project": {
97676	//       "description": "Project ID for this request.",
97677	//       "location": "path",
97678	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97679	//       "required": true,
97680	//       "type": "string"
97681	//     },
97682	//     "requestId": {
97683	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97684	//       "location": "query",
97685	//       "type": "string"
97686	//     },
97687	//     "targetHttpProxy": {
97688	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
97689	//       "location": "path",
97690	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97691	//       "required": true,
97692	//       "type": "string"
97693	//     }
97694	//   },
97695	//   "path": "{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
97696	//   "request": {
97697	//     "$ref": "UrlMapReference"
97698	//   },
97699	//   "response": {
97700	//     "$ref": "Operation"
97701	//   },
97702	//   "scopes": [
97703	//     "https://www.googleapis.com/auth/cloud-platform",
97704	//     "https://www.googleapis.com/auth/compute"
97705	//   ]
97706	// }
97707
97708}
97709
97710// method id "compute.targetHttpsProxies.delete":
97711
97712type TargetHttpsProxiesDeleteCall struct {
97713	s                *Service
97714	project          string
97715	targetHttpsProxy string
97716	urlParams_       gensupport.URLParams
97717	ctx_             context.Context
97718	header_          http.Header
97719}
97720
97721// Delete: Deletes the specified TargetHttpsProxy resource.
97722func (r *TargetHttpsProxiesService) Delete(project string, targetHttpsProxy string) *TargetHttpsProxiesDeleteCall {
97723	c := &TargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97724	c.project = project
97725	c.targetHttpsProxy = targetHttpsProxy
97726	return c
97727}
97728
97729// RequestId sets the optional parameter "requestId": An optional
97730// request ID to identify requests. Specify a unique request ID so that
97731// if you must retry your request, the server will know to ignore the
97732// request if it has already been completed.
97733//
97734// For example, consider a situation where you make an initial request
97735// and the request times out. If you make the request again with the
97736// same request ID, the server can check if original operation with the
97737// same request ID was received, and if so, will ignore the second
97738// request. This prevents clients from accidentally creating duplicate
97739// commitments.
97740//
97741// The request ID must be a valid UUID with the exception that zero UUID
97742// is not supported (00000000-0000-0000-0000-000000000000).
97743func (c *TargetHttpsProxiesDeleteCall) RequestId(requestId string) *TargetHttpsProxiesDeleteCall {
97744	c.urlParams_.Set("requestId", requestId)
97745	return c
97746}
97747
97748// Fields allows partial responses to be retrieved. See
97749// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97750// for more information.
97751func (c *TargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesDeleteCall {
97752	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97753	return c
97754}
97755
97756// Context sets the context to be used in this call's Do method. Any
97757// pending HTTP request will be aborted if the provided context is
97758// canceled.
97759func (c *TargetHttpsProxiesDeleteCall) Context(ctx context.Context) *TargetHttpsProxiesDeleteCall {
97760	c.ctx_ = ctx
97761	return c
97762}
97763
97764// Header returns an http.Header that can be modified by the caller to
97765// add HTTP headers to the request.
97766func (c *TargetHttpsProxiesDeleteCall) Header() http.Header {
97767	if c.header_ == nil {
97768		c.header_ = make(http.Header)
97769	}
97770	return c.header_
97771}
97772
97773func (c *TargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
97774	reqHeaders := make(http.Header)
97775	for k, v := range c.header_ {
97776		reqHeaders[k] = v
97777	}
97778	reqHeaders.Set("User-Agent", c.s.userAgent())
97779	var body io.Reader = nil
97780	c.urlParams_.Set("alt", alt)
97781	c.urlParams_.Set("prettyPrint", "false")
97782	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}")
97783	urls += "?" + c.urlParams_.Encode()
97784	req, err := http.NewRequest("DELETE", urls, body)
97785	if err != nil {
97786		return nil, err
97787	}
97788	req.Header = reqHeaders
97789	googleapi.Expand(req.URL, map[string]string{
97790		"project":          c.project,
97791		"targetHttpsProxy": c.targetHttpsProxy,
97792	})
97793	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97794}
97795
97796// Do executes the "compute.targetHttpsProxies.delete" call.
97797// Exactly one of *Operation or error will be non-nil. Any non-2xx
97798// status code is an error. Response headers are in either
97799// *Operation.ServerResponse.Header or (if a response was returned at
97800// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97801// to check whether the returned error was because
97802// http.StatusNotModified was returned.
97803func (c *TargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97804	gensupport.SetOptions(c.urlParams_, opts...)
97805	res, err := c.doRequest("json")
97806	if res != nil && res.StatusCode == http.StatusNotModified {
97807		if res.Body != nil {
97808			res.Body.Close()
97809		}
97810		return nil, &googleapi.Error{
97811			Code:   res.StatusCode,
97812			Header: res.Header,
97813		}
97814	}
97815	if err != nil {
97816		return nil, err
97817	}
97818	defer googleapi.CloseBody(res)
97819	if err := googleapi.CheckResponse(res); err != nil {
97820		return nil, err
97821	}
97822	ret := &Operation{
97823		ServerResponse: googleapi.ServerResponse{
97824			Header:         res.Header,
97825			HTTPStatusCode: res.StatusCode,
97826		},
97827	}
97828	target := &ret
97829	if err := gensupport.DecodeResponse(target, res); err != nil {
97830		return nil, err
97831	}
97832	return ret, nil
97833	// {
97834	//   "description": "Deletes the specified TargetHttpsProxy resource.",
97835	//   "httpMethod": "DELETE",
97836	//   "id": "compute.targetHttpsProxies.delete",
97837	//   "parameterOrder": [
97838	//     "project",
97839	//     "targetHttpsProxy"
97840	//   ],
97841	//   "parameters": {
97842	//     "project": {
97843	//       "description": "Project ID for this request.",
97844	//       "location": "path",
97845	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97846	//       "required": true,
97847	//       "type": "string"
97848	//     },
97849	//     "requestId": {
97850	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97851	//       "location": "query",
97852	//       "type": "string"
97853	//     },
97854	//     "targetHttpsProxy": {
97855	//       "description": "Name of the TargetHttpsProxy resource to delete.",
97856	//       "location": "path",
97857	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97858	//       "required": true,
97859	//       "type": "string"
97860	//     }
97861	//   },
97862	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}",
97863	//   "response": {
97864	//     "$ref": "Operation"
97865	//   },
97866	//   "scopes": [
97867	//     "https://www.googleapis.com/auth/cloud-platform",
97868	//     "https://www.googleapis.com/auth/compute"
97869	//   ]
97870	// }
97871
97872}
97873
97874// method id "compute.targetHttpsProxies.get":
97875
97876type TargetHttpsProxiesGetCall struct {
97877	s                *Service
97878	project          string
97879	targetHttpsProxy string
97880	urlParams_       gensupport.URLParams
97881	ifNoneMatch_     string
97882	ctx_             context.Context
97883	header_          http.Header
97884}
97885
97886// Get: Returns the specified TargetHttpsProxy resource. Gets a list of
97887// available target HTTPS proxies by making a list() request.
97888func (r *TargetHttpsProxiesService) Get(project string, targetHttpsProxy string) *TargetHttpsProxiesGetCall {
97889	c := &TargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97890	c.project = project
97891	c.targetHttpsProxy = targetHttpsProxy
97892	return c
97893}
97894
97895// Fields allows partial responses to be retrieved. See
97896// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97897// for more information.
97898func (c *TargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesGetCall {
97899	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97900	return c
97901}
97902
97903// IfNoneMatch sets the optional parameter which makes the operation
97904// fail if the object's ETag matches the given value. This is useful for
97905// getting updates only after the object has changed since the last
97906// request. Use googleapi.IsNotModified to check whether the response
97907// error from Do is the result of In-None-Match.
97908func (c *TargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesGetCall {
97909	c.ifNoneMatch_ = entityTag
97910	return c
97911}
97912
97913// Context sets the context to be used in this call's Do method. Any
97914// pending HTTP request will be aborted if the provided context is
97915// canceled.
97916func (c *TargetHttpsProxiesGetCall) Context(ctx context.Context) *TargetHttpsProxiesGetCall {
97917	c.ctx_ = ctx
97918	return c
97919}
97920
97921// Header returns an http.Header that can be modified by the caller to
97922// add HTTP headers to the request.
97923func (c *TargetHttpsProxiesGetCall) Header() http.Header {
97924	if c.header_ == nil {
97925		c.header_ = make(http.Header)
97926	}
97927	return c.header_
97928}
97929
97930func (c *TargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
97931	reqHeaders := make(http.Header)
97932	for k, v := range c.header_ {
97933		reqHeaders[k] = v
97934	}
97935	reqHeaders.Set("User-Agent", c.s.userAgent())
97936	if c.ifNoneMatch_ != "" {
97937		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97938	}
97939	var body io.Reader = nil
97940	c.urlParams_.Set("alt", alt)
97941	c.urlParams_.Set("prettyPrint", "false")
97942	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}")
97943	urls += "?" + c.urlParams_.Encode()
97944	req, err := http.NewRequest("GET", urls, body)
97945	if err != nil {
97946		return nil, err
97947	}
97948	req.Header = reqHeaders
97949	googleapi.Expand(req.URL, map[string]string{
97950		"project":          c.project,
97951		"targetHttpsProxy": c.targetHttpsProxy,
97952	})
97953	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97954}
97955
97956// Do executes the "compute.targetHttpsProxies.get" call.
97957// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
97958// non-2xx status code is an error. Response headers are in either
97959// *TargetHttpsProxy.ServerResponse.Header or (if a response was
97960// returned at all) in error.(*googleapi.Error).Header. Use
97961// googleapi.IsNotModified to check whether the returned error was
97962// because http.StatusNotModified was returned.
97963func (c *TargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
97964	gensupport.SetOptions(c.urlParams_, opts...)
97965	res, err := c.doRequest("json")
97966	if res != nil && res.StatusCode == http.StatusNotModified {
97967		if res.Body != nil {
97968			res.Body.Close()
97969		}
97970		return nil, &googleapi.Error{
97971			Code:   res.StatusCode,
97972			Header: res.Header,
97973		}
97974	}
97975	if err != nil {
97976		return nil, err
97977	}
97978	defer googleapi.CloseBody(res)
97979	if err := googleapi.CheckResponse(res); err != nil {
97980		return nil, err
97981	}
97982	ret := &TargetHttpsProxy{
97983		ServerResponse: googleapi.ServerResponse{
97984			Header:         res.Header,
97985			HTTPStatusCode: res.StatusCode,
97986		},
97987	}
97988	target := &ret
97989	if err := gensupport.DecodeResponse(target, res); err != nil {
97990		return nil, err
97991	}
97992	return ret, nil
97993	// {
97994	//   "description": "Returns the specified TargetHttpsProxy resource. Gets a list of available target HTTPS proxies by making a list() request.",
97995	//   "httpMethod": "GET",
97996	//   "id": "compute.targetHttpsProxies.get",
97997	//   "parameterOrder": [
97998	//     "project",
97999	//     "targetHttpsProxy"
98000	//   ],
98001	//   "parameters": {
98002	//     "project": {
98003	//       "description": "Project ID for this request.",
98004	//       "location": "path",
98005	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98006	//       "required": true,
98007	//       "type": "string"
98008	//     },
98009	//     "targetHttpsProxy": {
98010	//       "description": "Name of the TargetHttpsProxy resource to return.",
98011	//       "location": "path",
98012	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98013	//       "required": true,
98014	//       "type": "string"
98015	//     }
98016	//   },
98017	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}",
98018	//   "response": {
98019	//     "$ref": "TargetHttpsProxy"
98020	//   },
98021	//   "scopes": [
98022	//     "https://www.googleapis.com/auth/cloud-platform",
98023	//     "https://www.googleapis.com/auth/compute",
98024	//     "https://www.googleapis.com/auth/compute.readonly"
98025	//   ]
98026	// }
98027
98028}
98029
98030// method id "compute.targetHttpsProxies.insert":
98031
98032type TargetHttpsProxiesInsertCall struct {
98033	s                *Service
98034	project          string
98035	targethttpsproxy *TargetHttpsProxy
98036	urlParams_       gensupport.URLParams
98037	ctx_             context.Context
98038	header_          http.Header
98039}
98040
98041// Insert: Creates a TargetHttpsProxy resource in the specified project
98042// using the data included in the request.
98043func (r *TargetHttpsProxiesService) Insert(project string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesInsertCall {
98044	c := &TargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98045	c.project = project
98046	c.targethttpsproxy = targethttpsproxy
98047	return c
98048}
98049
98050// RequestId sets the optional parameter "requestId": An optional
98051// request ID to identify requests. Specify a unique request ID so that
98052// if you must retry your request, the server will know to ignore the
98053// request if it has already been completed.
98054//
98055// For example, consider a situation where you make an initial request
98056// and the request times out. If you make the request again with the
98057// same request ID, the server can check if original operation with the
98058// same request ID was received, and if so, will ignore the second
98059// request. This prevents clients from accidentally creating duplicate
98060// commitments.
98061//
98062// The request ID must be a valid UUID with the exception that zero UUID
98063// is not supported (00000000-0000-0000-0000-000000000000).
98064func (c *TargetHttpsProxiesInsertCall) RequestId(requestId string) *TargetHttpsProxiesInsertCall {
98065	c.urlParams_.Set("requestId", requestId)
98066	return c
98067}
98068
98069// Fields allows partial responses to be retrieved. See
98070// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98071// for more information.
98072func (c *TargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesInsertCall {
98073	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98074	return c
98075}
98076
98077// Context sets the context to be used in this call's Do method. Any
98078// pending HTTP request will be aborted if the provided context is
98079// canceled.
98080func (c *TargetHttpsProxiesInsertCall) Context(ctx context.Context) *TargetHttpsProxiesInsertCall {
98081	c.ctx_ = ctx
98082	return c
98083}
98084
98085// Header returns an http.Header that can be modified by the caller to
98086// add HTTP headers to the request.
98087func (c *TargetHttpsProxiesInsertCall) Header() http.Header {
98088	if c.header_ == nil {
98089		c.header_ = make(http.Header)
98090	}
98091	return c.header_
98092}
98093
98094func (c *TargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
98095	reqHeaders := make(http.Header)
98096	for k, v := range c.header_ {
98097		reqHeaders[k] = v
98098	}
98099	reqHeaders.Set("User-Agent", c.s.userAgent())
98100	var body io.Reader = nil
98101	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
98102	if err != nil {
98103		return nil, err
98104	}
98105	reqHeaders.Set("Content-Type", "application/json")
98106	c.urlParams_.Set("alt", alt)
98107	c.urlParams_.Set("prettyPrint", "false")
98108	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies")
98109	urls += "?" + c.urlParams_.Encode()
98110	req, err := http.NewRequest("POST", urls, body)
98111	if err != nil {
98112		return nil, err
98113	}
98114	req.Header = reqHeaders
98115	googleapi.Expand(req.URL, map[string]string{
98116		"project": c.project,
98117	})
98118	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98119}
98120
98121// Do executes the "compute.targetHttpsProxies.insert" call.
98122// Exactly one of *Operation or error will be non-nil. Any non-2xx
98123// status code is an error. Response headers are in either
98124// *Operation.ServerResponse.Header or (if a response was returned at
98125// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98126// to check whether the returned error was because
98127// http.StatusNotModified was returned.
98128func (c *TargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98129	gensupport.SetOptions(c.urlParams_, opts...)
98130	res, err := c.doRequest("json")
98131	if res != nil && res.StatusCode == http.StatusNotModified {
98132		if res.Body != nil {
98133			res.Body.Close()
98134		}
98135		return nil, &googleapi.Error{
98136			Code:   res.StatusCode,
98137			Header: res.Header,
98138		}
98139	}
98140	if err != nil {
98141		return nil, err
98142	}
98143	defer googleapi.CloseBody(res)
98144	if err := googleapi.CheckResponse(res); err != nil {
98145		return nil, err
98146	}
98147	ret := &Operation{
98148		ServerResponse: googleapi.ServerResponse{
98149			Header:         res.Header,
98150			HTTPStatusCode: res.StatusCode,
98151		},
98152	}
98153	target := &ret
98154	if err := gensupport.DecodeResponse(target, res); err != nil {
98155		return nil, err
98156	}
98157	return ret, nil
98158	// {
98159	//   "description": "Creates a TargetHttpsProxy resource in the specified project using the data included in the request.",
98160	//   "httpMethod": "POST",
98161	//   "id": "compute.targetHttpsProxies.insert",
98162	//   "parameterOrder": [
98163	//     "project"
98164	//   ],
98165	//   "parameters": {
98166	//     "project": {
98167	//       "description": "Project ID for this request.",
98168	//       "location": "path",
98169	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98170	//       "required": true,
98171	//       "type": "string"
98172	//     },
98173	//     "requestId": {
98174	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98175	//       "location": "query",
98176	//       "type": "string"
98177	//     }
98178	//   },
98179	//   "path": "{project}/global/targetHttpsProxies",
98180	//   "request": {
98181	//     "$ref": "TargetHttpsProxy"
98182	//   },
98183	//   "response": {
98184	//     "$ref": "Operation"
98185	//   },
98186	//   "scopes": [
98187	//     "https://www.googleapis.com/auth/cloud-platform",
98188	//     "https://www.googleapis.com/auth/compute"
98189	//   ]
98190	// }
98191
98192}
98193
98194// method id "compute.targetHttpsProxies.list":
98195
98196type TargetHttpsProxiesListCall struct {
98197	s            *Service
98198	project      string
98199	urlParams_   gensupport.URLParams
98200	ifNoneMatch_ string
98201	ctx_         context.Context
98202	header_      http.Header
98203}
98204
98205// List: Retrieves the list of TargetHttpsProxy resources available to
98206// the specified project.
98207func (r *TargetHttpsProxiesService) List(project string) *TargetHttpsProxiesListCall {
98208	c := &TargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98209	c.project = project
98210	return c
98211}
98212
98213// Filter sets the optional parameter "filter": A filter expression that
98214// filters resources listed in the response. The expression must specify
98215// the field name, a comparison operator, and the value that you want to
98216// use for filtering. The value must be a string, a number, or a
98217// boolean. The comparison operator must be either =, !=, >, or <.
98218//
98219// For example, if you are filtering Compute Engine instances, you can
98220// exclude instances named example-instance by specifying name !=
98221// example-instance.
98222//
98223// You can also filter nested fields. For example, you could specify
98224// scheduling.automaticRestart = false to include instances only if they
98225// are not scheduled for automatic restarts. You can use filtering on
98226// nested fields to filter based on resource labels.
98227//
98228// To filter on multiple expressions, provide each separate expression
98229// within parentheses. For example, (scheduling.automaticRestart = true)
98230// (cpuPlatform = "Intel Skylake"). By default, each expression is an
98231// AND expression. However, you can include AND and OR expressions
98232// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
98233// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
98234// true).
98235func (c *TargetHttpsProxiesListCall) Filter(filter string) *TargetHttpsProxiesListCall {
98236	c.urlParams_.Set("filter", filter)
98237	return c
98238}
98239
98240// MaxResults sets the optional parameter "maxResults": The maximum
98241// number of results per page that should be returned. If the number of
98242// available results is larger than maxResults, Compute Engine returns a
98243// nextPageToken that can be used to get the next page of results in
98244// subsequent list requests. Acceptable values are 0 to 500, inclusive.
98245// (Default: 500)
98246func (c *TargetHttpsProxiesListCall) MaxResults(maxResults int64) *TargetHttpsProxiesListCall {
98247	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
98248	return c
98249}
98250
98251// OrderBy sets the optional parameter "orderBy": Sorts list results by
98252// a certain order. By default, results are returned in alphanumerical
98253// order based on the resource name.
98254//
98255// You can also sort results in descending order based on the creation
98256// timestamp using orderBy="creationTimestamp desc". This sorts results
98257// based on the creationTimestamp field in reverse chronological order
98258// (newest result first). Use this to sort resources like operations so
98259// that the newest operation is returned first.
98260//
98261// Currently, only sorting by name or creationTimestamp desc is
98262// supported.
98263func (c *TargetHttpsProxiesListCall) OrderBy(orderBy string) *TargetHttpsProxiesListCall {
98264	c.urlParams_.Set("orderBy", orderBy)
98265	return c
98266}
98267
98268// PageToken sets the optional parameter "pageToken": Specifies a page
98269// token to use. Set pageToken to the nextPageToken returned by a
98270// previous list request to get the next page of results.
98271func (c *TargetHttpsProxiesListCall) PageToken(pageToken string) *TargetHttpsProxiesListCall {
98272	c.urlParams_.Set("pageToken", pageToken)
98273	return c
98274}
98275
98276// Fields allows partial responses to be retrieved. See
98277// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98278// for more information.
98279func (c *TargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesListCall {
98280	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98281	return c
98282}
98283
98284// IfNoneMatch sets the optional parameter which makes the operation
98285// fail if the object's ETag matches the given value. This is useful for
98286// getting updates only after the object has changed since the last
98287// request. Use googleapi.IsNotModified to check whether the response
98288// error from Do is the result of In-None-Match.
98289func (c *TargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesListCall {
98290	c.ifNoneMatch_ = entityTag
98291	return c
98292}
98293
98294// Context sets the context to be used in this call's Do method. Any
98295// pending HTTP request will be aborted if the provided context is
98296// canceled.
98297func (c *TargetHttpsProxiesListCall) Context(ctx context.Context) *TargetHttpsProxiesListCall {
98298	c.ctx_ = ctx
98299	return c
98300}
98301
98302// Header returns an http.Header that can be modified by the caller to
98303// add HTTP headers to the request.
98304func (c *TargetHttpsProxiesListCall) Header() http.Header {
98305	if c.header_ == nil {
98306		c.header_ = make(http.Header)
98307	}
98308	return c.header_
98309}
98310
98311func (c *TargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
98312	reqHeaders := make(http.Header)
98313	for k, v := range c.header_ {
98314		reqHeaders[k] = v
98315	}
98316	reqHeaders.Set("User-Agent", c.s.userAgent())
98317	if c.ifNoneMatch_ != "" {
98318		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98319	}
98320	var body io.Reader = nil
98321	c.urlParams_.Set("alt", alt)
98322	c.urlParams_.Set("prettyPrint", "false")
98323	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies")
98324	urls += "?" + c.urlParams_.Encode()
98325	req, err := http.NewRequest("GET", urls, body)
98326	if err != nil {
98327		return nil, err
98328	}
98329	req.Header = reqHeaders
98330	googleapi.Expand(req.URL, map[string]string{
98331		"project": c.project,
98332	})
98333	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98334}
98335
98336// Do executes the "compute.targetHttpsProxies.list" call.
98337// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
98338// non-2xx status code is an error. Response headers are in either
98339// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
98340// returned at all) in error.(*googleapi.Error).Header. Use
98341// googleapi.IsNotModified to check whether the returned error was
98342// because http.StatusNotModified was returned.
98343func (c *TargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
98344	gensupport.SetOptions(c.urlParams_, opts...)
98345	res, err := c.doRequest("json")
98346	if res != nil && res.StatusCode == http.StatusNotModified {
98347		if res.Body != nil {
98348			res.Body.Close()
98349		}
98350		return nil, &googleapi.Error{
98351			Code:   res.StatusCode,
98352			Header: res.Header,
98353		}
98354	}
98355	if err != nil {
98356		return nil, err
98357	}
98358	defer googleapi.CloseBody(res)
98359	if err := googleapi.CheckResponse(res); err != nil {
98360		return nil, err
98361	}
98362	ret := &TargetHttpsProxyList{
98363		ServerResponse: googleapi.ServerResponse{
98364			Header:         res.Header,
98365			HTTPStatusCode: res.StatusCode,
98366		},
98367	}
98368	target := &ret
98369	if err := gensupport.DecodeResponse(target, res); err != nil {
98370		return nil, err
98371	}
98372	return ret, nil
98373	// {
98374	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project.",
98375	//   "httpMethod": "GET",
98376	//   "id": "compute.targetHttpsProxies.list",
98377	//   "parameterOrder": [
98378	//     "project"
98379	//   ],
98380	//   "parameters": {
98381	//     "filter": {
98382	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
98383	//       "location": "query",
98384	//       "type": "string"
98385	//     },
98386	//     "maxResults": {
98387	//       "default": "500",
98388	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
98389	//       "format": "uint32",
98390	//       "location": "query",
98391	//       "minimum": "0",
98392	//       "type": "integer"
98393	//     },
98394	//     "orderBy": {
98395	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
98396	//       "location": "query",
98397	//       "type": "string"
98398	//     },
98399	//     "pageToken": {
98400	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
98401	//       "location": "query",
98402	//       "type": "string"
98403	//     },
98404	//     "project": {
98405	//       "description": "Project ID for this request.",
98406	//       "location": "path",
98407	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98408	//       "required": true,
98409	//       "type": "string"
98410	//     }
98411	//   },
98412	//   "path": "{project}/global/targetHttpsProxies",
98413	//   "response": {
98414	//     "$ref": "TargetHttpsProxyList"
98415	//   },
98416	//   "scopes": [
98417	//     "https://www.googleapis.com/auth/cloud-platform",
98418	//     "https://www.googleapis.com/auth/compute",
98419	//     "https://www.googleapis.com/auth/compute.readonly"
98420	//   ]
98421	// }
98422
98423}
98424
98425// Pages invokes f for each page of results.
98426// A non-nil error returned from f will halt the iteration.
98427// The provided context supersedes any context provided to the Context method.
98428func (c *TargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
98429	c.ctx_ = ctx
98430	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
98431	for {
98432		x, err := c.Do()
98433		if err != nil {
98434			return err
98435		}
98436		if err := f(x); err != nil {
98437			return err
98438		}
98439		if x.NextPageToken == "" {
98440			return nil
98441		}
98442		c.PageToken(x.NextPageToken)
98443	}
98444}
98445
98446// method id "compute.targetHttpsProxies.setQuicOverride":
98447
98448type TargetHttpsProxiesSetQuicOverrideCall struct {
98449	s                                        *Service
98450	project                                  string
98451	targetHttpsProxy                         string
98452	targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest
98453	urlParams_                               gensupport.URLParams
98454	ctx_                                     context.Context
98455	header_                                  http.Header
98456}
98457
98458// SetQuicOverride: Sets the QUIC override policy for TargetHttpsProxy.
98459func (r *TargetHttpsProxiesService) SetQuicOverride(project string, targetHttpsProxy string, targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest) *TargetHttpsProxiesSetQuicOverrideCall {
98460	c := &TargetHttpsProxiesSetQuicOverrideCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98461	c.project = project
98462	c.targetHttpsProxy = targetHttpsProxy
98463	c.targethttpsproxiessetquicoverriderequest = targethttpsproxiessetquicoverriderequest
98464	return c
98465}
98466
98467// RequestId sets the optional parameter "requestId": An optional
98468// request ID to identify requests. Specify a unique request ID so that
98469// if you must retry your request, the server will know to ignore the
98470// request if it has already been completed.
98471//
98472// For example, consider a situation where you make an initial request
98473// and the request times out. If you make the request again with the
98474// same request ID, the server can check if original operation with the
98475// same request ID was received, and if so, will ignore the second
98476// request. This prevents clients from accidentally creating duplicate
98477// commitments.
98478//
98479// The request ID must be a valid UUID with the exception that zero UUID
98480// is not supported (00000000-0000-0000-0000-000000000000).
98481func (c *TargetHttpsProxiesSetQuicOverrideCall) RequestId(requestId string) *TargetHttpsProxiesSetQuicOverrideCall {
98482	c.urlParams_.Set("requestId", requestId)
98483	return c
98484}
98485
98486// Fields allows partial responses to be retrieved. See
98487// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98488// for more information.
98489func (c *TargetHttpsProxiesSetQuicOverrideCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetQuicOverrideCall {
98490	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98491	return c
98492}
98493
98494// Context sets the context to be used in this call's Do method. Any
98495// pending HTTP request will be aborted if the provided context is
98496// canceled.
98497func (c *TargetHttpsProxiesSetQuicOverrideCall) Context(ctx context.Context) *TargetHttpsProxiesSetQuicOverrideCall {
98498	c.ctx_ = ctx
98499	return c
98500}
98501
98502// Header returns an http.Header that can be modified by the caller to
98503// add HTTP headers to the request.
98504func (c *TargetHttpsProxiesSetQuicOverrideCall) Header() http.Header {
98505	if c.header_ == nil {
98506		c.header_ = make(http.Header)
98507	}
98508	return c.header_
98509}
98510
98511func (c *TargetHttpsProxiesSetQuicOverrideCall) doRequest(alt string) (*http.Response, error) {
98512	reqHeaders := make(http.Header)
98513	for k, v := range c.header_ {
98514		reqHeaders[k] = v
98515	}
98516	reqHeaders.Set("User-Agent", c.s.userAgent())
98517	var body io.Reader = nil
98518	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetquicoverriderequest)
98519	if err != nil {
98520		return nil, err
98521	}
98522	reqHeaders.Set("Content-Type", "application/json")
98523	c.urlParams_.Set("alt", alt)
98524	c.urlParams_.Set("prettyPrint", "false")
98525	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride")
98526	urls += "?" + c.urlParams_.Encode()
98527	req, err := http.NewRequest("POST", urls, body)
98528	if err != nil {
98529		return nil, err
98530	}
98531	req.Header = reqHeaders
98532	googleapi.Expand(req.URL, map[string]string{
98533		"project":          c.project,
98534		"targetHttpsProxy": c.targetHttpsProxy,
98535	})
98536	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98537}
98538
98539// Do executes the "compute.targetHttpsProxies.setQuicOverride" call.
98540// Exactly one of *Operation or error will be non-nil. Any non-2xx
98541// status code is an error. Response headers are in either
98542// *Operation.ServerResponse.Header or (if a response was returned at
98543// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98544// to check whether the returned error was because
98545// http.StatusNotModified was returned.
98546func (c *TargetHttpsProxiesSetQuicOverrideCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98547	gensupport.SetOptions(c.urlParams_, opts...)
98548	res, err := c.doRequest("json")
98549	if res != nil && res.StatusCode == http.StatusNotModified {
98550		if res.Body != nil {
98551			res.Body.Close()
98552		}
98553		return nil, &googleapi.Error{
98554			Code:   res.StatusCode,
98555			Header: res.Header,
98556		}
98557	}
98558	if err != nil {
98559		return nil, err
98560	}
98561	defer googleapi.CloseBody(res)
98562	if err := googleapi.CheckResponse(res); err != nil {
98563		return nil, err
98564	}
98565	ret := &Operation{
98566		ServerResponse: googleapi.ServerResponse{
98567			Header:         res.Header,
98568			HTTPStatusCode: res.StatusCode,
98569		},
98570	}
98571	target := &ret
98572	if err := gensupport.DecodeResponse(target, res); err != nil {
98573		return nil, err
98574	}
98575	return ret, nil
98576	// {
98577	//   "description": "Sets the QUIC override policy for TargetHttpsProxy.",
98578	//   "httpMethod": "POST",
98579	//   "id": "compute.targetHttpsProxies.setQuicOverride",
98580	//   "parameterOrder": [
98581	//     "project",
98582	//     "targetHttpsProxy"
98583	//   ],
98584	//   "parameters": {
98585	//     "project": {
98586	//       "description": "Project ID for this request.",
98587	//       "location": "path",
98588	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98589	//       "required": true,
98590	//       "type": "string"
98591	//     },
98592	//     "requestId": {
98593	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98594	//       "location": "query",
98595	//       "type": "string"
98596	//     },
98597	//     "targetHttpsProxy": {
98598	//       "description": "Name of the TargetHttpsProxy resource to set the QUIC override policy for. The name should conform to RFC1035.",
98599	//       "location": "path",
98600	//       "required": true,
98601	//       "type": "string"
98602	//     }
98603	//   },
98604	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride",
98605	//   "request": {
98606	//     "$ref": "TargetHttpsProxiesSetQuicOverrideRequest"
98607	//   },
98608	//   "response": {
98609	//     "$ref": "Operation"
98610	//   },
98611	//   "scopes": [
98612	//     "https://www.googleapis.com/auth/cloud-platform",
98613	//     "https://www.googleapis.com/auth/compute"
98614	//   ]
98615	// }
98616
98617}
98618
98619// method id "compute.targetHttpsProxies.setSslCertificates":
98620
98621type TargetHttpsProxiesSetSslCertificatesCall struct {
98622	s                                           *Service
98623	project                                     string
98624	targetHttpsProxy                            string
98625	targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest
98626	urlParams_                                  gensupport.URLParams
98627	ctx_                                        context.Context
98628	header_                                     http.Header
98629}
98630
98631// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
98632func (r *TargetHttpsProxiesService) SetSslCertificates(project string, targetHttpsProxy string, targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest) *TargetHttpsProxiesSetSslCertificatesCall {
98633	c := &TargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98634	c.project = project
98635	c.targetHttpsProxy = targetHttpsProxy
98636	c.targethttpsproxiessetsslcertificatesrequest = targethttpsproxiessetsslcertificatesrequest
98637	return c
98638}
98639
98640// RequestId sets the optional parameter "requestId": An optional
98641// request ID to identify requests. Specify a unique request ID so that
98642// if you must retry your request, the server will know to ignore the
98643// request if it has already been completed.
98644//
98645// For example, consider a situation where you make an initial request
98646// and the request times out. If you make the request again with the
98647// same request ID, the server can check if original operation with the
98648// same request ID was received, and if so, will ignore the second
98649// request. This prevents clients from accidentally creating duplicate
98650// commitments.
98651//
98652// The request ID must be a valid UUID with the exception that zero UUID
98653// is not supported (00000000-0000-0000-0000-000000000000).
98654func (c *TargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetHttpsProxiesSetSslCertificatesCall {
98655	c.urlParams_.Set("requestId", requestId)
98656	return c
98657}
98658
98659// Fields allows partial responses to be retrieved. See
98660// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98661// for more information.
98662func (c *TargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslCertificatesCall {
98663	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98664	return c
98665}
98666
98667// Context sets the context to be used in this call's Do method. Any
98668// pending HTTP request will be aborted if the provided context is
98669// canceled.
98670func (c *TargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslCertificatesCall {
98671	c.ctx_ = ctx
98672	return c
98673}
98674
98675// Header returns an http.Header that can be modified by the caller to
98676// add HTTP headers to the request.
98677func (c *TargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
98678	if c.header_ == nil {
98679		c.header_ = make(http.Header)
98680	}
98681	return c.header_
98682}
98683
98684func (c *TargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
98685	reqHeaders := make(http.Header)
98686	for k, v := range c.header_ {
98687		reqHeaders[k] = v
98688	}
98689	reqHeaders.Set("User-Agent", c.s.userAgent())
98690	var body io.Reader = nil
98691	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetsslcertificatesrequest)
98692	if err != nil {
98693		return nil, err
98694	}
98695	reqHeaders.Set("Content-Type", "application/json")
98696	c.urlParams_.Set("alt", alt)
98697	c.urlParams_.Set("prettyPrint", "false")
98698	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
98699	urls += "?" + c.urlParams_.Encode()
98700	req, err := http.NewRequest("POST", urls, body)
98701	if err != nil {
98702		return nil, err
98703	}
98704	req.Header = reqHeaders
98705	googleapi.Expand(req.URL, map[string]string{
98706		"project":          c.project,
98707		"targetHttpsProxy": c.targetHttpsProxy,
98708	})
98709	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98710}
98711
98712// Do executes the "compute.targetHttpsProxies.setSslCertificates" call.
98713// Exactly one of *Operation or error will be non-nil. Any non-2xx
98714// status code is an error. Response headers are in either
98715// *Operation.ServerResponse.Header or (if a response was returned at
98716// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98717// to check whether the returned error was because
98718// http.StatusNotModified was returned.
98719func (c *TargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98720	gensupport.SetOptions(c.urlParams_, opts...)
98721	res, err := c.doRequest("json")
98722	if res != nil && res.StatusCode == http.StatusNotModified {
98723		if res.Body != nil {
98724			res.Body.Close()
98725		}
98726		return nil, &googleapi.Error{
98727			Code:   res.StatusCode,
98728			Header: res.Header,
98729		}
98730	}
98731	if err != nil {
98732		return nil, err
98733	}
98734	defer googleapi.CloseBody(res)
98735	if err := googleapi.CheckResponse(res); err != nil {
98736		return nil, err
98737	}
98738	ret := &Operation{
98739		ServerResponse: googleapi.ServerResponse{
98740			Header:         res.Header,
98741			HTTPStatusCode: res.StatusCode,
98742		},
98743	}
98744	target := &ret
98745	if err := gensupport.DecodeResponse(target, res); err != nil {
98746		return nil, err
98747	}
98748	return ret, nil
98749	// {
98750	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
98751	//   "httpMethod": "POST",
98752	//   "id": "compute.targetHttpsProxies.setSslCertificates",
98753	//   "parameterOrder": [
98754	//     "project",
98755	//     "targetHttpsProxy"
98756	//   ],
98757	//   "parameters": {
98758	//     "project": {
98759	//       "description": "Project ID for this request.",
98760	//       "location": "path",
98761	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98762	//       "required": true,
98763	//       "type": "string"
98764	//     },
98765	//     "requestId": {
98766	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98767	//       "location": "query",
98768	//       "type": "string"
98769	//     },
98770	//     "targetHttpsProxy": {
98771	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
98772	//       "location": "path",
98773	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98774	//       "required": true,
98775	//       "type": "string"
98776	//     }
98777	//   },
98778	//   "path": "{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
98779	//   "request": {
98780	//     "$ref": "TargetHttpsProxiesSetSslCertificatesRequest"
98781	//   },
98782	//   "response": {
98783	//     "$ref": "Operation"
98784	//   },
98785	//   "scopes": [
98786	//     "https://www.googleapis.com/auth/cloud-platform",
98787	//     "https://www.googleapis.com/auth/compute"
98788	//   ]
98789	// }
98790
98791}
98792
98793// method id "compute.targetHttpsProxies.setSslPolicy":
98794
98795type TargetHttpsProxiesSetSslPolicyCall struct {
98796	s                  *Service
98797	project            string
98798	targetHttpsProxy   string
98799	sslpolicyreference *SslPolicyReference
98800	urlParams_         gensupport.URLParams
98801	ctx_               context.Context
98802	header_            http.Header
98803}
98804
98805// SetSslPolicy: Sets the SSL policy for TargetHttpsProxy. The SSL
98806// policy specifies the server-side support for SSL features. This
98807// affects connections between clients and the HTTPS proxy load
98808// balancer. They do not affect the connection between the load balancer
98809// and the backends.
98810func (r *TargetHttpsProxiesService) SetSslPolicy(project string, targetHttpsProxy string, sslpolicyreference *SslPolicyReference) *TargetHttpsProxiesSetSslPolicyCall {
98811	c := &TargetHttpsProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98812	c.project = project
98813	c.targetHttpsProxy = targetHttpsProxy
98814	c.sslpolicyreference = sslpolicyreference
98815	return c
98816}
98817
98818// RequestId sets the optional parameter "requestId": An optional
98819// request ID to identify requests. Specify a unique request ID so that
98820// if you must retry your request, the server will know to ignore the
98821// request if it has already been completed.
98822//
98823// For example, consider a situation where you make an initial request
98824// and the request times out. If you make the request again with the
98825// same request ID, the server can check if original operation with the
98826// same request ID was received, and if so, will ignore the second
98827// request. This prevents clients from accidentally creating duplicate
98828// commitments.
98829//
98830// The request ID must be a valid UUID with the exception that zero UUID
98831// is not supported (00000000-0000-0000-0000-000000000000).
98832func (c *TargetHttpsProxiesSetSslPolicyCall) RequestId(requestId string) *TargetHttpsProxiesSetSslPolicyCall {
98833	c.urlParams_.Set("requestId", requestId)
98834	return c
98835}
98836
98837// Fields allows partial responses to be retrieved. See
98838// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98839// for more information.
98840func (c *TargetHttpsProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslPolicyCall {
98841	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98842	return c
98843}
98844
98845// Context sets the context to be used in this call's Do method. Any
98846// pending HTTP request will be aborted if the provided context is
98847// canceled.
98848func (c *TargetHttpsProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslPolicyCall {
98849	c.ctx_ = ctx
98850	return c
98851}
98852
98853// Header returns an http.Header that can be modified by the caller to
98854// add HTTP headers to the request.
98855func (c *TargetHttpsProxiesSetSslPolicyCall) Header() http.Header {
98856	if c.header_ == nil {
98857		c.header_ = make(http.Header)
98858	}
98859	return c.header_
98860}
98861
98862func (c *TargetHttpsProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
98863	reqHeaders := make(http.Header)
98864	for k, v := range c.header_ {
98865		reqHeaders[k] = v
98866	}
98867	reqHeaders.Set("User-Agent", c.s.userAgent())
98868	var body io.Reader = nil
98869	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
98870	if err != nil {
98871		return nil, err
98872	}
98873	reqHeaders.Set("Content-Type", "application/json")
98874	c.urlParams_.Set("alt", alt)
98875	c.urlParams_.Set("prettyPrint", "false")
98876	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy")
98877	urls += "?" + c.urlParams_.Encode()
98878	req, err := http.NewRequest("POST", urls, body)
98879	if err != nil {
98880		return nil, err
98881	}
98882	req.Header = reqHeaders
98883	googleapi.Expand(req.URL, map[string]string{
98884		"project":          c.project,
98885		"targetHttpsProxy": c.targetHttpsProxy,
98886	})
98887	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98888}
98889
98890// Do executes the "compute.targetHttpsProxies.setSslPolicy" call.
98891// Exactly one of *Operation or error will be non-nil. Any non-2xx
98892// status code is an error. Response headers are in either
98893// *Operation.ServerResponse.Header or (if a response was returned at
98894// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98895// to check whether the returned error was because
98896// http.StatusNotModified was returned.
98897func (c *TargetHttpsProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98898	gensupport.SetOptions(c.urlParams_, opts...)
98899	res, err := c.doRequest("json")
98900	if res != nil && res.StatusCode == http.StatusNotModified {
98901		if res.Body != nil {
98902			res.Body.Close()
98903		}
98904		return nil, &googleapi.Error{
98905			Code:   res.StatusCode,
98906			Header: res.Header,
98907		}
98908	}
98909	if err != nil {
98910		return nil, err
98911	}
98912	defer googleapi.CloseBody(res)
98913	if err := googleapi.CheckResponse(res); err != nil {
98914		return nil, err
98915	}
98916	ret := &Operation{
98917		ServerResponse: googleapi.ServerResponse{
98918			Header:         res.Header,
98919			HTTPStatusCode: res.StatusCode,
98920		},
98921	}
98922	target := &ret
98923	if err := gensupport.DecodeResponse(target, res); err != nil {
98924		return nil, err
98925	}
98926	return ret, nil
98927	// {
98928	//   "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.",
98929	//   "httpMethod": "POST",
98930	//   "id": "compute.targetHttpsProxies.setSslPolicy",
98931	//   "parameterOrder": [
98932	//     "project",
98933	//     "targetHttpsProxy"
98934	//   ],
98935	//   "parameters": {
98936	//     "project": {
98937	//       "description": "Project ID for this request.",
98938	//       "location": "path",
98939	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98940	//       "required": true,
98941	//       "type": "string"
98942	//     },
98943	//     "requestId": {
98944	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98945	//       "location": "query",
98946	//       "type": "string"
98947	//     },
98948	//     "targetHttpsProxy": {
98949	//       "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.",
98950	//       "location": "path",
98951	//       "required": true,
98952	//       "type": "string"
98953	//     }
98954	//   },
98955	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy",
98956	//   "request": {
98957	//     "$ref": "SslPolicyReference"
98958	//   },
98959	//   "response": {
98960	//     "$ref": "Operation"
98961	//   },
98962	//   "scopes": [
98963	//     "https://www.googleapis.com/auth/cloud-platform",
98964	//     "https://www.googleapis.com/auth/compute"
98965	//   ]
98966	// }
98967
98968}
98969
98970// method id "compute.targetHttpsProxies.setUrlMap":
98971
98972type TargetHttpsProxiesSetUrlMapCall struct {
98973	s                *Service
98974	project          string
98975	targetHttpsProxy string
98976	urlmapreference  *UrlMapReference
98977	urlParams_       gensupport.URLParams
98978	ctx_             context.Context
98979	header_          http.Header
98980}
98981
98982// SetUrlMap: Changes the URL map for TargetHttpsProxy.
98983func (r *TargetHttpsProxiesService) SetUrlMap(project string, targetHttpsProxy string, urlmapreference *UrlMapReference) *TargetHttpsProxiesSetUrlMapCall {
98984	c := &TargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98985	c.project = project
98986	c.targetHttpsProxy = targetHttpsProxy
98987	c.urlmapreference = urlmapreference
98988	return c
98989}
98990
98991// RequestId sets the optional parameter "requestId": An optional
98992// request ID to identify requests. Specify a unique request ID so that
98993// if you must retry your request, the server will know to ignore the
98994// request if it has already been completed.
98995//
98996// For example, consider a situation where you make an initial request
98997// and the request times out. If you make the request again with the
98998// same request ID, the server can check if original operation with the
98999// same request ID was received, and if so, will ignore the second
99000// request. This prevents clients from accidentally creating duplicate
99001// commitments.
99002//
99003// The request ID must be a valid UUID with the exception that zero UUID
99004// is not supported (00000000-0000-0000-0000-000000000000).
99005func (c *TargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpsProxiesSetUrlMapCall {
99006	c.urlParams_.Set("requestId", requestId)
99007	return c
99008}
99009
99010// Fields allows partial responses to be retrieved. See
99011// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99012// for more information.
99013func (c *TargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetUrlMapCall {
99014	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99015	return c
99016}
99017
99018// Context sets the context to be used in this call's Do method. Any
99019// pending HTTP request will be aborted if the provided context is
99020// canceled.
99021func (c *TargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpsProxiesSetUrlMapCall {
99022	c.ctx_ = ctx
99023	return c
99024}
99025
99026// Header returns an http.Header that can be modified by the caller to
99027// add HTTP headers to the request.
99028func (c *TargetHttpsProxiesSetUrlMapCall) Header() http.Header {
99029	if c.header_ == nil {
99030		c.header_ = make(http.Header)
99031	}
99032	return c.header_
99033}
99034
99035func (c *TargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
99036	reqHeaders := make(http.Header)
99037	for k, v := range c.header_ {
99038		reqHeaders[k] = v
99039	}
99040	reqHeaders.Set("User-Agent", c.s.userAgent())
99041	var body io.Reader = nil
99042	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
99043	if err != nil {
99044		return nil, err
99045	}
99046	reqHeaders.Set("Content-Type", "application/json")
99047	c.urlParams_.Set("alt", alt)
99048	c.urlParams_.Set("prettyPrint", "false")
99049	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
99050	urls += "?" + c.urlParams_.Encode()
99051	req, err := http.NewRequest("POST", urls, body)
99052	if err != nil {
99053		return nil, err
99054	}
99055	req.Header = reqHeaders
99056	googleapi.Expand(req.URL, map[string]string{
99057		"project":          c.project,
99058		"targetHttpsProxy": c.targetHttpsProxy,
99059	})
99060	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99061}
99062
99063// Do executes the "compute.targetHttpsProxies.setUrlMap" call.
99064// Exactly one of *Operation or error will be non-nil. Any non-2xx
99065// status code is an error. Response headers are in either
99066// *Operation.ServerResponse.Header or (if a response was returned at
99067// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99068// to check whether the returned error was because
99069// http.StatusNotModified was returned.
99070func (c *TargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99071	gensupport.SetOptions(c.urlParams_, opts...)
99072	res, err := c.doRequest("json")
99073	if res != nil && res.StatusCode == http.StatusNotModified {
99074		if res.Body != nil {
99075			res.Body.Close()
99076		}
99077		return nil, &googleapi.Error{
99078			Code:   res.StatusCode,
99079			Header: res.Header,
99080		}
99081	}
99082	if err != nil {
99083		return nil, err
99084	}
99085	defer googleapi.CloseBody(res)
99086	if err := googleapi.CheckResponse(res); err != nil {
99087		return nil, err
99088	}
99089	ret := &Operation{
99090		ServerResponse: googleapi.ServerResponse{
99091			Header:         res.Header,
99092			HTTPStatusCode: res.StatusCode,
99093		},
99094	}
99095	target := &ret
99096	if err := gensupport.DecodeResponse(target, res); err != nil {
99097		return nil, err
99098	}
99099	return ret, nil
99100	// {
99101	//   "description": "Changes the URL map for TargetHttpsProxy.",
99102	//   "httpMethod": "POST",
99103	//   "id": "compute.targetHttpsProxies.setUrlMap",
99104	//   "parameterOrder": [
99105	//     "project",
99106	//     "targetHttpsProxy"
99107	//   ],
99108	//   "parameters": {
99109	//     "project": {
99110	//       "description": "Project ID for this request.",
99111	//       "location": "path",
99112	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99113	//       "required": true,
99114	//       "type": "string"
99115	//     },
99116	//     "requestId": {
99117	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
99118	//       "location": "query",
99119	//       "type": "string"
99120	//     },
99121	//     "targetHttpsProxy": {
99122	//       "description": "Name of the TargetHttpsProxy resource whose URL map is to be set.",
99123	//       "location": "path",
99124	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99125	//       "required": true,
99126	//       "type": "string"
99127	//     }
99128	//   },
99129	//   "path": "{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
99130	//   "request": {
99131	//     "$ref": "UrlMapReference"
99132	//   },
99133	//   "response": {
99134	//     "$ref": "Operation"
99135	//   },
99136	//   "scopes": [
99137	//     "https://www.googleapis.com/auth/cloud-platform",
99138	//     "https://www.googleapis.com/auth/compute"
99139	//   ]
99140	// }
99141
99142}
99143
99144// method id "compute.targetInstances.aggregatedList":
99145
99146type TargetInstancesAggregatedListCall struct {
99147	s            *Service
99148	project      string
99149	urlParams_   gensupport.URLParams
99150	ifNoneMatch_ string
99151	ctx_         context.Context
99152	header_      http.Header
99153}
99154
99155// AggregatedList: Retrieves an aggregated list of target instances.
99156// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/aggregatedList
99157func (r *TargetInstancesService) AggregatedList(project string) *TargetInstancesAggregatedListCall {
99158	c := &TargetInstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99159	c.project = project
99160	return c
99161}
99162
99163// Filter sets the optional parameter "filter": A filter expression that
99164// filters resources listed in the response. The expression must specify
99165// the field name, a comparison operator, and the value that you want to
99166// use for filtering. The value must be a string, a number, or a
99167// boolean. The comparison operator must be either =, !=, >, or <.
99168//
99169// For example, if you are filtering Compute Engine instances, you can
99170// exclude instances named example-instance by specifying name !=
99171// example-instance.
99172//
99173// You can also filter nested fields. For example, you could specify
99174// scheduling.automaticRestart = false to include instances only if they
99175// are not scheduled for automatic restarts. You can use filtering on
99176// nested fields to filter based on resource labels.
99177//
99178// To filter on multiple expressions, provide each separate expression
99179// within parentheses. For example, (scheduling.automaticRestart = true)
99180// (cpuPlatform = "Intel Skylake"). By default, each expression is an
99181// AND expression. However, you can include AND and OR expressions
99182// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
99183// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
99184// true).
99185func (c *TargetInstancesAggregatedListCall) Filter(filter string) *TargetInstancesAggregatedListCall {
99186	c.urlParams_.Set("filter", filter)
99187	return c
99188}
99189
99190// MaxResults sets the optional parameter "maxResults": The maximum
99191// number of results per page that should be returned. If the number of
99192// available results is larger than maxResults, Compute Engine returns a
99193// nextPageToken that can be used to get the next page of results in
99194// subsequent list requests. Acceptable values are 0 to 500, inclusive.
99195// (Default: 500)
99196func (c *TargetInstancesAggregatedListCall) MaxResults(maxResults int64) *TargetInstancesAggregatedListCall {
99197	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
99198	return c
99199}
99200
99201// OrderBy sets the optional parameter "orderBy": Sorts list results by
99202// a certain order. By default, results are returned in alphanumerical
99203// order based on the resource name.
99204//
99205// You can also sort results in descending order based on the creation
99206// timestamp using orderBy="creationTimestamp desc". This sorts results
99207// based on the creationTimestamp field in reverse chronological order
99208// (newest result first). Use this to sort resources like operations so
99209// that the newest operation is returned first.
99210//
99211// Currently, only sorting by name or creationTimestamp desc is
99212// supported.
99213func (c *TargetInstancesAggregatedListCall) OrderBy(orderBy string) *TargetInstancesAggregatedListCall {
99214	c.urlParams_.Set("orderBy", orderBy)
99215	return c
99216}
99217
99218// PageToken sets the optional parameter "pageToken": Specifies a page
99219// token to use. Set pageToken to the nextPageToken returned by a
99220// previous list request to get the next page of results.
99221func (c *TargetInstancesAggregatedListCall) PageToken(pageToken string) *TargetInstancesAggregatedListCall {
99222	c.urlParams_.Set("pageToken", pageToken)
99223	return c
99224}
99225
99226// Fields allows partial responses to be retrieved. See
99227// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99228// for more information.
99229func (c *TargetInstancesAggregatedListCall) Fields(s ...googleapi.Field) *TargetInstancesAggregatedListCall {
99230	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99231	return c
99232}
99233
99234// IfNoneMatch sets the optional parameter which makes the operation
99235// fail if the object's ETag matches the given value. This is useful for
99236// getting updates only after the object has changed since the last
99237// request. Use googleapi.IsNotModified to check whether the response
99238// error from Do is the result of In-None-Match.
99239func (c *TargetInstancesAggregatedListCall) IfNoneMatch(entityTag string) *TargetInstancesAggregatedListCall {
99240	c.ifNoneMatch_ = entityTag
99241	return c
99242}
99243
99244// Context sets the context to be used in this call's Do method. Any
99245// pending HTTP request will be aborted if the provided context is
99246// canceled.
99247func (c *TargetInstancesAggregatedListCall) Context(ctx context.Context) *TargetInstancesAggregatedListCall {
99248	c.ctx_ = ctx
99249	return c
99250}
99251
99252// Header returns an http.Header that can be modified by the caller to
99253// add HTTP headers to the request.
99254func (c *TargetInstancesAggregatedListCall) Header() http.Header {
99255	if c.header_ == nil {
99256		c.header_ = make(http.Header)
99257	}
99258	return c.header_
99259}
99260
99261func (c *TargetInstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
99262	reqHeaders := make(http.Header)
99263	for k, v := range c.header_ {
99264		reqHeaders[k] = v
99265	}
99266	reqHeaders.Set("User-Agent", c.s.userAgent())
99267	if c.ifNoneMatch_ != "" {
99268		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99269	}
99270	var body io.Reader = nil
99271	c.urlParams_.Set("alt", alt)
99272	c.urlParams_.Set("prettyPrint", "false")
99273	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetInstances")
99274	urls += "?" + c.urlParams_.Encode()
99275	req, err := http.NewRequest("GET", urls, body)
99276	if err != nil {
99277		return nil, err
99278	}
99279	req.Header = reqHeaders
99280	googleapi.Expand(req.URL, map[string]string{
99281		"project": c.project,
99282	})
99283	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99284}
99285
99286// Do executes the "compute.targetInstances.aggregatedList" call.
99287// Exactly one of *TargetInstanceAggregatedList or error will be
99288// non-nil. Any non-2xx status code is an error. Response headers are in
99289// either *TargetInstanceAggregatedList.ServerResponse.Header or (if a
99290// response was returned at all) in error.(*googleapi.Error).Header. Use
99291// googleapi.IsNotModified to check whether the returned error was
99292// because http.StatusNotModified was returned.
99293func (c *TargetInstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceAggregatedList, error) {
99294	gensupport.SetOptions(c.urlParams_, opts...)
99295	res, err := c.doRequest("json")
99296	if res != nil && res.StatusCode == http.StatusNotModified {
99297		if res.Body != nil {
99298			res.Body.Close()
99299		}
99300		return nil, &googleapi.Error{
99301			Code:   res.StatusCode,
99302			Header: res.Header,
99303		}
99304	}
99305	if err != nil {
99306		return nil, err
99307	}
99308	defer googleapi.CloseBody(res)
99309	if err := googleapi.CheckResponse(res); err != nil {
99310		return nil, err
99311	}
99312	ret := &TargetInstanceAggregatedList{
99313		ServerResponse: googleapi.ServerResponse{
99314			Header:         res.Header,
99315			HTTPStatusCode: res.StatusCode,
99316		},
99317	}
99318	target := &ret
99319	if err := gensupport.DecodeResponse(target, res); err != nil {
99320		return nil, err
99321	}
99322	return ret, nil
99323	// {
99324	//   "description": "Retrieves an aggregated list of target instances.",
99325	//   "httpMethod": "GET",
99326	//   "id": "compute.targetInstances.aggregatedList",
99327	//   "parameterOrder": [
99328	//     "project"
99329	//   ],
99330	//   "parameters": {
99331	//     "filter": {
99332	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
99333	//       "location": "query",
99334	//       "type": "string"
99335	//     },
99336	//     "maxResults": {
99337	//       "default": "500",
99338	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
99339	//       "format": "uint32",
99340	//       "location": "query",
99341	//       "minimum": "0",
99342	//       "type": "integer"
99343	//     },
99344	//     "orderBy": {
99345	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
99346	//       "location": "query",
99347	//       "type": "string"
99348	//     },
99349	//     "pageToken": {
99350	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
99351	//       "location": "query",
99352	//       "type": "string"
99353	//     },
99354	//     "project": {
99355	//       "description": "Project ID for this request.",
99356	//       "location": "path",
99357	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99358	//       "required": true,
99359	//       "type": "string"
99360	//     }
99361	//   },
99362	//   "path": "{project}/aggregated/targetInstances",
99363	//   "response": {
99364	//     "$ref": "TargetInstanceAggregatedList"
99365	//   },
99366	//   "scopes": [
99367	//     "https://www.googleapis.com/auth/cloud-platform",
99368	//     "https://www.googleapis.com/auth/compute",
99369	//     "https://www.googleapis.com/auth/compute.readonly"
99370	//   ]
99371	// }
99372
99373}
99374
99375// Pages invokes f for each page of results.
99376// A non-nil error returned from f will halt the iteration.
99377// The provided context supersedes any context provided to the Context method.
99378func (c *TargetInstancesAggregatedListCall) Pages(ctx context.Context, f func(*TargetInstanceAggregatedList) error) error {
99379	c.ctx_ = ctx
99380	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
99381	for {
99382		x, err := c.Do()
99383		if err != nil {
99384			return err
99385		}
99386		if err := f(x); err != nil {
99387			return err
99388		}
99389		if x.NextPageToken == "" {
99390			return nil
99391		}
99392		c.PageToken(x.NextPageToken)
99393	}
99394}
99395
99396// method id "compute.targetInstances.delete":
99397
99398type TargetInstancesDeleteCall struct {
99399	s              *Service
99400	project        string
99401	zone           string
99402	targetInstance string
99403	urlParams_     gensupport.URLParams
99404	ctx_           context.Context
99405	header_        http.Header
99406}
99407
99408// Delete: Deletes the specified TargetInstance resource.
99409// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/delete
99410func (r *TargetInstancesService) Delete(project string, zone string, targetInstance string) *TargetInstancesDeleteCall {
99411	c := &TargetInstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99412	c.project = project
99413	c.zone = zone
99414	c.targetInstance = targetInstance
99415	return c
99416}
99417
99418// RequestId sets the optional parameter "requestId": An optional
99419// request ID to identify requests. Specify a unique request ID so that
99420// if you must retry your request, the server will know to ignore the
99421// request if it has already been completed.
99422//
99423// For example, consider a situation where you make an initial request
99424// and the request times out. If you make the request again with the
99425// same request ID, the server can check if original operation with the
99426// same request ID was received, and if so, will ignore the second
99427// request. This prevents clients from accidentally creating duplicate
99428// commitments.
99429//
99430// The request ID must be a valid UUID with the exception that zero UUID
99431// is not supported (00000000-0000-0000-0000-000000000000).
99432func (c *TargetInstancesDeleteCall) RequestId(requestId string) *TargetInstancesDeleteCall {
99433	c.urlParams_.Set("requestId", requestId)
99434	return c
99435}
99436
99437// Fields allows partial responses to be retrieved. See
99438// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99439// for more information.
99440func (c *TargetInstancesDeleteCall) Fields(s ...googleapi.Field) *TargetInstancesDeleteCall {
99441	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99442	return c
99443}
99444
99445// Context sets the context to be used in this call's Do method. Any
99446// pending HTTP request will be aborted if the provided context is
99447// canceled.
99448func (c *TargetInstancesDeleteCall) Context(ctx context.Context) *TargetInstancesDeleteCall {
99449	c.ctx_ = ctx
99450	return c
99451}
99452
99453// Header returns an http.Header that can be modified by the caller to
99454// add HTTP headers to the request.
99455func (c *TargetInstancesDeleteCall) Header() http.Header {
99456	if c.header_ == nil {
99457		c.header_ = make(http.Header)
99458	}
99459	return c.header_
99460}
99461
99462func (c *TargetInstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
99463	reqHeaders := make(http.Header)
99464	for k, v := range c.header_ {
99465		reqHeaders[k] = v
99466	}
99467	reqHeaders.Set("User-Agent", c.s.userAgent())
99468	var body io.Reader = nil
99469	c.urlParams_.Set("alt", alt)
99470	c.urlParams_.Set("prettyPrint", "false")
99471	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{targetInstance}")
99472	urls += "?" + c.urlParams_.Encode()
99473	req, err := http.NewRequest("DELETE", urls, body)
99474	if err != nil {
99475		return nil, err
99476	}
99477	req.Header = reqHeaders
99478	googleapi.Expand(req.URL, map[string]string{
99479		"project":        c.project,
99480		"zone":           c.zone,
99481		"targetInstance": c.targetInstance,
99482	})
99483	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99484}
99485
99486// Do executes the "compute.targetInstances.delete" call.
99487// Exactly one of *Operation or error will be non-nil. Any non-2xx
99488// status code is an error. Response headers are in either
99489// *Operation.ServerResponse.Header or (if a response was returned at
99490// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99491// to check whether the returned error was because
99492// http.StatusNotModified was returned.
99493func (c *TargetInstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99494	gensupport.SetOptions(c.urlParams_, opts...)
99495	res, err := c.doRequest("json")
99496	if res != nil && res.StatusCode == http.StatusNotModified {
99497		if res.Body != nil {
99498			res.Body.Close()
99499		}
99500		return nil, &googleapi.Error{
99501			Code:   res.StatusCode,
99502			Header: res.Header,
99503		}
99504	}
99505	if err != nil {
99506		return nil, err
99507	}
99508	defer googleapi.CloseBody(res)
99509	if err := googleapi.CheckResponse(res); err != nil {
99510		return nil, err
99511	}
99512	ret := &Operation{
99513		ServerResponse: googleapi.ServerResponse{
99514			Header:         res.Header,
99515			HTTPStatusCode: res.StatusCode,
99516		},
99517	}
99518	target := &ret
99519	if err := gensupport.DecodeResponse(target, res); err != nil {
99520		return nil, err
99521	}
99522	return ret, nil
99523	// {
99524	//   "description": "Deletes the specified TargetInstance resource.",
99525	//   "httpMethod": "DELETE",
99526	//   "id": "compute.targetInstances.delete",
99527	//   "parameterOrder": [
99528	//     "project",
99529	//     "zone",
99530	//     "targetInstance"
99531	//   ],
99532	//   "parameters": {
99533	//     "project": {
99534	//       "description": "Project ID for this request.",
99535	//       "location": "path",
99536	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99537	//       "required": true,
99538	//       "type": "string"
99539	//     },
99540	//     "requestId": {
99541	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
99542	//       "location": "query",
99543	//       "type": "string"
99544	//     },
99545	//     "targetInstance": {
99546	//       "description": "Name of the TargetInstance resource to delete.",
99547	//       "location": "path",
99548	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99549	//       "required": true,
99550	//       "type": "string"
99551	//     },
99552	//     "zone": {
99553	//       "description": "Name of the zone scoping this request.",
99554	//       "location": "path",
99555	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99556	//       "required": true,
99557	//       "type": "string"
99558	//     }
99559	//   },
99560	//   "path": "{project}/zones/{zone}/targetInstances/{targetInstance}",
99561	//   "response": {
99562	//     "$ref": "Operation"
99563	//   },
99564	//   "scopes": [
99565	//     "https://www.googleapis.com/auth/cloud-platform",
99566	//     "https://www.googleapis.com/auth/compute"
99567	//   ]
99568	// }
99569
99570}
99571
99572// method id "compute.targetInstances.get":
99573
99574type TargetInstancesGetCall struct {
99575	s              *Service
99576	project        string
99577	zone           string
99578	targetInstance string
99579	urlParams_     gensupport.URLParams
99580	ifNoneMatch_   string
99581	ctx_           context.Context
99582	header_        http.Header
99583}
99584
99585// Get: Returns the specified TargetInstance resource. Gets a list of
99586// available target instances by making a list() request.
99587// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/get
99588func (r *TargetInstancesService) Get(project string, zone string, targetInstance string) *TargetInstancesGetCall {
99589	c := &TargetInstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99590	c.project = project
99591	c.zone = zone
99592	c.targetInstance = targetInstance
99593	return c
99594}
99595
99596// Fields allows partial responses to be retrieved. See
99597// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99598// for more information.
99599func (c *TargetInstancesGetCall) Fields(s ...googleapi.Field) *TargetInstancesGetCall {
99600	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99601	return c
99602}
99603
99604// IfNoneMatch sets the optional parameter which makes the operation
99605// fail if the object's ETag matches the given value. This is useful for
99606// getting updates only after the object has changed since the last
99607// request. Use googleapi.IsNotModified to check whether the response
99608// error from Do is the result of In-None-Match.
99609func (c *TargetInstancesGetCall) IfNoneMatch(entityTag string) *TargetInstancesGetCall {
99610	c.ifNoneMatch_ = entityTag
99611	return c
99612}
99613
99614// Context sets the context to be used in this call's Do method. Any
99615// pending HTTP request will be aborted if the provided context is
99616// canceled.
99617func (c *TargetInstancesGetCall) Context(ctx context.Context) *TargetInstancesGetCall {
99618	c.ctx_ = ctx
99619	return c
99620}
99621
99622// Header returns an http.Header that can be modified by the caller to
99623// add HTTP headers to the request.
99624func (c *TargetInstancesGetCall) Header() http.Header {
99625	if c.header_ == nil {
99626		c.header_ = make(http.Header)
99627	}
99628	return c.header_
99629}
99630
99631func (c *TargetInstancesGetCall) doRequest(alt string) (*http.Response, error) {
99632	reqHeaders := make(http.Header)
99633	for k, v := range c.header_ {
99634		reqHeaders[k] = v
99635	}
99636	reqHeaders.Set("User-Agent", c.s.userAgent())
99637	if c.ifNoneMatch_ != "" {
99638		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99639	}
99640	var body io.Reader = nil
99641	c.urlParams_.Set("alt", alt)
99642	c.urlParams_.Set("prettyPrint", "false")
99643	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{targetInstance}")
99644	urls += "?" + c.urlParams_.Encode()
99645	req, err := http.NewRequest("GET", urls, body)
99646	if err != nil {
99647		return nil, err
99648	}
99649	req.Header = reqHeaders
99650	googleapi.Expand(req.URL, map[string]string{
99651		"project":        c.project,
99652		"zone":           c.zone,
99653		"targetInstance": c.targetInstance,
99654	})
99655	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99656}
99657
99658// Do executes the "compute.targetInstances.get" call.
99659// Exactly one of *TargetInstance or error will be non-nil. Any non-2xx
99660// status code is an error. Response headers are in either
99661// *TargetInstance.ServerResponse.Header or (if a response was returned
99662// at all) in error.(*googleapi.Error).Header. Use
99663// googleapi.IsNotModified to check whether the returned error was
99664// because http.StatusNotModified was returned.
99665func (c *TargetInstancesGetCall) Do(opts ...googleapi.CallOption) (*TargetInstance, error) {
99666	gensupport.SetOptions(c.urlParams_, opts...)
99667	res, err := c.doRequest("json")
99668	if res != nil && res.StatusCode == http.StatusNotModified {
99669		if res.Body != nil {
99670			res.Body.Close()
99671		}
99672		return nil, &googleapi.Error{
99673			Code:   res.StatusCode,
99674			Header: res.Header,
99675		}
99676	}
99677	if err != nil {
99678		return nil, err
99679	}
99680	defer googleapi.CloseBody(res)
99681	if err := googleapi.CheckResponse(res); err != nil {
99682		return nil, err
99683	}
99684	ret := &TargetInstance{
99685		ServerResponse: googleapi.ServerResponse{
99686			Header:         res.Header,
99687			HTTPStatusCode: res.StatusCode,
99688		},
99689	}
99690	target := &ret
99691	if err := gensupport.DecodeResponse(target, res); err != nil {
99692		return nil, err
99693	}
99694	return ret, nil
99695	// {
99696	//   "description": "Returns the specified TargetInstance resource. Gets a list of available target instances by making a list() request.",
99697	//   "httpMethod": "GET",
99698	//   "id": "compute.targetInstances.get",
99699	//   "parameterOrder": [
99700	//     "project",
99701	//     "zone",
99702	//     "targetInstance"
99703	//   ],
99704	//   "parameters": {
99705	//     "project": {
99706	//       "description": "Project ID for this request.",
99707	//       "location": "path",
99708	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99709	//       "required": true,
99710	//       "type": "string"
99711	//     },
99712	//     "targetInstance": {
99713	//       "description": "Name of the TargetInstance resource to return.",
99714	//       "location": "path",
99715	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99716	//       "required": true,
99717	//       "type": "string"
99718	//     },
99719	//     "zone": {
99720	//       "description": "Name of the zone scoping this request.",
99721	//       "location": "path",
99722	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99723	//       "required": true,
99724	//       "type": "string"
99725	//     }
99726	//   },
99727	//   "path": "{project}/zones/{zone}/targetInstances/{targetInstance}",
99728	//   "response": {
99729	//     "$ref": "TargetInstance"
99730	//   },
99731	//   "scopes": [
99732	//     "https://www.googleapis.com/auth/cloud-platform",
99733	//     "https://www.googleapis.com/auth/compute",
99734	//     "https://www.googleapis.com/auth/compute.readonly"
99735	//   ]
99736	// }
99737
99738}
99739
99740// method id "compute.targetInstances.insert":
99741
99742type TargetInstancesInsertCall struct {
99743	s              *Service
99744	project        string
99745	zone           string
99746	targetinstance *TargetInstance
99747	urlParams_     gensupport.URLParams
99748	ctx_           context.Context
99749	header_        http.Header
99750}
99751
99752// Insert: Creates a TargetInstance resource in the specified project
99753// and zone using the data included in the request.
99754// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/insert
99755func (r *TargetInstancesService) Insert(project string, zone string, targetinstance *TargetInstance) *TargetInstancesInsertCall {
99756	c := &TargetInstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99757	c.project = project
99758	c.zone = zone
99759	c.targetinstance = targetinstance
99760	return c
99761}
99762
99763// RequestId sets the optional parameter "requestId": An optional
99764// request ID to identify requests. Specify a unique request ID so that
99765// if you must retry your request, the server will know to ignore the
99766// request if it has already been completed.
99767//
99768// For example, consider a situation where you make an initial request
99769// and the request times out. If you make the request again with the
99770// same request ID, the server can check if original operation with the
99771// same request ID was received, and if so, will ignore the second
99772// request. This prevents clients from accidentally creating duplicate
99773// commitments.
99774//
99775// The request ID must be a valid UUID with the exception that zero UUID
99776// is not supported (00000000-0000-0000-0000-000000000000).
99777func (c *TargetInstancesInsertCall) RequestId(requestId string) *TargetInstancesInsertCall {
99778	c.urlParams_.Set("requestId", requestId)
99779	return c
99780}
99781
99782// Fields allows partial responses to be retrieved. See
99783// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99784// for more information.
99785func (c *TargetInstancesInsertCall) Fields(s ...googleapi.Field) *TargetInstancesInsertCall {
99786	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99787	return c
99788}
99789
99790// Context sets the context to be used in this call's Do method. Any
99791// pending HTTP request will be aborted if the provided context is
99792// canceled.
99793func (c *TargetInstancesInsertCall) Context(ctx context.Context) *TargetInstancesInsertCall {
99794	c.ctx_ = ctx
99795	return c
99796}
99797
99798// Header returns an http.Header that can be modified by the caller to
99799// add HTTP headers to the request.
99800func (c *TargetInstancesInsertCall) Header() http.Header {
99801	if c.header_ == nil {
99802		c.header_ = make(http.Header)
99803	}
99804	return c.header_
99805}
99806
99807func (c *TargetInstancesInsertCall) doRequest(alt string) (*http.Response, error) {
99808	reqHeaders := make(http.Header)
99809	for k, v := range c.header_ {
99810		reqHeaders[k] = v
99811	}
99812	reqHeaders.Set("User-Agent", c.s.userAgent())
99813	var body io.Reader = nil
99814	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetinstance)
99815	if err != nil {
99816		return nil, err
99817	}
99818	reqHeaders.Set("Content-Type", "application/json")
99819	c.urlParams_.Set("alt", alt)
99820	c.urlParams_.Set("prettyPrint", "false")
99821	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances")
99822	urls += "?" + c.urlParams_.Encode()
99823	req, err := http.NewRequest("POST", urls, body)
99824	if err != nil {
99825		return nil, err
99826	}
99827	req.Header = reqHeaders
99828	googleapi.Expand(req.URL, map[string]string{
99829		"project": c.project,
99830		"zone":    c.zone,
99831	})
99832	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99833}
99834
99835// Do executes the "compute.targetInstances.insert" call.
99836// Exactly one of *Operation or error will be non-nil. Any non-2xx
99837// status code is an error. Response headers are in either
99838// *Operation.ServerResponse.Header or (if a response was returned at
99839// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99840// to check whether the returned error was because
99841// http.StatusNotModified was returned.
99842func (c *TargetInstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99843	gensupport.SetOptions(c.urlParams_, opts...)
99844	res, err := c.doRequest("json")
99845	if res != nil && res.StatusCode == http.StatusNotModified {
99846		if res.Body != nil {
99847			res.Body.Close()
99848		}
99849		return nil, &googleapi.Error{
99850			Code:   res.StatusCode,
99851			Header: res.Header,
99852		}
99853	}
99854	if err != nil {
99855		return nil, err
99856	}
99857	defer googleapi.CloseBody(res)
99858	if err := googleapi.CheckResponse(res); err != nil {
99859		return nil, err
99860	}
99861	ret := &Operation{
99862		ServerResponse: googleapi.ServerResponse{
99863			Header:         res.Header,
99864			HTTPStatusCode: res.StatusCode,
99865		},
99866	}
99867	target := &ret
99868	if err := gensupport.DecodeResponse(target, res); err != nil {
99869		return nil, err
99870	}
99871	return ret, nil
99872	// {
99873	//   "description": "Creates a TargetInstance resource in the specified project and zone using the data included in the request.",
99874	//   "httpMethod": "POST",
99875	//   "id": "compute.targetInstances.insert",
99876	//   "parameterOrder": [
99877	//     "project",
99878	//     "zone"
99879	//   ],
99880	//   "parameters": {
99881	//     "project": {
99882	//       "description": "Project ID for this request.",
99883	//       "location": "path",
99884	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99885	//       "required": true,
99886	//       "type": "string"
99887	//     },
99888	//     "requestId": {
99889	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
99890	//       "location": "query",
99891	//       "type": "string"
99892	//     },
99893	//     "zone": {
99894	//       "description": "Name of the zone scoping this request.",
99895	//       "location": "path",
99896	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99897	//       "required": true,
99898	//       "type": "string"
99899	//     }
99900	//   },
99901	//   "path": "{project}/zones/{zone}/targetInstances",
99902	//   "request": {
99903	//     "$ref": "TargetInstance"
99904	//   },
99905	//   "response": {
99906	//     "$ref": "Operation"
99907	//   },
99908	//   "scopes": [
99909	//     "https://www.googleapis.com/auth/cloud-platform",
99910	//     "https://www.googleapis.com/auth/compute"
99911	//   ]
99912	// }
99913
99914}
99915
99916// method id "compute.targetInstances.list":
99917
99918type TargetInstancesListCall struct {
99919	s            *Service
99920	project      string
99921	zone         string
99922	urlParams_   gensupport.URLParams
99923	ifNoneMatch_ string
99924	ctx_         context.Context
99925	header_      http.Header
99926}
99927
99928// List: Retrieves a list of TargetInstance resources available to the
99929// specified project and zone.
99930// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/list
99931func (r *TargetInstancesService) List(project string, zone string) *TargetInstancesListCall {
99932	c := &TargetInstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99933	c.project = project
99934	c.zone = zone
99935	return c
99936}
99937
99938// Filter sets the optional parameter "filter": A filter expression that
99939// filters resources listed in the response. The expression must specify
99940// the field name, a comparison operator, and the value that you want to
99941// use for filtering. The value must be a string, a number, or a
99942// boolean. The comparison operator must be either =, !=, >, or <.
99943//
99944// For example, if you are filtering Compute Engine instances, you can
99945// exclude instances named example-instance by specifying name !=
99946// example-instance.
99947//
99948// You can also filter nested fields. For example, you could specify
99949// scheduling.automaticRestart = false to include instances only if they
99950// are not scheduled for automatic restarts. You can use filtering on
99951// nested fields to filter based on resource labels.
99952//
99953// To filter on multiple expressions, provide each separate expression
99954// within parentheses. For example, (scheduling.automaticRestart = true)
99955// (cpuPlatform = "Intel Skylake"). By default, each expression is an
99956// AND expression. However, you can include AND and OR expressions
99957// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
99958// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
99959// true).
99960func (c *TargetInstancesListCall) Filter(filter string) *TargetInstancesListCall {
99961	c.urlParams_.Set("filter", filter)
99962	return c
99963}
99964
99965// MaxResults sets the optional parameter "maxResults": The maximum
99966// number of results per page that should be returned. If the number of
99967// available results is larger than maxResults, Compute Engine returns a
99968// nextPageToken that can be used to get the next page of results in
99969// subsequent list requests. Acceptable values are 0 to 500, inclusive.
99970// (Default: 500)
99971func (c *TargetInstancesListCall) MaxResults(maxResults int64) *TargetInstancesListCall {
99972	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
99973	return c
99974}
99975
99976// OrderBy sets the optional parameter "orderBy": Sorts list results by
99977// a certain order. By default, results are returned in alphanumerical
99978// order based on the resource name.
99979//
99980// You can also sort results in descending order based on the creation
99981// timestamp using orderBy="creationTimestamp desc". This sorts results
99982// based on the creationTimestamp field in reverse chronological order
99983// (newest result first). Use this to sort resources like operations so
99984// that the newest operation is returned first.
99985//
99986// Currently, only sorting by name or creationTimestamp desc is
99987// supported.
99988func (c *TargetInstancesListCall) OrderBy(orderBy string) *TargetInstancesListCall {
99989	c.urlParams_.Set("orderBy", orderBy)
99990	return c
99991}
99992
99993// PageToken sets the optional parameter "pageToken": Specifies a page
99994// token to use. Set pageToken to the nextPageToken returned by a
99995// previous list request to get the next page of results.
99996func (c *TargetInstancesListCall) PageToken(pageToken string) *TargetInstancesListCall {
99997	c.urlParams_.Set("pageToken", pageToken)
99998	return c
99999}
100000
100001// Fields allows partial responses to be retrieved. See
100002// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100003// for more information.
100004func (c *TargetInstancesListCall) Fields(s ...googleapi.Field) *TargetInstancesListCall {
100005	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100006	return c
100007}
100008
100009// IfNoneMatch sets the optional parameter which makes the operation
100010// fail if the object's ETag matches the given value. This is useful for
100011// getting updates only after the object has changed since the last
100012// request. Use googleapi.IsNotModified to check whether the response
100013// error from Do is the result of In-None-Match.
100014func (c *TargetInstancesListCall) IfNoneMatch(entityTag string) *TargetInstancesListCall {
100015	c.ifNoneMatch_ = entityTag
100016	return c
100017}
100018
100019// Context sets the context to be used in this call's Do method. Any
100020// pending HTTP request will be aborted if the provided context is
100021// canceled.
100022func (c *TargetInstancesListCall) Context(ctx context.Context) *TargetInstancesListCall {
100023	c.ctx_ = ctx
100024	return c
100025}
100026
100027// Header returns an http.Header that can be modified by the caller to
100028// add HTTP headers to the request.
100029func (c *TargetInstancesListCall) Header() http.Header {
100030	if c.header_ == nil {
100031		c.header_ = make(http.Header)
100032	}
100033	return c.header_
100034}
100035
100036func (c *TargetInstancesListCall) doRequest(alt string) (*http.Response, error) {
100037	reqHeaders := make(http.Header)
100038	for k, v := range c.header_ {
100039		reqHeaders[k] = v
100040	}
100041	reqHeaders.Set("User-Agent", c.s.userAgent())
100042	if c.ifNoneMatch_ != "" {
100043		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100044	}
100045	var body io.Reader = nil
100046	c.urlParams_.Set("alt", alt)
100047	c.urlParams_.Set("prettyPrint", "false")
100048	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances")
100049	urls += "?" + c.urlParams_.Encode()
100050	req, err := http.NewRequest("GET", urls, body)
100051	if err != nil {
100052		return nil, err
100053	}
100054	req.Header = reqHeaders
100055	googleapi.Expand(req.URL, map[string]string{
100056		"project": c.project,
100057		"zone":    c.zone,
100058	})
100059	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100060}
100061
100062// Do executes the "compute.targetInstances.list" call.
100063// Exactly one of *TargetInstanceList or error will be non-nil. Any
100064// non-2xx status code is an error. Response headers are in either
100065// *TargetInstanceList.ServerResponse.Header or (if a response was
100066// returned at all) in error.(*googleapi.Error).Header. Use
100067// googleapi.IsNotModified to check whether the returned error was
100068// because http.StatusNotModified was returned.
100069func (c *TargetInstancesListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceList, 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 := &TargetInstanceList{
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": "Retrieves a list of TargetInstance resources available to the specified project and zone.",
100101	//   "httpMethod": "GET",
100102	//   "id": "compute.targetInstances.list",
100103	//   "parameterOrder": [
100104	//     "project",
100105	//     "zone"
100106	//   ],
100107	//   "parameters": {
100108	//     "filter": {
100109	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
100110	//       "location": "query",
100111	//       "type": "string"
100112	//     },
100113	//     "maxResults": {
100114	//       "default": "500",
100115	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
100116	//       "format": "uint32",
100117	//       "location": "query",
100118	//       "minimum": "0",
100119	//       "type": "integer"
100120	//     },
100121	//     "orderBy": {
100122	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
100123	//       "location": "query",
100124	//       "type": "string"
100125	//     },
100126	//     "pageToken": {
100127	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
100128	//       "location": "query",
100129	//       "type": "string"
100130	//     },
100131	//     "project": {
100132	//       "description": "Project ID for this request.",
100133	//       "location": "path",
100134	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100135	//       "required": true,
100136	//       "type": "string"
100137	//     },
100138	//     "zone": {
100139	//       "description": "Name of the zone scoping this request.",
100140	//       "location": "path",
100141	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100142	//       "required": true,
100143	//       "type": "string"
100144	//     }
100145	//   },
100146	//   "path": "{project}/zones/{zone}/targetInstances",
100147	//   "response": {
100148	//     "$ref": "TargetInstanceList"
100149	//   },
100150	//   "scopes": [
100151	//     "https://www.googleapis.com/auth/cloud-platform",
100152	//     "https://www.googleapis.com/auth/compute",
100153	//     "https://www.googleapis.com/auth/compute.readonly"
100154	//   ]
100155	// }
100156
100157}
100158
100159// Pages invokes f for each page of results.
100160// A non-nil error returned from f will halt the iteration.
100161// The provided context supersedes any context provided to the Context method.
100162func (c *TargetInstancesListCall) Pages(ctx context.Context, f func(*TargetInstanceList) error) error {
100163	c.ctx_ = ctx
100164	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
100165	for {
100166		x, err := c.Do()
100167		if err != nil {
100168			return err
100169		}
100170		if err := f(x); err != nil {
100171			return err
100172		}
100173		if x.NextPageToken == "" {
100174			return nil
100175		}
100176		c.PageToken(x.NextPageToken)
100177	}
100178}
100179
100180// method id "compute.targetPools.addHealthCheck":
100181
100182type TargetPoolsAddHealthCheckCall struct {
100183	s                                *Service
100184	project                          string
100185	region                           string
100186	targetPool                       string
100187	targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest
100188	urlParams_                       gensupport.URLParams
100189	ctx_                             context.Context
100190	header_                          http.Header
100191}
100192
100193// AddHealthCheck: Adds health check URLs to a target pool.
100194// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addHealthCheck
100195func (r *TargetPoolsService) AddHealthCheck(project string, region string, targetPool string, targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest) *TargetPoolsAddHealthCheckCall {
100196	c := &TargetPoolsAddHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100197	c.project = project
100198	c.region = region
100199	c.targetPool = targetPool
100200	c.targetpoolsaddhealthcheckrequest = targetpoolsaddhealthcheckrequest
100201	return c
100202}
100203
100204// RequestId sets the optional parameter "requestId": An optional
100205// request ID to identify requests. Specify a unique request ID so that
100206// if you must retry your request, the server will know to ignore the
100207// request if it has already been completed.
100208//
100209// For example, consider a situation where you make an initial request
100210// and the request times out. If you make the request again with the
100211// same request ID, the server can check if original operation with the
100212// same request ID was received, and if so, will ignore the second
100213// request. This prevents clients from accidentally creating duplicate
100214// commitments.
100215//
100216// The request ID must be a valid UUID with the exception that zero UUID
100217// is not supported (00000000-0000-0000-0000-000000000000).
100218func (c *TargetPoolsAddHealthCheckCall) RequestId(requestId string) *TargetPoolsAddHealthCheckCall {
100219	c.urlParams_.Set("requestId", requestId)
100220	return c
100221}
100222
100223// Fields allows partial responses to be retrieved. See
100224// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100225// for more information.
100226func (c *TargetPoolsAddHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsAddHealthCheckCall {
100227	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100228	return c
100229}
100230
100231// Context sets the context to be used in this call's Do method. Any
100232// pending HTTP request will be aborted if the provided context is
100233// canceled.
100234func (c *TargetPoolsAddHealthCheckCall) Context(ctx context.Context) *TargetPoolsAddHealthCheckCall {
100235	c.ctx_ = ctx
100236	return c
100237}
100238
100239// Header returns an http.Header that can be modified by the caller to
100240// add HTTP headers to the request.
100241func (c *TargetPoolsAddHealthCheckCall) Header() http.Header {
100242	if c.header_ == nil {
100243		c.header_ = make(http.Header)
100244	}
100245	return c.header_
100246}
100247
100248func (c *TargetPoolsAddHealthCheckCall) doRequest(alt string) (*http.Response, error) {
100249	reqHeaders := make(http.Header)
100250	for k, v := range c.header_ {
100251		reqHeaders[k] = v
100252	}
100253	reqHeaders.Set("User-Agent", c.s.userAgent())
100254	var body io.Reader = nil
100255	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddhealthcheckrequest)
100256	if err != nil {
100257		return nil, err
100258	}
100259	reqHeaders.Set("Content-Type", "application/json")
100260	c.urlParams_.Set("alt", alt)
100261	c.urlParams_.Set("prettyPrint", "false")
100262	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck")
100263	urls += "?" + c.urlParams_.Encode()
100264	req, err := http.NewRequest("POST", urls, body)
100265	if err != nil {
100266		return nil, err
100267	}
100268	req.Header = reqHeaders
100269	googleapi.Expand(req.URL, map[string]string{
100270		"project":    c.project,
100271		"region":     c.region,
100272		"targetPool": c.targetPool,
100273	})
100274	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100275}
100276
100277// Do executes the "compute.targetPools.addHealthCheck" call.
100278// Exactly one of *Operation or error will be non-nil. Any non-2xx
100279// status code is an error. Response headers are in either
100280// *Operation.ServerResponse.Header or (if a response was returned at
100281// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100282// to check whether the returned error was because
100283// http.StatusNotModified was returned.
100284func (c *TargetPoolsAddHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100285	gensupport.SetOptions(c.urlParams_, opts...)
100286	res, err := c.doRequest("json")
100287	if res != nil && res.StatusCode == http.StatusNotModified {
100288		if res.Body != nil {
100289			res.Body.Close()
100290		}
100291		return nil, &googleapi.Error{
100292			Code:   res.StatusCode,
100293			Header: res.Header,
100294		}
100295	}
100296	if err != nil {
100297		return nil, err
100298	}
100299	defer googleapi.CloseBody(res)
100300	if err := googleapi.CheckResponse(res); err != nil {
100301		return nil, err
100302	}
100303	ret := &Operation{
100304		ServerResponse: googleapi.ServerResponse{
100305			Header:         res.Header,
100306			HTTPStatusCode: res.StatusCode,
100307		},
100308	}
100309	target := &ret
100310	if err := gensupport.DecodeResponse(target, res); err != nil {
100311		return nil, err
100312	}
100313	return ret, nil
100314	// {
100315	//   "description": "Adds health check URLs to a target pool.",
100316	//   "httpMethod": "POST",
100317	//   "id": "compute.targetPools.addHealthCheck",
100318	//   "parameterOrder": [
100319	//     "project",
100320	//     "region",
100321	//     "targetPool"
100322	//   ],
100323	//   "parameters": {
100324	//     "project": {
100325	//       "description": "Project ID for this request.",
100326	//       "location": "path",
100327	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100328	//       "required": true,
100329	//       "type": "string"
100330	//     },
100331	//     "region": {
100332	//       "description": "Name of the region scoping this request.",
100333	//       "location": "path",
100334	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100335	//       "required": true,
100336	//       "type": "string"
100337	//     },
100338	//     "requestId": {
100339	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100340	//       "location": "query",
100341	//       "type": "string"
100342	//     },
100343	//     "targetPool": {
100344	//       "description": "Name of the target pool to add a health check to.",
100345	//       "location": "path",
100346	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100347	//       "required": true,
100348	//       "type": "string"
100349	//     }
100350	//   },
100351	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck",
100352	//   "request": {
100353	//     "$ref": "TargetPoolsAddHealthCheckRequest"
100354	//   },
100355	//   "response": {
100356	//     "$ref": "Operation"
100357	//   },
100358	//   "scopes": [
100359	//     "https://www.googleapis.com/auth/cloud-platform",
100360	//     "https://www.googleapis.com/auth/compute"
100361	//   ]
100362	// }
100363
100364}
100365
100366// method id "compute.targetPools.addInstance":
100367
100368type TargetPoolsAddInstanceCall struct {
100369	s                             *Service
100370	project                       string
100371	region                        string
100372	targetPool                    string
100373	targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest
100374	urlParams_                    gensupport.URLParams
100375	ctx_                          context.Context
100376	header_                       http.Header
100377}
100378
100379// AddInstance: Adds an instance to a target pool.
100380// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addInstance
100381func (r *TargetPoolsService) AddInstance(project string, region string, targetPool string, targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest) *TargetPoolsAddInstanceCall {
100382	c := &TargetPoolsAddInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100383	c.project = project
100384	c.region = region
100385	c.targetPool = targetPool
100386	c.targetpoolsaddinstancerequest = targetpoolsaddinstancerequest
100387	return c
100388}
100389
100390// RequestId sets the optional parameter "requestId": An optional
100391// request ID to identify requests. Specify a unique request ID so that
100392// if you must retry your request, the server will know to ignore the
100393// request if it has already been completed.
100394//
100395// For example, consider a situation where you make an initial request
100396// and the request times out. If you make the request again with the
100397// same request ID, the server can check if original operation with the
100398// same request ID was received, and if so, will ignore the second
100399// request. This prevents clients from accidentally creating duplicate
100400// commitments.
100401//
100402// The request ID must be a valid UUID with the exception that zero UUID
100403// is not supported (00000000-0000-0000-0000-000000000000).
100404func (c *TargetPoolsAddInstanceCall) RequestId(requestId string) *TargetPoolsAddInstanceCall {
100405	c.urlParams_.Set("requestId", requestId)
100406	return c
100407}
100408
100409// Fields allows partial responses to be retrieved. See
100410// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100411// for more information.
100412func (c *TargetPoolsAddInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsAddInstanceCall {
100413	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100414	return c
100415}
100416
100417// Context sets the context to be used in this call's Do method. Any
100418// pending HTTP request will be aborted if the provided context is
100419// canceled.
100420func (c *TargetPoolsAddInstanceCall) Context(ctx context.Context) *TargetPoolsAddInstanceCall {
100421	c.ctx_ = ctx
100422	return c
100423}
100424
100425// Header returns an http.Header that can be modified by the caller to
100426// add HTTP headers to the request.
100427func (c *TargetPoolsAddInstanceCall) Header() http.Header {
100428	if c.header_ == nil {
100429		c.header_ = make(http.Header)
100430	}
100431	return c.header_
100432}
100433
100434func (c *TargetPoolsAddInstanceCall) doRequest(alt string) (*http.Response, error) {
100435	reqHeaders := make(http.Header)
100436	for k, v := range c.header_ {
100437		reqHeaders[k] = v
100438	}
100439	reqHeaders.Set("User-Agent", c.s.userAgent())
100440	var body io.Reader = nil
100441	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddinstancerequest)
100442	if err != nil {
100443		return nil, err
100444	}
100445	reqHeaders.Set("Content-Type", "application/json")
100446	c.urlParams_.Set("alt", alt)
100447	c.urlParams_.Set("prettyPrint", "false")
100448	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/addInstance")
100449	urls += "?" + c.urlParams_.Encode()
100450	req, err := http.NewRequest("POST", urls, body)
100451	if err != nil {
100452		return nil, err
100453	}
100454	req.Header = reqHeaders
100455	googleapi.Expand(req.URL, map[string]string{
100456		"project":    c.project,
100457		"region":     c.region,
100458		"targetPool": c.targetPool,
100459	})
100460	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100461}
100462
100463// Do executes the "compute.targetPools.addInstance" call.
100464// Exactly one of *Operation or error will be non-nil. Any non-2xx
100465// status code is an error. Response headers are in either
100466// *Operation.ServerResponse.Header or (if a response was returned at
100467// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100468// to check whether the returned error was because
100469// http.StatusNotModified was returned.
100470func (c *TargetPoolsAddInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100471	gensupport.SetOptions(c.urlParams_, opts...)
100472	res, err := c.doRequest("json")
100473	if res != nil && res.StatusCode == http.StatusNotModified {
100474		if res.Body != nil {
100475			res.Body.Close()
100476		}
100477		return nil, &googleapi.Error{
100478			Code:   res.StatusCode,
100479			Header: res.Header,
100480		}
100481	}
100482	if err != nil {
100483		return nil, err
100484	}
100485	defer googleapi.CloseBody(res)
100486	if err := googleapi.CheckResponse(res); err != nil {
100487		return nil, err
100488	}
100489	ret := &Operation{
100490		ServerResponse: googleapi.ServerResponse{
100491			Header:         res.Header,
100492			HTTPStatusCode: res.StatusCode,
100493		},
100494	}
100495	target := &ret
100496	if err := gensupport.DecodeResponse(target, res); err != nil {
100497		return nil, err
100498	}
100499	return ret, nil
100500	// {
100501	//   "description": "Adds an instance to a target pool.",
100502	//   "httpMethod": "POST",
100503	//   "id": "compute.targetPools.addInstance",
100504	//   "parameterOrder": [
100505	//     "project",
100506	//     "region",
100507	//     "targetPool"
100508	//   ],
100509	//   "parameters": {
100510	//     "project": {
100511	//       "description": "Project ID for this request.",
100512	//       "location": "path",
100513	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100514	//       "required": true,
100515	//       "type": "string"
100516	//     },
100517	//     "region": {
100518	//       "description": "Name of the region scoping this request.",
100519	//       "location": "path",
100520	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100521	//       "required": true,
100522	//       "type": "string"
100523	//     },
100524	//     "requestId": {
100525	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100526	//       "location": "query",
100527	//       "type": "string"
100528	//     },
100529	//     "targetPool": {
100530	//       "description": "Name of the TargetPool resource to add instances to.",
100531	//       "location": "path",
100532	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100533	//       "required": true,
100534	//       "type": "string"
100535	//     }
100536	//   },
100537	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/addInstance",
100538	//   "request": {
100539	//     "$ref": "TargetPoolsAddInstanceRequest"
100540	//   },
100541	//   "response": {
100542	//     "$ref": "Operation"
100543	//   },
100544	//   "scopes": [
100545	//     "https://www.googleapis.com/auth/cloud-platform",
100546	//     "https://www.googleapis.com/auth/compute"
100547	//   ]
100548	// }
100549
100550}
100551
100552// method id "compute.targetPools.aggregatedList":
100553
100554type TargetPoolsAggregatedListCall struct {
100555	s            *Service
100556	project      string
100557	urlParams_   gensupport.URLParams
100558	ifNoneMatch_ string
100559	ctx_         context.Context
100560	header_      http.Header
100561}
100562
100563// AggregatedList: Retrieves an aggregated list of target pools.
100564// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/aggregatedList
100565func (r *TargetPoolsService) AggregatedList(project string) *TargetPoolsAggregatedListCall {
100566	c := &TargetPoolsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100567	c.project = project
100568	return c
100569}
100570
100571// Filter sets the optional parameter "filter": A filter expression that
100572// filters resources listed in the response. The expression must specify
100573// the field name, a comparison operator, and the value that you want to
100574// use for filtering. The value must be a string, a number, or a
100575// boolean. The comparison operator must be either =, !=, >, or <.
100576//
100577// For example, if you are filtering Compute Engine instances, you can
100578// exclude instances named example-instance by specifying name !=
100579// example-instance.
100580//
100581// You can also filter nested fields. For example, you could specify
100582// scheduling.automaticRestart = false to include instances only if they
100583// are not scheduled for automatic restarts. You can use filtering on
100584// nested fields to filter based on resource labels.
100585//
100586// To filter on multiple expressions, provide each separate expression
100587// within parentheses. For example, (scheduling.automaticRestart = true)
100588// (cpuPlatform = "Intel Skylake"). By default, each expression is an
100589// AND expression. However, you can include AND and OR expressions
100590// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
100591// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
100592// true).
100593func (c *TargetPoolsAggregatedListCall) Filter(filter string) *TargetPoolsAggregatedListCall {
100594	c.urlParams_.Set("filter", filter)
100595	return c
100596}
100597
100598// MaxResults sets the optional parameter "maxResults": The maximum
100599// number of results per page that should be returned. If the number of
100600// available results is larger than maxResults, Compute Engine returns a
100601// nextPageToken that can be used to get the next page of results in
100602// subsequent list requests. Acceptable values are 0 to 500, inclusive.
100603// (Default: 500)
100604func (c *TargetPoolsAggregatedListCall) MaxResults(maxResults int64) *TargetPoolsAggregatedListCall {
100605	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
100606	return c
100607}
100608
100609// OrderBy sets the optional parameter "orderBy": Sorts list results by
100610// a certain order. By default, results are returned in alphanumerical
100611// order based on the resource name.
100612//
100613// You can also sort results in descending order based on the creation
100614// timestamp using orderBy="creationTimestamp desc". This sorts results
100615// based on the creationTimestamp field in reverse chronological order
100616// (newest result first). Use this to sort resources like operations so
100617// that the newest operation is returned first.
100618//
100619// Currently, only sorting by name or creationTimestamp desc is
100620// supported.
100621func (c *TargetPoolsAggregatedListCall) OrderBy(orderBy string) *TargetPoolsAggregatedListCall {
100622	c.urlParams_.Set("orderBy", orderBy)
100623	return c
100624}
100625
100626// PageToken sets the optional parameter "pageToken": Specifies a page
100627// token to use. Set pageToken to the nextPageToken returned by a
100628// previous list request to get the next page of results.
100629func (c *TargetPoolsAggregatedListCall) PageToken(pageToken string) *TargetPoolsAggregatedListCall {
100630	c.urlParams_.Set("pageToken", pageToken)
100631	return c
100632}
100633
100634// Fields allows partial responses to be retrieved. See
100635// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100636// for more information.
100637func (c *TargetPoolsAggregatedListCall) Fields(s ...googleapi.Field) *TargetPoolsAggregatedListCall {
100638	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100639	return c
100640}
100641
100642// IfNoneMatch sets the optional parameter which makes the operation
100643// fail if the object's ETag matches the given value. This is useful for
100644// getting updates only after the object has changed since the last
100645// request. Use googleapi.IsNotModified to check whether the response
100646// error from Do is the result of In-None-Match.
100647func (c *TargetPoolsAggregatedListCall) IfNoneMatch(entityTag string) *TargetPoolsAggregatedListCall {
100648	c.ifNoneMatch_ = entityTag
100649	return c
100650}
100651
100652// Context sets the context to be used in this call's Do method. Any
100653// pending HTTP request will be aborted if the provided context is
100654// canceled.
100655func (c *TargetPoolsAggregatedListCall) Context(ctx context.Context) *TargetPoolsAggregatedListCall {
100656	c.ctx_ = ctx
100657	return c
100658}
100659
100660// Header returns an http.Header that can be modified by the caller to
100661// add HTTP headers to the request.
100662func (c *TargetPoolsAggregatedListCall) Header() http.Header {
100663	if c.header_ == nil {
100664		c.header_ = make(http.Header)
100665	}
100666	return c.header_
100667}
100668
100669func (c *TargetPoolsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
100670	reqHeaders := make(http.Header)
100671	for k, v := range c.header_ {
100672		reqHeaders[k] = v
100673	}
100674	reqHeaders.Set("User-Agent", c.s.userAgent())
100675	if c.ifNoneMatch_ != "" {
100676		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100677	}
100678	var body io.Reader = nil
100679	c.urlParams_.Set("alt", alt)
100680	c.urlParams_.Set("prettyPrint", "false")
100681	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetPools")
100682	urls += "?" + c.urlParams_.Encode()
100683	req, err := http.NewRequest("GET", urls, body)
100684	if err != nil {
100685		return nil, err
100686	}
100687	req.Header = reqHeaders
100688	googleapi.Expand(req.URL, map[string]string{
100689		"project": c.project,
100690	})
100691	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100692}
100693
100694// Do executes the "compute.targetPools.aggregatedList" call.
100695// Exactly one of *TargetPoolAggregatedList or error will be non-nil.
100696// Any non-2xx status code is an error. Response headers are in either
100697// *TargetPoolAggregatedList.ServerResponse.Header or (if a response was
100698// returned at all) in error.(*googleapi.Error).Header. Use
100699// googleapi.IsNotModified to check whether the returned error was
100700// because http.StatusNotModified was returned.
100701func (c *TargetPoolsAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetPoolAggregatedList, error) {
100702	gensupport.SetOptions(c.urlParams_, opts...)
100703	res, err := c.doRequest("json")
100704	if res != nil && res.StatusCode == http.StatusNotModified {
100705		if res.Body != nil {
100706			res.Body.Close()
100707		}
100708		return nil, &googleapi.Error{
100709			Code:   res.StatusCode,
100710			Header: res.Header,
100711		}
100712	}
100713	if err != nil {
100714		return nil, err
100715	}
100716	defer googleapi.CloseBody(res)
100717	if err := googleapi.CheckResponse(res); err != nil {
100718		return nil, err
100719	}
100720	ret := &TargetPoolAggregatedList{
100721		ServerResponse: googleapi.ServerResponse{
100722			Header:         res.Header,
100723			HTTPStatusCode: res.StatusCode,
100724		},
100725	}
100726	target := &ret
100727	if err := gensupport.DecodeResponse(target, res); err != nil {
100728		return nil, err
100729	}
100730	return ret, nil
100731	// {
100732	//   "description": "Retrieves an aggregated list of target pools.",
100733	//   "httpMethod": "GET",
100734	//   "id": "compute.targetPools.aggregatedList",
100735	//   "parameterOrder": [
100736	//     "project"
100737	//   ],
100738	//   "parameters": {
100739	//     "filter": {
100740	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
100741	//       "location": "query",
100742	//       "type": "string"
100743	//     },
100744	//     "maxResults": {
100745	//       "default": "500",
100746	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
100747	//       "format": "uint32",
100748	//       "location": "query",
100749	//       "minimum": "0",
100750	//       "type": "integer"
100751	//     },
100752	//     "orderBy": {
100753	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
100754	//       "location": "query",
100755	//       "type": "string"
100756	//     },
100757	//     "pageToken": {
100758	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
100759	//       "location": "query",
100760	//       "type": "string"
100761	//     },
100762	//     "project": {
100763	//       "description": "Project ID for this request.",
100764	//       "location": "path",
100765	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100766	//       "required": true,
100767	//       "type": "string"
100768	//     }
100769	//   },
100770	//   "path": "{project}/aggregated/targetPools",
100771	//   "response": {
100772	//     "$ref": "TargetPoolAggregatedList"
100773	//   },
100774	//   "scopes": [
100775	//     "https://www.googleapis.com/auth/cloud-platform",
100776	//     "https://www.googleapis.com/auth/compute",
100777	//     "https://www.googleapis.com/auth/compute.readonly"
100778	//   ]
100779	// }
100780
100781}
100782
100783// Pages invokes f for each page of results.
100784// A non-nil error returned from f will halt the iteration.
100785// The provided context supersedes any context provided to the Context method.
100786func (c *TargetPoolsAggregatedListCall) Pages(ctx context.Context, f func(*TargetPoolAggregatedList) error) error {
100787	c.ctx_ = ctx
100788	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
100789	for {
100790		x, err := c.Do()
100791		if err != nil {
100792			return err
100793		}
100794		if err := f(x); err != nil {
100795			return err
100796		}
100797		if x.NextPageToken == "" {
100798			return nil
100799		}
100800		c.PageToken(x.NextPageToken)
100801	}
100802}
100803
100804// method id "compute.targetPools.delete":
100805
100806type TargetPoolsDeleteCall struct {
100807	s          *Service
100808	project    string
100809	region     string
100810	targetPool string
100811	urlParams_ gensupport.URLParams
100812	ctx_       context.Context
100813	header_    http.Header
100814}
100815
100816// Delete: Deletes the specified target pool.
100817// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/delete
100818func (r *TargetPoolsService) Delete(project string, region string, targetPool string) *TargetPoolsDeleteCall {
100819	c := &TargetPoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100820	c.project = project
100821	c.region = region
100822	c.targetPool = targetPool
100823	return c
100824}
100825
100826// RequestId sets the optional parameter "requestId": An optional
100827// request ID to identify requests. Specify a unique request ID so that
100828// if you must retry your request, the server will know to ignore the
100829// request if it has already been completed.
100830//
100831// For example, consider a situation where you make an initial request
100832// and the request times out. If you make the request again with the
100833// same request ID, the server can check if original operation with the
100834// same request ID was received, and if so, will ignore the second
100835// request. This prevents clients from accidentally creating duplicate
100836// commitments.
100837//
100838// The request ID must be a valid UUID with the exception that zero UUID
100839// is not supported (00000000-0000-0000-0000-000000000000).
100840func (c *TargetPoolsDeleteCall) RequestId(requestId string) *TargetPoolsDeleteCall {
100841	c.urlParams_.Set("requestId", requestId)
100842	return c
100843}
100844
100845// Fields allows partial responses to be retrieved. See
100846// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100847// for more information.
100848func (c *TargetPoolsDeleteCall) Fields(s ...googleapi.Field) *TargetPoolsDeleteCall {
100849	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100850	return c
100851}
100852
100853// Context sets the context to be used in this call's Do method. Any
100854// pending HTTP request will be aborted if the provided context is
100855// canceled.
100856func (c *TargetPoolsDeleteCall) Context(ctx context.Context) *TargetPoolsDeleteCall {
100857	c.ctx_ = ctx
100858	return c
100859}
100860
100861// Header returns an http.Header that can be modified by the caller to
100862// add HTTP headers to the request.
100863func (c *TargetPoolsDeleteCall) Header() http.Header {
100864	if c.header_ == nil {
100865		c.header_ = make(http.Header)
100866	}
100867	return c.header_
100868}
100869
100870func (c *TargetPoolsDeleteCall) doRequest(alt string) (*http.Response, error) {
100871	reqHeaders := make(http.Header)
100872	for k, v := range c.header_ {
100873		reqHeaders[k] = v
100874	}
100875	reqHeaders.Set("User-Agent", c.s.userAgent())
100876	var body io.Reader = nil
100877	c.urlParams_.Set("alt", alt)
100878	c.urlParams_.Set("prettyPrint", "false")
100879	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}")
100880	urls += "?" + c.urlParams_.Encode()
100881	req, err := http.NewRequest("DELETE", urls, body)
100882	if err != nil {
100883		return nil, err
100884	}
100885	req.Header = reqHeaders
100886	googleapi.Expand(req.URL, map[string]string{
100887		"project":    c.project,
100888		"region":     c.region,
100889		"targetPool": c.targetPool,
100890	})
100891	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100892}
100893
100894// Do executes the "compute.targetPools.delete" call.
100895// Exactly one of *Operation or error will be non-nil. Any non-2xx
100896// status code is an error. Response headers are in either
100897// *Operation.ServerResponse.Header or (if a response was returned at
100898// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100899// to check whether the returned error was because
100900// http.StatusNotModified was returned.
100901func (c *TargetPoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100902	gensupport.SetOptions(c.urlParams_, opts...)
100903	res, err := c.doRequest("json")
100904	if res != nil && res.StatusCode == http.StatusNotModified {
100905		if res.Body != nil {
100906			res.Body.Close()
100907		}
100908		return nil, &googleapi.Error{
100909			Code:   res.StatusCode,
100910			Header: res.Header,
100911		}
100912	}
100913	if err != nil {
100914		return nil, err
100915	}
100916	defer googleapi.CloseBody(res)
100917	if err := googleapi.CheckResponse(res); err != nil {
100918		return nil, err
100919	}
100920	ret := &Operation{
100921		ServerResponse: googleapi.ServerResponse{
100922			Header:         res.Header,
100923			HTTPStatusCode: res.StatusCode,
100924		},
100925	}
100926	target := &ret
100927	if err := gensupport.DecodeResponse(target, res); err != nil {
100928		return nil, err
100929	}
100930	return ret, nil
100931	// {
100932	//   "description": "Deletes the specified target pool.",
100933	//   "httpMethod": "DELETE",
100934	//   "id": "compute.targetPools.delete",
100935	//   "parameterOrder": [
100936	//     "project",
100937	//     "region",
100938	//     "targetPool"
100939	//   ],
100940	//   "parameters": {
100941	//     "project": {
100942	//       "description": "Project ID for this request.",
100943	//       "location": "path",
100944	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100945	//       "required": true,
100946	//       "type": "string"
100947	//     },
100948	//     "region": {
100949	//       "description": "Name of the region scoping this request.",
100950	//       "location": "path",
100951	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100952	//       "required": true,
100953	//       "type": "string"
100954	//     },
100955	//     "requestId": {
100956	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100957	//       "location": "query",
100958	//       "type": "string"
100959	//     },
100960	//     "targetPool": {
100961	//       "description": "Name of the TargetPool resource to delete.",
100962	//       "location": "path",
100963	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100964	//       "required": true,
100965	//       "type": "string"
100966	//     }
100967	//   },
100968	//   "path": "{project}/regions/{region}/targetPools/{targetPool}",
100969	//   "response": {
100970	//     "$ref": "Operation"
100971	//   },
100972	//   "scopes": [
100973	//     "https://www.googleapis.com/auth/cloud-platform",
100974	//     "https://www.googleapis.com/auth/compute"
100975	//   ]
100976	// }
100977
100978}
100979
100980// method id "compute.targetPools.get":
100981
100982type TargetPoolsGetCall struct {
100983	s            *Service
100984	project      string
100985	region       string
100986	targetPool   string
100987	urlParams_   gensupport.URLParams
100988	ifNoneMatch_ string
100989	ctx_         context.Context
100990	header_      http.Header
100991}
100992
100993// Get: Returns the specified target pool. Gets a list of available
100994// target pools by making a list() request.
100995// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/get
100996func (r *TargetPoolsService) Get(project string, region string, targetPool string) *TargetPoolsGetCall {
100997	c := &TargetPoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100998	c.project = project
100999	c.region = region
101000	c.targetPool = targetPool
101001	return c
101002}
101003
101004// Fields allows partial responses to be retrieved. See
101005// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101006// for more information.
101007func (c *TargetPoolsGetCall) Fields(s ...googleapi.Field) *TargetPoolsGetCall {
101008	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101009	return c
101010}
101011
101012// IfNoneMatch sets the optional parameter which makes the operation
101013// fail if the object's ETag matches the given value. This is useful for
101014// getting updates only after the object has changed since the last
101015// request. Use googleapi.IsNotModified to check whether the response
101016// error from Do is the result of In-None-Match.
101017func (c *TargetPoolsGetCall) IfNoneMatch(entityTag string) *TargetPoolsGetCall {
101018	c.ifNoneMatch_ = entityTag
101019	return c
101020}
101021
101022// Context sets the context to be used in this call's Do method. Any
101023// pending HTTP request will be aborted if the provided context is
101024// canceled.
101025func (c *TargetPoolsGetCall) Context(ctx context.Context) *TargetPoolsGetCall {
101026	c.ctx_ = ctx
101027	return c
101028}
101029
101030// Header returns an http.Header that can be modified by the caller to
101031// add HTTP headers to the request.
101032func (c *TargetPoolsGetCall) Header() http.Header {
101033	if c.header_ == nil {
101034		c.header_ = make(http.Header)
101035	}
101036	return c.header_
101037}
101038
101039func (c *TargetPoolsGetCall) doRequest(alt string) (*http.Response, error) {
101040	reqHeaders := make(http.Header)
101041	for k, v := range c.header_ {
101042		reqHeaders[k] = v
101043	}
101044	reqHeaders.Set("User-Agent", c.s.userAgent())
101045	if c.ifNoneMatch_ != "" {
101046		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
101047	}
101048	var body io.Reader = nil
101049	c.urlParams_.Set("alt", alt)
101050	c.urlParams_.Set("prettyPrint", "false")
101051	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}")
101052	urls += "?" + c.urlParams_.Encode()
101053	req, err := http.NewRequest("GET", urls, body)
101054	if err != nil {
101055		return nil, err
101056	}
101057	req.Header = reqHeaders
101058	googleapi.Expand(req.URL, map[string]string{
101059		"project":    c.project,
101060		"region":     c.region,
101061		"targetPool": c.targetPool,
101062	})
101063	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101064}
101065
101066// Do executes the "compute.targetPools.get" call.
101067// Exactly one of *TargetPool or error will be non-nil. Any non-2xx
101068// status code is an error. Response headers are in either
101069// *TargetPool.ServerResponse.Header or (if a response was returned at
101070// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101071// to check whether the returned error was because
101072// http.StatusNotModified was returned.
101073func (c *TargetPoolsGetCall) Do(opts ...googleapi.CallOption) (*TargetPool, error) {
101074	gensupport.SetOptions(c.urlParams_, opts...)
101075	res, err := c.doRequest("json")
101076	if res != nil && res.StatusCode == http.StatusNotModified {
101077		if res.Body != nil {
101078			res.Body.Close()
101079		}
101080		return nil, &googleapi.Error{
101081			Code:   res.StatusCode,
101082			Header: res.Header,
101083		}
101084	}
101085	if err != nil {
101086		return nil, err
101087	}
101088	defer googleapi.CloseBody(res)
101089	if err := googleapi.CheckResponse(res); err != nil {
101090		return nil, err
101091	}
101092	ret := &TargetPool{
101093		ServerResponse: googleapi.ServerResponse{
101094			Header:         res.Header,
101095			HTTPStatusCode: res.StatusCode,
101096		},
101097	}
101098	target := &ret
101099	if err := gensupport.DecodeResponse(target, res); err != nil {
101100		return nil, err
101101	}
101102	return ret, nil
101103	// {
101104	//   "description": "Returns the specified target pool. Gets a list of available target pools by making a list() request.",
101105	//   "httpMethod": "GET",
101106	//   "id": "compute.targetPools.get",
101107	//   "parameterOrder": [
101108	//     "project",
101109	//     "region",
101110	//     "targetPool"
101111	//   ],
101112	//   "parameters": {
101113	//     "project": {
101114	//       "description": "Project ID for this request.",
101115	//       "location": "path",
101116	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101117	//       "required": true,
101118	//       "type": "string"
101119	//     },
101120	//     "region": {
101121	//       "description": "Name of the region scoping this request.",
101122	//       "location": "path",
101123	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101124	//       "required": true,
101125	//       "type": "string"
101126	//     },
101127	//     "targetPool": {
101128	//       "description": "Name of the TargetPool resource to return.",
101129	//       "location": "path",
101130	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101131	//       "required": true,
101132	//       "type": "string"
101133	//     }
101134	//   },
101135	//   "path": "{project}/regions/{region}/targetPools/{targetPool}",
101136	//   "response": {
101137	//     "$ref": "TargetPool"
101138	//   },
101139	//   "scopes": [
101140	//     "https://www.googleapis.com/auth/cloud-platform",
101141	//     "https://www.googleapis.com/auth/compute",
101142	//     "https://www.googleapis.com/auth/compute.readonly"
101143	//   ]
101144	// }
101145
101146}
101147
101148// method id "compute.targetPools.getHealth":
101149
101150type TargetPoolsGetHealthCall struct {
101151	s                 *Service
101152	project           string
101153	region            string
101154	targetPool        string
101155	instancereference *InstanceReference
101156	urlParams_        gensupport.URLParams
101157	ctx_              context.Context
101158	header_           http.Header
101159}
101160
101161// GetHealth: Gets the most recent health check results for each IP for
101162// the instance that is referenced by the given target pool.
101163// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/getHealth
101164func (r *TargetPoolsService) GetHealth(project string, region string, targetPool string, instancereference *InstanceReference) *TargetPoolsGetHealthCall {
101165	c := &TargetPoolsGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101166	c.project = project
101167	c.region = region
101168	c.targetPool = targetPool
101169	c.instancereference = instancereference
101170	return c
101171}
101172
101173// Fields allows partial responses to be retrieved. See
101174// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101175// for more information.
101176func (c *TargetPoolsGetHealthCall) Fields(s ...googleapi.Field) *TargetPoolsGetHealthCall {
101177	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101178	return c
101179}
101180
101181// Context sets the context to be used in this call's Do method. Any
101182// pending HTTP request will be aborted if the provided context is
101183// canceled.
101184func (c *TargetPoolsGetHealthCall) Context(ctx context.Context) *TargetPoolsGetHealthCall {
101185	c.ctx_ = ctx
101186	return c
101187}
101188
101189// Header returns an http.Header that can be modified by the caller to
101190// add HTTP headers to the request.
101191func (c *TargetPoolsGetHealthCall) Header() http.Header {
101192	if c.header_ == nil {
101193		c.header_ = make(http.Header)
101194	}
101195	return c.header_
101196}
101197
101198func (c *TargetPoolsGetHealthCall) doRequest(alt string) (*http.Response, error) {
101199	reqHeaders := make(http.Header)
101200	for k, v := range c.header_ {
101201		reqHeaders[k] = v
101202	}
101203	reqHeaders.Set("User-Agent", c.s.userAgent())
101204	var body io.Reader = nil
101205	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancereference)
101206	if err != nil {
101207		return nil, err
101208	}
101209	reqHeaders.Set("Content-Type", "application/json")
101210	c.urlParams_.Set("alt", alt)
101211	c.urlParams_.Set("prettyPrint", "false")
101212	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/getHealth")
101213	urls += "?" + c.urlParams_.Encode()
101214	req, err := http.NewRequest("POST", urls, body)
101215	if err != nil {
101216		return nil, err
101217	}
101218	req.Header = reqHeaders
101219	googleapi.Expand(req.URL, map[string]string{
101220		"project":    c.project,
101221		"region":     c.region,
101222		"targetPool": c.targetPool,
101223	})
101224	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101225}
101226
101227// Do executes the "compute.targetPools.getHealth" call.
101228// Exactly one of *TargetPoolInstanceHealth or error will be non-nil.
101229// Any non-2xx status code is an error. Response headers are in either
101230// *TargetPoolInstanceHealth.ServerResponse.Header or (if a response was
101231// returned at all) in error.(*googleapi.Error).Header. Use
101232// googleapi.IsNotModified to check whether the returned error was
101233// because http.StatusNotModified was returned.
101234func (c *TargetPoolsGetHealthCall) Do(opts ...googleapi.CallOption) (*TargetPoolInstanceHealth, error) {
101235	gensupport.SetOptions(c.urlParams_, opts...)
101236	res, err := c.doRequest("json")
101237	if res != nil && res.StatusCode == http.StatusNotModified {
101238		if res.Body != nil {
101239			res.Body.Close()
101240		}
101241		return nil, &googleapi.Error{
101242			Code:   res.StatusCode,
101243			Header: res.Header,
101244		}
101245	}
101246	if err != nil {
101247		return nil, err
101248	}
101249	defer googleapi.CloseBody(res)
101250	if err := googleapi.CheckResponse(res); err != nil {
101251		return nil, err
101252	}
101253	ret := &TargetPoolInstanceHealth{
101254		ServerResponse: googleapi.ServerResponse{
101255			Header:         res.Header,
101256			HTTPStatusCode: res.StatusCode,
101257		},
101258	}
101259	target := &ret
101260	if err := gensupport.DecodeResponse(target, res); err != nil {
101261		return nil, err
101262	}
101263	return ret, nil
101264	// {
101265	//   "description": "Gets the most recent health check results for each IP for the instance that is referenced by the given target pool.",
101266	//   "httpMethod": "POST",
101267	//   "id": "compute.targetPools.getHealth",
101268	//   "parameterOrder": [
101269	//     "project",
101270	//     "region",
101271	//     "targetPool"
101272	//   ],
101273	//   "parameters": {
101274	//     "project": {
101275	//       "description": "Project ID for this request.",
101276	//       "location": "path",
101277	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101278	//       "required": true,
101279	//       "type": "string"
101280	//     },
101281	//     "region": {
101282	//       "description": "Name of the region scoping this request.",
101283	//       "location": "path",
101284	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101285	//       "required": true,
101286	//       "type": "string"
101287	//     },
101288	//     "targetPool": {
101289	//       "description": "Name of the TargetPool resource to which the queried instance belongs.",
101290	//       "location": "path",
101291	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101292	//       "required": true,
101293	//       "type": "string"
101294	//     }
101295	//   },
101296	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/getHealth",
101297	//   "request": {
101298	//     "$ref": "InstanceReference"
101299	//   },
101300	//   "response": {
101301	//     "$ref": "TargetPoolInstanceHealth"
101302	//   },
101303	//   "scopes": [
101304	//     "https://www.googleapis.com/auth/cloud-platform",
101305	//     "https://www.googleapis.com/auth/compute",
101306	//     "https://www.googleapis.com/auth/compute.readonly"
101307	//   ]
101308	// }
101309
101310}
101311
101312// method id "compute.targetPools.insert":
101313
101314type TargetPoolsInsertCall struct {
101315	s          *Service
101316	project    string
101317	region     string
101318	targetpool *TargetPool
101319	urlParams_ gensupport.URLParams
101320	ctx_       context.Context
101321	header_    http.Header
101322}
101323
101324// Insert: Creates a target pool in the specified project and region
101325// using the data included in the request.
101326// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/insert
101327func (r *TargetPoolsService) Insert(project string, region string, targetpool *TargetPool) *TargetPoolsInsertCall {
101328	c := &TargetPoolsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101329	c.project = project
101330	c.region = region
101331	c.targetpool = targetpool
101332	return c
101333}
101334
101335// RequestId sets the optional parameter "requestId": An optional
101336// request ID to identify requests. Specify a unique request ID so that
101337// if you must retry your request, the server will know to ignore the
101338// request if it has already been completed.
101339//
101340// For example, consider a situation where you make an initial request
101341// and the request times out. If you make the request again with the
101342// same request ID, the server can check if original operation with the
101343// same request ID was received, and if so, will ignore the second
101344// request. This prevents clients from accidentally creating duplicate
101345// commitments.
101346//
101347// The request ID must be a valid UUID with the exception that zero UUID
101348// is not supported (00000000-0000-0000-0000-000000000000).
101349func (c *TargetPoolsInsertCall) RequestId(requestId string) *TargetPoolsInsertCall {
101350	c.urlParams_.Set("requestId", requestId)
101351	return c
101352}
101353
101354// Fields allows partial responses to be retrieved. See
101355// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101356// for more information.
101357func (c *TargetPoolsInsertCall) Fields(s ...googleapi.Field) *TargetPoolsInsertCall {
101358	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101359	return c
101360}
101361
101362// Context sets the context to be used in this call's Do method. Any
101363// pending HTTP request will be aborted if the provided context is
101364// canceled.
101365func (c *TargetPoolsInsertCall) Context(ctx context.Context) *TargetPoolsInsertCall {
101366	c.ctx_ = ctx
101367	return c
101368}
101369
101370// Header returns an http.Header that can be modified by the caller to
101371// add HTTP headers to the request.
101372func (c *TargetPoolsInsertCall) Header() http.Header {
101373	if c.header_ == nil {
101374		c.header_ = make(http.Header)
101375	}
101376	return c.header_
101377}
101378
101379func (c *TargetPoolsInsertCall) doRequest(alt string) (*http.Response, error) {
101380	reqHeaders := make(http.Header)
101381	for k, v := range c.header_ {
101382		reqHeaders[k] = v
101383	}
101384	reqHeaders.Set("User-Agent", c.s.userAgent())
101385	var body io.Reader = nil
101386	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpool)
101387	if err != nil {
101388		return nil, err
101389	}
101390	reqHeaders.Set("Content-Type", "application/json")
101391	c.urlParams_.Set("alt", alt)
101392	c.urlParams_.Set("prettyPrint", "false")
101393	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools")
101394	urls += "?" + c.urlParams_.Encode()
101395	req, err := http.NewRequest("POST", urls, body)
101396	if err != nil {
101397		return nil, err
101398	}
101399	req.Header = reqHeaders
101400	googleapi.Expand(req.URL, map[string]string{
101401		"project": c.project,
101402		"region":  c.region,
101403	})
101404	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101405}
101406
101407// Do executes the "compute.targetPools.insert" call.
101408// Exactly one of *Operation or error will be non-nil. Any non-2xx
101409// status code is an error. Response headers are in either
101410// *Operation.ServerResponse.Header or (if a response was returned at
101411// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101412// to check whether the returned error was because
101413// http.StatusNotModified was returned.
101414func (c *TargetPoolsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101415	gensupport.SetOptions(c.urlParams_, opts...)
101416	res, err := c.doRequest("json")
101417	if res != nil && res.StatusCode == http.StatusNotModified {
101418		if res.Body != nil {
101419			res.Body.Close()
101420		}
101421		return nil, &googleapi.Error{
101422			Code:   res.StatusCode,
101423			Header: res.Header,
101424		}
101425	}
101426	if err != nil {
101427		return nil, err
101428	}
101429	defer googleapi.CloseBody(res)
101430	if err := googleapi.CheckResponse(res); err != nil {
101431		return nil, err
101432	}
101433	ret := &Operation{
101434		ServerResponse: googleapi.ServerResponse{
101435			Header:         res.Header,
101436			HTTPStatusCode: res.StatusCode,
101437		},
101438	}
101439	target := &ret
101440	if err := gensupport.DecodeResponse(target, res); err != nil {
101441		return nil, err
101442	}
101443	return ret, nil
101444	// {
101445	//   "description": "Creates a target pool in the specified project and region using the data included in the request.",
101446	//   "httpMethod": "POST",
101447	//   "id": "compute.targetPools.insert",
101448	//   "parameterOrder": [
101449	//     "project",
101450	//     "region"
101451	//   ],
101452	//   "parameters": {
101453	//     "project": {
101454	//       "description": "Project ID for this request.",
101455	//       "location": "path",
101456	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101457	//       "required": true,
101458	//       "type": "string"
101459	//     },
101460	//     "region": {
101461	//       "description": "Name of the region scoping this request.",
101462	//       "location": "path",
101463	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101464	//       "required": true,
101465	//       "type": "string"
101466	//     },
101467	//     "requestId": {
101468	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101469	//       "location": "query",
101470	//       "type": "string"
101471	//     }
101472	//   },
101473	//   "path": "{project}/regions/{region}/targetPools",
101474	//   "request": {
101475	//     "$ref": "TargetPool"
101476	//   },
101477	//   "response": {
101478	//     "$ref": "Operation"
101479	//   },
101480	//   "scopes": [
101481	//     "https://www.googleapis.com/auth/cloud-platform",
101482	//     "https://www.googleapis.com/auth/compute"
101483	//   ]
101484	// }
101485
101486}
101487
101488// method id "compute.targetPools.list":
101489
101490type TargetPoolsListCall struct {
101491	s            *Service
101492	project      string
101493	region       string
101494	urlParams_   gensupport.URLParams
101495	ifNoneMatch_ string
101496	ctx_         context.Context
101497	header_      http.Header
101498}
101499
101500// List: Retrieves a list of target pools available to the specified
101501// project and region.
101502// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/list
101503func (r *TargetPoolsService) List(project string, region string) *TargetPoolsListCall {
101504	c := &TargetPoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101505	c.project = project
101506	c.region = region
101507	return c
101508}
101509
101510// Filter sets the optional parameter "filter": A filter expression that
101511// filters resources listed in the response. The expression must specify
101512// the field name, a comparison operator, and the value that you want to
101513// use for filtering. The value must be a string, a number, or a
101514// boolean. The comparison operator must be either =, !=, >, or <.
101515//
101516// For example, if you are filtering Compute Engine instances, you can
101517// exclude instances named example-instance by specifying name !=
101518// example-instance.
101519//
101520// You can also filter nested fields. For example, you could specify
101521// scheduling.automaticRestart = false to include instances only if they
101522// are not scheduled for automatic restarts. You can use filtering on
101523// nested fields to filter based on resource labels.
101524//
101525// To filter on multiple expressions, provide each separate expression
101526// within parentheses. For example, (scheduling.automaticRestart = true)
101527// (cpuPlatform = "Intel Skylake"). By default, each expression is an
101528// AND expression. However, you can include AND and OR expressions
101529// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
101530// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
101531// true).
101532func (c *TargetPoolsListCall) Filter(filter string) *TargetPoolsListCall {
101533	c.urlParams_.Set("filter", filter)
101534	return c
101535}
101536
101537// MaxResults sets the optional parameter "maxResults": The maximum
101538// number of results per page that should be returned. If the number of
101539// available results is larger than maxResults, Compute Engine returns a
101540// nextPageToken that can be used to get the next page of results in
101541// subsequent list requests. Acceptable values are 0 to 500, inclusive.
101542// (Default: 500)
101543func (c *TargetPoolsListCall) MaxResults(maxResults int64) *TargetPoolsListCall {
101544	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
101545	return c
101546}
101547
101548// OrderBy sets the optional parameter "orderBy": Sorts list results by
101549// a certain order. By default, results are returned in alphanumerical
101550// order based on the resource name.
101551//
101552// You can also sort results in descending order based on the creation
101553// timestamp using orderBy="creationTimestamp desc". This sorts results
101554// based on the creationTimestamp field in reverse chronological order
101555// (newest result first). Use this to sort resources like operations so
101556// that the newest operation is returned first.
101557//
101558// Currently, only sorting by name or creationTimestamp desc is
101559// supported.
101560func (c *TargetPoolsListCall) OrderBy(orderBy string) *TargetPoolsListCall {
101561	c.urlParams_.Set("orderBy", orderBy)
101562	return c
101563}
101564
101565// PageToken sets the optional parameter "pageToken": Specifies a page
101566// token to use. Set pageToken to the nextPageToken returned by a
101567// previous list request to get the next page of results.
101568func (c *TargetPoolsListCall) PageToken(pageToken string) *TargetPoolsListCall {
101569	c.urlParams_.Set("pageToken", pageToken)
101570	return c
101571}
101572
101573// Fields allows partial responses to be retrieved. See
101574// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101575// for more information.
101576func (c *TargetPoolsListCall) Fields(s ...googleapi.Field) *TargetPoolsListCall {
101577	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101578	return c
101579}
101580
101581// IfNoneMatch sets the optional parameter which makes the operation
101582// fail if the object's ETag matches the given value. This is useful for
101583// getting updates only after the object has changed since the last
101584// request. Use googleapi.IsNotModified to check whether the response
101585// error from Do is the result of In-None-Match.
101586func (c *TargetPoolsListCall) IfNoneMatch(entityTag string) *TargetPoolsListCall {
101587	c.ifNoneMatch_ = entityTag
101588	return c
101589}
101590
101591// Context sets the context to be used in this call's Do method. Any
101592// pending HTTP request will be aborted if the provided context is
101593// canceled.
101594func (c *TargetPoolsListCall) Context(ctx context.Context) *TargetPoolsListCall {
101595	c.ctx_ = ctx
101596	return c
101597}
101598
101599// Header returns an http.Header that can be modified by the caller to
101600// add HTTP headers to the request.
101601func (c *TargetPoolsListCall) Header() http.Header {
101602	if c.header_ == nil {
101603		c.header_ = make(http.Header)
101604	}
101605	return c.header_
101606}
101607
101608func (c *TargetPoolsListCall) doRequest(alt string) (*http.Response, error) {
101609	reqHeaders := make(http.Header)
101610	for k, v := range c.header_ {
101611		reqHeaders[k] = v
101612	}
101613	reqHeaders.Set("User-Agent", c.s.userAgent())
101614	if c.ifNoneMatch_ != "" {
101615		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
101616	}
101617	var body io.Reader = nil
101618	c.urlParams_.Set("alt", alt)
101619	c.urlParams_.Set("prettyPrint", "false")
101620	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools")
101621	urls += "?" + c.urlParams_.Encode()
101622	req, err := http.NewRequest("GET", urls, body)
101623	if err != nil {
101624		return nil, err
101625	}
101626	req.Header = reqHeaders
101627	googleapi.Expand(req.URL, map[string]string{
101628		"project": c.project,
101629		"region":  c.region,
101630	})
101631	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101632}
101633
101634// Do executes the "compute.targetPools.list" call.
101635// Exactly one of *TargetPoolList or error will be non-nil. Any non-2xx
101636// status code is an error. Response headers are in either
101637// *TargetPoolList.ServerResponse.Header or (if a response was returned
101638// at all) in error.(*googleapi.Error).Header. Use
101639// googleapi.IsNotModified to check whether the returned error was
101640// because http.StatusNotModified was returned.
101641func (c *TargetPoolsListCall) Do(opts ...googleapi.CallOption) (*TargetPoolList, error) {
101642	gensupport.SetOptions(c.urlParams_, opts...)
101643	res, err := c.doRequest("json")
101644	if res != nil && res.StatusCode == http.StatusNotModified {
101645		if res.Body != nil {
101646			res.Body.Close()
101647		}
101648		return nil, &googleapi.Error{
101649			Code:   res.StatusCode,
101650			Header: res.Header,
101651		}
101652	}
101653	if err != nil {
101654		return nil, err
101655	}
101656	defer googleapi.CloseBody(res)
101657	if err := googleapi.CheckResponse(res); err != nil {
101658		return nil, err
101659	}
101660	ret := &TargetPoolList{
101661		ServerResponse: googleapi.ServerResponse{
101662			Header:         res.Header,
101663			HTTPStatusCode: res.StatusCode,
101664		},
101665	}
101666	target := &ret
101667	if err := gensupport.DecodeResponse(target, res); err != nil {
101668		return nil, err
101669	}
101670	return ret, nil
101671	// {
101672	//   "description": "Retrieves a list of target pools available to the specified project and region.",
101673	//   "httpMethod": "GET",
101674	//   "id": "compute.targetPools.list",
101675	//   "parameterOrder": [
101676	//     "project",
101677	//     "region"
101678	//   ],
101679	//   "parameters": {
101680	//     "filter": {
101681	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
101682	//       "location": "query",
101683	//       "type": "string"
101684	//     },
101685	//     "maxResults": {
101686	//       "default": "500",
101687	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
101688	//       "format": "uint32",
101689	//       "location": "query",
101690	//       "minimum": "0",
101691	//       "type": "integer"
101692	//     },
101693	//     "orderBy": {
101694	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
101695	//       "location": "query",
101696	//       "type": "string"
101697	//     },
101698	//     "pageToken": {
101699	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
101700	//       "location": "query",
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	//     "region": {
101711	//       "description": "Name of the region scoping this request.",
101712	//       "location": "path",
101713	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101714	//       "required": true,
101715	//       "type": "string"
101716	//     }
101717	//   },
101718	//   "path": "{project}/regions/{region}/targetPools",
101719	//   "response": {
101720	//     "$ref": "TargetPoolList"
101721	//   },
101722	//   "scopes": [
101723	//     "https://www.googleapis.com/auth/cloud-platform",
101724	//     "https://www.googleapis.com/auth/compute",
101725	//     "https://www.googleapis.com/auth/compute.readonly"
101726	//   ]
101727	// }
101728
101729}
101730
101731// Pages invokes f for each page of results.
101732// A non-nil error returned from f will halt the iteration.
101733// The provided context supersedes any context provided to the Context method.
101734func (c *TargetPoolsListCall) Pages(ctx context.Context, f func(*TargetPoolList) error) error {
101735	c.ctx_ = ctx
101736	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
101737	for {
101738		x, err := c.Do()
101739		if err != nil {
101740			return err
101741		}
101742		if err := f(x); err != nil {
101743			return err
101744		}
101745		if x.NextPageToken == "" {
101746			return nil
101747		}
101748		c.PageToken(x.NextPageToken)
101749	}
101750}
101751
101752// method id "compute.targetPools.removeHealthCheck":
101753
101754type TargetPoolsRemoveHealthCheckCall struct {
101755	s                                   *Service
101756	project                             string
101757	region                              string
101758	targetPool                          string
101759	targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest
101760	urlParams_                          gensupport.URLParams
101761	ctx_                                context.Context
101762	header_                             http.Header
101763}
101764
101765// RemoveHealthCheck: Removes health check URL from a target pool.
101766// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeHealthCheck
101767func (r *TargetPoolsService) RemoveHealthCheck(project string, region string, targetPool string, targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest) *TargetPoolsRemoveHealthCheckCall {
101768	c := &TargetPoolsRemoveHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101769	c.project = project
101770	c.region = region
101771	c.targetPool = targetPool
101772	c.targetpoolsremovehealthcheckrequest = targetpoolsremovehealthcheckrequest
101773	return c
101774}
101775
101776// RequestId sets the optional parameter "requestId": An optional
101777// request ID to identify requests. Specify a unique request ID so that
101778// if you must retry your request, the server will know to ignore the
101779// request if it has already been completed.
101780//
101781// For example, consider a situation where you make an initial request
101782// and the request times out. If you make the request again with the
101783// same request ID, the server can check if original operation with the
101784// same request ID was received, and if so, will ignore the second
101785// request. This prevents clients from accidentally creating duplicate
101786// commitments.
101787//
101788// The request ID must be a valid UUID with the exception that zero UUID
101789// is not supported (00000000-0000-0000-0000-000000000000).
101790func (c *TargetPoolsRemoveHealthCheckCall) RequestId(requestId string) *TargetPoolsRemoveHealthCheckCall {
101791	c.urlParams_.Set("requestId", requestId)
101792	return c
101793}
101794
101795// Fields allows partial responses to be retrieved. See
101796// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101797// for more information.
101798func (c *TargetPoolsRemoveHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveHealthCheckCall {
101799	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101800	return c
101801}
101802
101803// Context sets the context to be used in this call's Do method. Any
101804// pending HTTP request will be aborted if the provided context is
101805// canceled.
101806func (c *TargetPoolsRemoveHealthCheckCall) Context(ctx context.Context) *TargetPoolsRemoveHealthCheckCall {
101807	c.ctx_ = ctx
101808	return c
101809}
101810
101811// Header returns an http.Header that can be modified by the caller to
101812// add HTTP headers to the request.
101813func (c *TargetPoolsRemoveHealthCheckCall) Header() http.Header {
101814	if c.header_ == nil {
101815		c.header_ = make(http.Header)
101816	}
101817	return c.header_
101818}
101819
101820func (c *TargetPoolsRemoveHealthCheckCall) doRequest(alt string) (*http.Response, error) {
101821	reqHeaders := make(http.Header)
101822	for k, v := range c.header_ {
101823		reqHeaders[k] = v
101824	}
101825	reqHeaders.Set("User-Agent", c.s.userAgent())
101826	var body io.Reader = nil
101827	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremovehealthcheckrequest)
101828	if err != nil {
101829		return nil, err
101830	}
101831	reqHeaders.Set("Content-Type", "application/json")
101832	c.urlParams_.Set("alt", alt)
101833	c.urlParams_.Set("prettyPrint", "false")
101834	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck")
101835	urls += "?" + c.urlParams_.Encode()
101836	req, err := http.NewRequest("POST", urls, body)
101837	if err != nil {
101838		return nil, err
101839	}
101840	req.Header = reqHeaders
101841	googleapi.Expand(req.URL, map[string]string{
101842		"project":    c.project,
101843		"region":     c.region,
101844		"targetPool": c.targetPool,
101845	})
101846	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101847}
101848
101849// Do executes the "compute.targetPools.removeHealthCheck" call.
101850// Exactly one of *Operation or error will be non-nil. Any non-2xx
101851// status code is an error. Response headers are in either
101852// *Operation.ServerResponse.Header or (if a response was returned at
101853// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101854// to check whether the returned error was because
101855// http.StatusNotModified was returned.
101856func (c *TargetPoolsRemoveHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101857	gensupport.SetOptions(c.urlParams_, opts...)
101858	res, err := c.doRequest("json")
101859	if res != nil && res.StatusCode == http.StatusNotModified {
101860		if res.Body != nil {
101861			res.Body.Close()
101862		}
101863		return nil, &googleapi.Error{
101864			Code:   res.StatusCode,
101865			Header: res.Header,
101866		}
101867	}
101868	if err != nil {
101869		return nil, err
101870	}
101871	defer googleapi.CloseBody(res)
101872	if err := googleapi.CheckResponse(res); err != nil {
101873		return nil, err
101874	}
101875	ret := &Operation{
101876		ServerResponse: googleapi.ServerResponse{
101877			Header:         res.Header,
101878			HTTPStatusCode: res.StatusCode,
101879		},
101880	}
101881	target := &ret
101882	if err := gensupport.DecodeResponse(target, res); err != nil {
101883		return nil, err
101884	}
101885	return ret, nil
101886	// {
101887	//   "description": "Removes health check URL from a target pool.",
101888	//   "httpMethod": "POST",
101889	//   "id": "compute.targetPools.removeHealthCheck",
101890	//   "parameterOrder": [
101891	//     "project",
101892	//     "region",
101893	//     "targetPool"
101894	//   ],
101895	//   "parameters": {
101896	//     "project": {
101897	//       "description": "Project ID for this request.",
101898	//       "location": "path",
101899	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101900	//       "required": true,
101901	//       "type": "string"
101902	//     },
101903	//     "region": {
101904	//       "description": "Name of the region for this request.",
101905	//       "location": "path",
101906	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101907	//       "required": true,
101908	//       "type": "string"
101909	//     },
101910	//     "requestId": {
101911	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101912	//       "location": "query",
101913	//       "type": "string"
101914	//     },
101915	//     "targetPool": {
101916	//       "description": "Name of the target pool to remove health checks from.",
101917	//       "location": "path",
101918	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101919	//       "required": true,
101920	//       "type": "string"
101921	//     }
101922	//   },
101923	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck",
101924	//   "request": {
101925	//     "$ref": "TargetPoolsRemoveHealthCheckRequest"
101926	//   },
101927	//   "response": {
101928	//     "$ref": "Operation"
101929	//   },
101930	//   "scopes": [
101931	//     "https://www.googleapis.com/auth/cloud-platform",
101932	//     "https://www.googleapis.com/auth/compute"
101933	//   ]
101934	// }
101935
101936}
101937
101938// method id "compute.targetPools.removeInstance":
101939
101940type TargetPoolsRemoveInstanceCall struct {
101941	s                                *Service
101942	project                          string
101943	region                           string
101944	targetPool                       string
101945	targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest
101946	urlParams_                       gensupport.URLParams
101947	ctx_                             context.Context
101948	header_                          http.Header
101949}
101950
101951// RemoveInstance: Removes instance URL from a target pool.
101952// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeInstance
101953func (r *TargetPoolsService) RemoveInstance(project string, region string, targetPool string, targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest) *TargetPoolsRemoveInstanceCall {
101954	c := &TargetPoolsRemoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101955	c.project = project
101956	c.region = region
101957	c.targetPool = targetPool
101958	c.targetpoolsremoveinstancerequest = targetpoolsremoveinstancerequest
101959	return c
101960}
101961
101962// RequestId sets the optional parameter "requestId": An optional
101963// request ID to identify requests. Specify a unique request ID so that
101964// if you must retry your request, the server will know to ignore the
101965// request if it has already been completed.
101966//
101967// For example, consider a situation where you make an initial request
101968// and the request times out. If you make the request again with the
101969// same request ID, the server can check if original operation with the
101970// same request ID was received, and if so, will ignore the second
101971// request. This prevents clients from accidentally creating duplicate
101972// commitments.
101973//
101974// The request ID must be a valid UUID with the exception that zero UUID
101975// is not supported (00000000-0000-0000-0000-000000000000).
101976func (c *TargetPoolsRemoveInstanceCall) RequestId(requestId string) *TargetPoolsRemoveInstanceCall {
101977	c.urlParams_.Set("requestId", requestId)
101978	return c
101979}
101980
101981// Fields allows partial responses to be retrieved. See
101982// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101983// for more information.
101984func (c *TargetPoolsRemoveInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveInstanceCall {
101985	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101986	return c
101987}
101988
101989// Context sets the context to be used in this call's Do method. Any
101990// pending HTTP request will be aborted if the provided context is
101991// canceled.
101992func (c *TargetPoolsRemoveInstanceCall) Context(ctx context.Context) *TargetPoolsRemoveInstanceCall {
101993	c.ctx_ = ctx
101994	return c
101995}
101996
101997// Header returns an http.Header that can be modified by the caller to
101998// add HTTP headers to the request.
101999func (c *TargetPoolsRemoveInstanceCall) Header() http.Header {
102000	if c.header_ == nil {
102001		c.header_ = make(http.Header)
102002	}
102003	return c.header_
102004}
102005
102006func (c *TargetPoolsRemoveInstanceCall) doRequest(alt string) (*http.Response, error) {
102007	reqHeaders := make(http.Header)
102008	for k, v := range c.header_ {
102009		reqHeaders[k] = v
102010	}
102011	reqHeaders.Set("User-Agent", c.s.userAgent())
102012	var body io.Reader = nil
102013	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremoveinstancerequest)
102014	if err != nil {
102015		return nil, err
102016	}
102017	reqHeaders.Set("Content-Type", "application/json")
102018	c.urlParams_.Set("alt", alt)
102019	c.urlParams_.Set("prettyPrint", "false")
102020	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/removeInstance")
102021	urls += "?" + c.urlParams_.Encode()
102022	req, err := http.NewRequest("POST", urls, body)
102023	if err != nil {
102024		return nil, err
102025	}
102026	req.Header = reqHeaders
102027	googleapi.Expand(req.URL, map[string]string{
102028		"project":    c.project,
102029		"region":     c.region,
102030		"targetPool": c.targetPool,
102031	})
102032	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102033}
102034
102035// Do executes the "compute.targetPools.removeInstance" call.
102036// Exactly one of *Operation or error will be non-nil. Any non-2xx
102037// status code is an error. Response headers are in either
102038// *Operation.ServerResponse.Header or (if a response was returned at
102039// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102040// to check whether the returned error was because
102041// http.StatusNotModified was returned.
102042func (c *TargetPoolsRemoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102043	gensupport.SetOptions(c.urlParams_, opts...)
102044	res, err := c.doRequest("json")
102045	if res != nil && res.StatusCode == http.StatusNotModified {
102046		if res.Body != nil {
102047			res.Body.Close()
102048		}
102049		return nil, &googleapi.Error{
102050			Code:   res.StatusCode,
102051			Header: res.Header,
102052		}
102053	}
102054	if err != nil {
102055		return nil, err
102056	}
102057	defer googleapi.CloseBody(res)
102058	if err := googleapi.CheckResponse(res); err != nil {
102059		return nil, err
102060	}
102061	ret := &Operation{
102062		ServerResponse: googleapi.ServerResponse{
102063			Header:         res.Header,
102064			HTTPStatusCode: res.StatusCode,
102065		},
102066	}
102067	target := &ret
102068	if err := gensupport.DecodeResponse(target, res); err != nil {
102069		return nil, err
102070	}
102071	return ret, nil
102072	// {
102073	//   "description": "Removes instance URL from a target pool.",
102074	//   "httpMethod": "POST",
102075	//   "id": "compute.targetPools.removeInstance",
102076	//   "parameterOrder": [
102077	//     "project",
102078	//     "region",
102079	//     "targetPool"
102080	//   ],
102081	//   "parameters": {
102082	//     "project": {
102083	//       "description": "Project ID for this request.",
102084	//       "location": "path",
102085	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102086	//       "required": true,
102087	//       "type": "string"
102088	//     },
102089	//     "region": {
102090	//       "description": "Name of the region scoping this request.",
102091	//       "location": "path",
102092	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102093	//       "required": true,
102094	//       "type": "string"
102095	//     },
102096	//     "requestId": {
102097	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
102098	//       "location": "query",
102099	//       "type": "string"
102100	//     },
102101	//     "targetPool": {
102102	//       "description": "Name of the TargetPool resource to remove instances from.",
102103	//       "location": "path",
102104	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102105	//       "required": true,
102106	//       "type": "string"
102107	//     }
102108	//   },
102109	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/removeInstance",
102110	//   "request": {
102111	//     "$ref": "TargetPoolsRemoveInstanceRequest"
102112	//   },
102113	//   "response": {
102114	//     "$ref": "Operation"
102115	//   },
102116	//   "scopes": [
102117	//     "https://www.googleapis.com/auth/cloud-platform",
102118	//     "https://www.googleapis.com/auth/compute"
102119	//   ]
102120	// }
102121
102122}
102123
102124// method id "compute.targetPools.setBackup":
102125
102126type TargetPoolsSetBackupCall struct {
102127	s               *Service
102128	project         string
102129	region          string
102130	targetPool      string
102131	targetreference *TargetReference
102132	urlParams_      gensupport.URLParams
102133	ctx_            context.Context
102134	header_         http.Header
102135}
102136
102137// SetBackup: Changes a backup target pool's configurations.
102138// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/setBackup
102139func (r *TargetPoolsService) SetBackup(project string, region string, targetPool string, targetreference *TargetReference) *TargetPoolsSetBackupCall {
102140	c := &TargetPoolsSetBackupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102141	c.project = project
102142	c.region = region
102143	c.targetPool = targetPool
102144	c.targetreference = targetreference
102145	return c
102146}
102147
102148// FailoverRatio sets the optional parameter "failoverRatio": New
102149// failoverRatio value for the target pool.
102150func (c *TargetPoolsSetBackupCall) FailoverRatio(failoverRatio float64) *TargetPoolsSetBackupCall {
102151	c.urlParams_.Set("failoverRatio", fmt.Sprint(failoverRatio))
102152	return c
102153}
102154
102155// RequestId sets the optional parameter "requestId": An optional
102156// request ID to identify requests. Specify a unique request ID so that
102157// if you must retry your request, the server will know to ignore the
102158// request if it has already been completed.
102159//
102160// For example, consider a situation where you make an initial request
102161// and the request times out. If you make the request again with the
102162// same request ID, the server can check if original operation with the
102163// same request ID was received, and if so, will ignore the second
102164// request. This prevents clients from accidentally creating duplicate
102165// commitments.
102166//
102167// The request ID must be a valid UUID with the exception that zero UUID
102168// is not supported (00000000-0000-0000-0000-000000000000).
102169func (c *TargetPoolsSetBackupCall) RequestId(requestId string) *TargetPoolsSetBackupCall {
102170	c.urlParams_.Set("requestId", requestId)
102171	return c
102172}
102173
102174// Fields allows partial responses to be retrieved. See
102175// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102176// for more information.
102177func (c *TargetPoolsSetBackupCall) Fields(s ...googleapi.Field) *TargetPoolsSetBackupCall {
102178	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102179	return c
102180}
102181
102182// Context sets the context to be used in this call's Do method. Any
102183// pending HTTP request will be aborted if the provided context is
102184// canceled.
102185func (c *TargetPoolsSetBackupCall) Context(ctx context.Context) *TargetPoolsSetBackupCall {
102186	c.ctx_ = ctx
102187	return c
102188}
102189
102190// Header returns an http.Header that can be modified by the caller to
102191// add HTTP headers to the request.
102192func (c *TargetPoolsSetBackupCall) Header() http.Header {
102193	if c.header_ == nil {
102194		c.header_ = make(http.Header)
102195	}
102196	return c.header_
102197}
102198
102199func (c *TargetPoolsSetBackupCall) doRequest(alt string) (*http.Response, error) {
102200	reqHeaders := make(http.Header)
102201	for k, v := range c.header_ {
102202		reqHeaders[k] = v
102203	}
102204	reqHeaders.Set("User-Agent", c.s.userAgent())
102205	var body io.Reader = nil
102206	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
102207	if err != nil {
102208		return nil, err
102209	}
102210	reqHeaders.Set("Content-Type", "application/json")
102211	c.urlParams_.Set("alt", alt)
102212	c.urlParams_.Set("prettyPrint", "false")
102213	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/setBackup")
102214	urls += "?" + c.urlParams_.Encode()
102215	req, err := http.NewRequest("POST", urls, body)
102216	if err != nil {
102217		return nil, err
102218	}
102219	req.Header = reqHeaders
102220	googleapi.Expand(req.URL, map[string]string{
102221		"project":    c.project,
102222		"region":     c.region,
102223		"targetPool": c.targetPool,
102224	})
102225	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102226}
102227
102228// Do executes the "compute.targetPools.setBackup" call.
102229// Exactly one of *Operation or error will be non-nil. Any non-2xx
102230// status code is an error. Response headers are in either
102231// *Operation.ServerResponse.Header or (if a response was returned at
102232// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102233// to check whether the returned error was because
102234// http.StatusNotModified was returned.
102235func (c *TargetPoolsSetBackupCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102236	gensupport.SetOptions(c.urlParams_, opts...)
102237	res, err := c.doRequest("json")
102238	if res != nil && res.StatusCode == http.StatusNotModified {
102239		if res.Body != nil {
102240			res.Body.Close()
102241		}
102242		return nil, &googleapi.Error{
102243			Code:   res.StatusCode,
102244			Header: res.Header,
102245		}
102246	}
102247	if err != nil {
102248		return nil, err
102249	}
102250	defer googleapi.CloseBody(res)
102251	if err := googleapi.CheckResponse(res); err != nil {
102252		return nil, err
102253	}
102254	ret := &Operation{
102255		ServerResponse: googleapi.ServerResponse{
102256			Header:         res.Header,
102257			HTTPStatusCode: res.StatusCode,
102258		},
102259	}
102260	target := &ret
102261	if err := gensupport.DecodeResponse(target, res); err != nil {
102262		return nil, err
102263	}
102264	return ret, nil
102265	// {
102266	//   "description": "Changes a backup target pool's configurations.",
102267	//   "httpMethod": "POST",
102268	//   "id": "compute.targetPools.setBackup",
102269	//   "parameterOrder": [
102270	//     "project",
102271	//     "region",
102272	//     "targetPool"
102273	//   ],
102274	//   "parameters": {
102275	//     "failoverRatio": {
102276	//       "description": "New failoverRatio value for the target pool.",
102277	//       "format": "float",
102278	//       "location": "query",
102279	//       "type": "number"
102280	//     },
102281	//     "project": {
102282	//       "description": "Project ID for this request.",
102283	//       "location": "path",
102284	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102285	//       "required": true,
102286	//       "type": "string"
102287	//     },
102288	//     "region": {
102289	//       "description": "Name of the region scoping this request.",
102290	//       "location": "path",
102291	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102292	//       "required": true,
102293	//       "type": "string"
102294	//     },
102295	//     "requestId": {
102296	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
102297	//       "location": "query",
102298	//       "type": "string"
102299	//     },
102300	//     "targetPool": {
102301	//       "description": "Name of the TargetPool resource to set a backup pool for.",
102302	//       "location": "path",
102303	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102304	//       "required": true,
102305	//       "type": "string"
102306	//     }
102307	//   },
102308	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/setBackup",
102309	//   "request": {
102310	//     "$ref": "TargetReference"
102311	//   },
102312	//   "response": {
102313	//     "$ref": "Operation"
102314	//   },
102315	//   "scopes": [
102316	//     "https://www.googleapis.com/auth/cloud-platform",
102317	//     "https://www.googleapis.com/auth/compute"
102318	//   ]
102319	// }
102320
102321}
102322
102323// method id "compute.targetSslProxies.delete":
102324
102325type TargetSslProxiesDeleteCall struct {
102326	s              *Service
102327	project        string
102328	targetSslProxy string
102329	urlParams_     gensupport.URLParams
102330	ctx_           context.Context
102331	header_        http.Header
102332}
102333
102334// Delete: Deletes the specified TargetSslProxy resource.
102335func (r *TargetSslProxiesService) Delete(project string, targetSslProxy string) *TargetSslProxiesDeleteCall {
102336	c := &TargetSslProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102337	c.project = project
102338	c.targetSslProxy = targetSslProxy
102339	return c
102340}
102341
102342// RequestId sets the optional parameter "requestId": An optional
102343// request ID to identify requests. Specify a unique request ID so that
102344// if you must retry your request, the server will know to ignore the
102345// request if it has already been completed.
102346//
102347// For example, consider a situation where you make an initial request
102348// and the request times out. If you make the request again with the
102349// same request ID, the server can check if original operation with the
102350// same request ID was received, and if so, will ignore the second
102351// request. This prevents clients from accidentally creating duplicate
102352// commitments.
102353//
102354// The request ID must be a valid UUID with the exception that zero UUID
102355// is not supported (00000000-0000-0000-0000-000000000000).
102356func (c *TargetSslProxiesDeleteCall) RequestId(requestId string) *TargetSslProxiesDeleteCall {
102357	c.urlParams_.Set("requestId", requestId)
102358	return c
102359}
102360
102361// Fields allows partial responses to be retrieved. See
102362// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102363// for more information.
102364func (c *TargetSslProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetSslProxiesDeleteCall {
102365	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102366	return c
102367}
102368
102369// Context sets the context to be used in this call's Do method. Any
102370// pending HTTP request will be aborted if the provided context is
102371// canceled.
102372func (c *TargetSslProxiesDeleteCall) Context(ctx context.Context) *TargetSslProxiesDeleteCall {
102373	c.ctx_ = ctx
102374	return c
102375}
102376
102377// Header returns an http.Header that can be modified by the caller to
102378// add HTTP headers to the request.
102379func (c *TargetSslProxiesDeleteCall) Header() http.Header {
102380	if c.header_ == nil {
102381		c.header_ = make(http.Header)
102382	}
102383	return c.header_
102384}
102385
102386func (c *TargetSslProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
102387	reqHeaders := make(http.Header)
102388	for k, v := range c.header_ {
102389		reqHeaders[k] = v
102390	}
102391	reqHeaders.Set("User-Agent", c.s.userAgent())
102392	var body io.Reader = nil
102393	c.urlParams_.Set("alt", alt)
102394	c.urlParams_.Set("prettyPrint", "false")
102395	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}")
102396	urls += "?" + c.urlParams_.Encode()
102397	req, err := http.NewRequest("DELETE", urls, body)
102398	if err != nil {
102399		return nil, err
102400	}
102401	req.Header = reqHeaders
102402	googleapi.Expand(req.URL, map[string]string{
102403		"project":        c.project,
102404		"targetSslProxy": c.targetSslProxy,
102405	})
102406	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102407}
102408
102409// Do executes the "compute.targetSslProxies.delete" call.
102410// Exactly one of *Operation or error will be non-nil. Any non-2xx
102411// status code is an error. Response headers are in either
102412// *Operation.ServerResponse.Header or (if a response was returned at
102413// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102414// to check whether the returned error was because
102415// http.StatusNotModified was returned.
102416func (c *TargetSslProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102417	gensupport.SetOptions(c.urlParams_, opts...)
102418	res, err := c.doRequest("json")
102419	if res != nil && res.StatusCode == http.StatusNotModified {
102420		if res.Body != nil {
102421			res.Body.Close()
102422		}
102423		return nil, &googleapi.Error{
102424			Code:   res.StatusCode,
102425			Header: res.Header,
102426		}
102427	}
102428	if err != nil {
102429		return nil, err
102430	}
102431	defer googleapi.CloseBody(res)
102432	if err := googleapi.CheckResponse(res); err != nil {
102433		return nil, err
102434	}
102435	ret := &Operation{
102436		ServerResponse: googleapi.ServerResponse{
102437			Header:         res.Header,
102438			HTTPStatusCode: res.StatusCode,
102439		},
102440	}
102441	target := &ret
102442	if err := gensupport.DecodeResponse(target, res); err != nil {
102443		return nil, err
102444	}
102445	return ret, nil
102446	// {
102447	//   "description": "Deletes the specified TargetSslProxy resource.",
102448	//   "httpMethod": "DELETE",
102449	//   "id": "compute.targetSslProxies.delete",
102450	//   "parameterOrder": [
102451	//     "project",
102452	//     "targetSslProxy"
102453	//   ],
102454	//   "parameters": {
102455	//     "project": {
102456	//       "description": "Project ID for this request.",
102457	//       "location": "path",
102458	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102459	//       "required": true,
102460	//       "type": "string"
102461	//     },
102462	//     "requestId": {
102463	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
102464	//       "location": "query",
102465	//       "type": "string"
102466	//     },
102467	//     "targetSslProxy": {
102468	//       "description": "Name of the TargetSslProxy resource to delete.",
102469	//       "location": "path",
102470	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102471	//       "required": true,
102472	//       "type": "string"
102473	//     }
102474	//   },
102475	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}",
102476	//   "response": {
102477	//     "$ref": "Operation"
102478	//   },
102479	//   "scopes": [
102480	//     "https://www.googleapis.com/auth/cloud-platform",
102481	//     "https://www.googleapis.com/auth/compute"
102482	//   ]
102483	// }
102484
102485}
102486
102487// method id "compute.targetSslProxies.get":
102488
102489type TargetSslProxiesGetCall struct {
102490	s              *Service
102491	project        string
102492	targetSslProxy string
102493	urlParams_     gensupport.URLParams
102494	ifNoneMatch_   string
102495	ctx_           context.Context
102496	header_        http.Header
102497}
102498
102499// Get: Returns the specified TargetSslProxy resource. Gets a list of
102500// available target SSL proxies by making a list() request.
102501func (r *TargetSslProxiesService) Get(project string, targetSslProxy string) *TargetSslProxiesGetCall {
102502	c := &TargetSslProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102503	c.project = project
102504	c.targetSslProxy = targetSslProxy
102505	return c
102506}
102507
102508// Fields allows partial responses to be retrieved. See
102509// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102510// for more information.
102511func (c *TargetSslProxiesGetCall) Fields(s ...googleapi.Field) *TargetSslProxiesGetCall {
102512	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102513	return c
102514}
102515
102516// IfNoneMatch sets the optional parameter which makes the operation
102517// fail if the object's ETag matches the given value. This is useful for
102518// getting updates only after the object has changed since the last
102519// request. Use googleapi.IsNotModified to check whether the response
102520// error from Do is the result of In-None-Match.
102521func (c *TargetSslProxiesGetCall) IfNoneMatch(entityTag string) *TargetSslProxiesGetCall {
102522	c.ifNoneMatch_ = entityTag
102523	return c
102524}
102525
102526// Context sets the context to be used in this call's Do method. Any
102527// pending HTTP request will be aborted if the provided context is
102528// canceled.
102529func (c *TargetSslProxiesGetCall) Context(ctx context.Context) *TargetSslProxiesGetCall {
102530	c.ctx_ = ctx
102531	return c
102532}
102533
102534// Header returns an http.Header that can be modified by the caller to
102535// add HTTP headers to the request.
102536func (c *TargetSslProxiesGetCall) Header() http.Header {
102537	if c.header_ == nil {
102538		c.header_ = make(http.Header)
102539	}
102540	return c.header_
102541}
102542
102543func (c *TargetSslProxiesGetCall) doRequest(alt string) (*http.Response, error) {
102544	reqHeaders := make(http.Header)
102545	for k, v := range c.header_ {
102546		reqHeaders[k] = v
102547	}
102548	reqHeaders.Set("User-Agent", c.s.userAgent())
102549	if c.ifNoneMatch_ != "" {
102550		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102551	}
102552	var body io.Reader = nil
102553	c.urlParams_.Set("alt", alt)
102554	c.urlParams_.Set("prettyPrint", "false")
102555	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}")
102556	urls += "?" + c.urlParams_.Encode()
102557	req, err := http.NewRequest("GET", urls, body)
102558	if err != nil {
102559		return nil, err
102560	}
102561	req.Header = reqHeaders
102562	googleapi.Expand(req.URL, map[string]string{
102563		"project":        c.project,
102564		"targetSslProxy": c.targetSslProxy,
102565	})
102566	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102567}
102568
102569// Do executes the "compute.targetSslProxies.get" call.
102570// Exactly one of *TargetSslProxy or error will be non-nil. Any non-2xx
102571// status code is an error. Response headers are in either
102572// *TargetSslProxy.ServerResponse.Header or (if a response was returned
102573// at all) in error.(*googleapi.Error).Header. Use
102574// googleapi.IsNotModified to check whether the returned error was
102575// because http.StatusNotModified was returned.
102576func (c *TargetSslProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetSslProxy, error) {
102577	gensupport.SetOptions(c.urlParams_, opts...)
102578	res, err := c.doRequest("json")
102579	if res != nil && res.StatusCode == http.StatusNotModified {
102580		if res.Body != nil {
102581			res.Body.Close()
102582		}
102583		return nil, &googleapi.Error{
102584			Code:   res.StatusCode,
102585			Header: res.Header,
102586		}
102587	}
102588	if err != nil {
102589		return nil, err
102590	}
102591	defer googleapi.CloseBody(res)
102592	if err := googleapi.CheckResponse(res); err != nil {
102593		return nil, err
102594	}
102595	ret := &TargetSslProxy{
102596		ServerResponse: googleapi.ServerResponse{
102597			Header:         res.Header,
102598			HTTPStatusCode: res.StatusCode,
102599		},
102600	}
102601	target := &ret
102602	if err := gensupport.DecodeResponse(target, res); err != nil {
102603		return nil, err
102604	}
102605	return ret, nil
102606	// {
102607	//   "description": "Returns the specified TargetSslProxy resource. Gets a list of available target SSL proxies by making a list() request.",
102608	//   "httpMethod": "GET",
102609	//   "id": "compute.targetSslProxies.get",
102610	//   "parameterOrder": [
102611	//     "project",
102612	//     "targetSslProxy"
102613	//   ],
102614	//   "parameters": {
102615	//     "project": {
102616	//       "description": "Project ID for this request.",
102617	//       "location": "path",
102618	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102619	//       "required": true,
102620	//       "type": "string"
102621	//     },
102622	//     "targetSslProxy": {
102623	//       "description": "Name of the TargetSslProxy resource to return.",
102624	//       "location": "path",
102625	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102626	//       "required": true,
102627	//       "type": "string"
102628	//     }
102629	//   },
102630	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}",
102631	//   "response": {
102632	//     "$ref": "TargetSslProxy"
102633	//   },
102634	//   "scopes": [
102635	//     "https://www.googleapis.com/auth/cloud-platform",
102636	//     "https://www.googleapis.com/auth/compute",
102637	//     "https://www.googleapis.com/auth/compute.readonly"
102638	//   ]
102639	// }
102640
102641}
102642
102643// method id "compute.targetSslProxies.insert":
102644
102645type TargetSslProxiesInsertCall struct {
102646	s              *Service
102647	project        string
102648	targetsslproxy *TargetSslProxy
102649	urlParams_     gensupport.URLParams
102650	ctx_           context.Context
102651	header_        http.Header
102652}
102653
102654// Insert: Creates a TargetSslProxy resource in the specified project
102655// using the data included in the request.
102656func (r *TargetSslProxiesService) Insert(project string, targetsslproxy *TargetSslProxy) *TargetSslProxiesInsertCall {
102657	c := &TargetSslProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102658	c.project = project
102659	c.targetsslproxy = targetsslproxy
102660	return c
102661}
102662
102663// RequestId sets the optional parameter "requestId": An optional
102664// request ID to identify requests. Specify a unique request ID so that
102665// if you must retry your request, the server will know to ignore the
102666// request if it has already been completed.
102667//
102668// For example, consider a situation where you make an initial request
102669// and the request times out. If you make the request again with the
102670// same request ID, the server can check if original operation with the
102671// same request ID was received, and if so, will ignore the second
102672// request. This prevents clients from accidentally creating duplicate
102673// commitments.
102674//
102675// The request ID must be a valid UUID with the exception that zero UUID
102676// is not supported (00000000-0000-0000-0000-000000000000).
102677func (c *TargetSslProxiesInsertCall) RequestId(requestId string) *TargetSslProxiesInsertCall {
102678	c.urlParams_.Set("requestId", requestId)
102679	return c
102680}
102681
102682// Fields allows partial responses to be retrieved. See
102683// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102684// for more information.
102685func (c *TargetSslProxiesInsertCall) Fields(s ...googleapi.Field) *TargetSslProxiesInsertCall {
102686	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102687	return c
102688}
102689
102690// Context sets the context to be used in this call's Do method. Any
102691// pending HTTP request will be aborted if the provided context is
102692// canceled.
102693func (c *TargetSslProxiesInsertCall) Context(ctx context.Context) *TargetSslProxiesInsertCall {
102694	c.ctx_ = ctx
102695	return c
102696}
102697
102698// Header returns an http.Header that can be modified by the caller to
102699// add HTTP headers to the request.
102700func (c *TargetSslProxiesInsertCall) Header() http.Header {
102701	if c.header_ == nil {
102702		c.header_ = make(http.Header)
102703	}
102704	return c.header_
102705}
102706
102707func (c *TargetSslProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
102708	reqHeaders := make(http.Header)
102709	for k, v := range c.header_ {
102710		reqHeaders[k] = v
102711	}
102712	reqHeaders.Set("User-Agent", c.s.userAgent())
102713	var body io.Reader = nil
102714	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxy)
102715	if err != nil {
102716		return nil, err
102717	}
102718	reqHeaders.Set("Content-Type", "application/json")
102719	c.urlParams_.Set("alt", alt)
102720	c.urlParams_.Set("prettyPrint", "false")
102721	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies")
102722	urls += "?" + c.urlParams_.Encode()
102723	req, err := http.NewRequest("POST", urls, body)
102724	if err != nil {
102725		return nil, err
102726	}
102727	req.Header = reqHeaders
102728	googleapi.Expand(req.URL, map[string]string{
102729		"project": c.project,
102730	})
102731	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102732}
102733
102734// Do executes the "compute.targetSslProxies.insert" call.
102735// Exactly one of *Operation or error will be non-nil. Any non-2xx
102736// status code is an error. Response headers are in either
102737// *Operation.ServerResponse.Header or (if a response was returned at
102738// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102739// to check whether the returned error was because
102740// http.StatusNotModified was returned.
102741func (c *TargetSslProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102742	gensupport.SetOptions(c.urlParams_, opts...)
102743	res, err := c.doRequest("json")
102744	if res != nil && res.StatusCode == http.StatusNotModified {
102745		if res.Body != nil {
102746			res.Body.Close()
102747		}
102748		return nil, &googleapi.Error{
102749			Code:   res.StatusCode,
102750			Header: res.Header,
102751		}
102752	}
102753	if err != nil {
102754		return nil, err
102755	}
102756	defer googleapi.CloseBody(res)
102757	if err := googleapi.CheckResponse(res); err != nil {
102758		return nil, err
102759	}
102760	ret := &Operation{
102761		ServerResponse: googleapi.ServerResponse{
102762			Header:         res.Header,
102763			HTTPStatusCode: res.StatusCode,
102764		},
102765	}
102766	target := &ret
102767	if err := gensupport.DecodeResponse(target, res); err != nil {
102768		return nil, err
102769	}
102770	return ret, nil
102771	// {
102772	//   "description": "Creates a TargetSslProxy resource in the specified project using the data included in the request.",
102773	//   "httpMethod": "POST",
102774	//   "id": "compute.targetSslProxies.insert",
102775	//   "parameterOrder": [
102776	//     "project"
102777	//   ],
102778	//   "parameters": {
102779	//     "project": {
102780	//       "description": "Project ID for this request.",
102781	//       "location": "path",
102782	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102783	//       "required": true,
102784	//       "type": "string"
102785	//     },
102786	//     "requestId": {
102787	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
102788	//       "location": "query",
102789	//       "type": "string"
102790	//     }
102791	//   },
102792	//   "path": "{project}/global/targetSslProxies",
102793	//   "request": {
102794	//     "$ref": "TargetSslProxy"
102795	//   },
102796	//   "response": {
102797	//     "$ref": "Operation"
102798	//   },
102799	//   "scopes": [
102800	//     "https://www.googleapis.com/auth/cloud-platform",
102801	//     "https://www.googleapis.com/auth/compute"
102802	//   ]
102803	// }
102804
102805}
102806
102807// method id "compute.targetSslProxies.list":
102808
102809type TargetSslProxiesListCall struct {
102810	s            *Service
102811	project      string
102812	urlParams_   gensupport.URLParams
102813	ifNoneMatch_ string
102814	ctx_         context.Context
102815	header_      http.Header
102816}
102817
102818// List: Retrieves the list of TargetSslProxy resources available to the
102819// specified project.
102820func (r *TargetSslProxiesService) List(project string) *TargetSslProxiesListCall {
102821	c := &TargetSslProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102822	c.project = project
102823	return c
102824}
102825
102826// Filter sets the optional parameter "filter": A filter expression that
102827// filters resources listed in the response. The expression must specify
102828// the field name, a comparison operator, and the value that you want to
102829// use for filtering. The value must be a string, a number, or a
102830// boolean. The comparison operator must be either =, !=, >, or <.
102831//
102832// For example, if you are filtering Compute Engine instances, you can
102833// exclude instances named example-instance by specifying name !=
102834// example-instance.
102835//
102836// You can also filter nested fields. For example, you could specify
102837// scheduling.automaticRestart = false to include instances only if they
102838// are not scheduled for automatic restarts. You can use filtering on
102839// nested fields to filter based on resource labels.
102840//
102841// To filter on multiple expressions, provide each separate expression
102842// within parentheses. For example, (scheduling.automaticRestart = true)
102843// (cpuPlatform = "Intel Skylake"). By default, each expression is an
102844// AND expression. However, you can include AND and OR expressions
102845// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
102846// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
102847// true).
102848func (c *TargetSslProxiesListCall) Filter(filter string) *TargetSslProxiesListCall {
102849	c.urlParams_.Set("filter", filter)
102850	return c
102851}
102852
102853// MaxResults sets the optional parameter "maxResults": The maximum
102854// number of results per page that should be returned. If the number of
102855// available results is larger than maxResults, Compute Engine returns a
102856// nextPageToken that can be used to get the next page of results in
102857// subsequent list requests. Acceptable values are 0 to 500, inclusive.
102858// (Default: 500)
102859func (c *TargetSslProxiesListCall) MaxResults(maxResults int64) *TargetSslProxiesListCall {
102860	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
102861	return c
102862}
102863
102864// OrderBy sets the optional parameter "orderBy": Sorts list results by
102865// a certain order. By default, results are returned in alphanumerical
102866// order based on the resource name.
102867//
102868// You can also sort results in descending order based on the creation
102869// timestamp using orderBy="creationTimestamp desc". This sorts results
102870// based on the creationTimestamp field in reverse chronological order
102871// (newest result first). Use this to sort resources like operations so
102872// that the newest operation is returned first.
102873//
102874// Currently, only sorting by name or creationTimestamp desc is
102875// supported.
102876func (c *TargetSslProxiesListCall) OrderBy(orderBy string) *TargetSslProxiesListCall {
102877	c.urlParams_.Set("orderBy", orderBy)
102878	return c
102879}
102880
102881// PageToken sets the optional parameter "pageToken": Specifies a page
102882// token to use. Set pageToken to the nextPageToken returned by a
102883// previous list request to get the next page of results.
102884func (c *TargetSslProxiesListCall) PageToken(pageToken string) *TargetSslProxiesListCall {
102885	c.urlParams_.Set("pageToken", pageToken)
102886	return c
102887}
102888
102889// Fields allows partial responses to be retrieved. See
102890// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102891// for more information.
102892func (c *TargetSslProxiesListCall) Fields(s ...googleapi.Field) *TargetSslProxiesListCall {
102893	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102894	return c
102895}
102896
102897// IfNoneMatch sets the optional parameter which makes the operation
102898// fail if the object's ETag matches the given value. This is useful for
102899// getting updates only after the object has changed since the last
102900// request. Use googleapi.IsNotModified to check whether the response
102901// error from Do is the result of In-None-Match.
102902func (c *TargetSslProxiesListCall) IfNoneMatch(entityTag string) *TargetSslProxiesListCall {
102903	c.ifNoneMatch_ = entityTag
102904	return c
102905}
102906
102907// Context sets the context to be used in this call's Do method. Any
102908// pending HTTP request will be aborted if the provided context is
102909// canceled.
102910func (c *TargetSslProxiesListCall) Context(ctx context.Context) *TargetSslProxiesListCall {
102911	c.ctx_ = ctx
102912	return c
102913}
102914
102915// Header returns an http.Header that can be modified by the caller to
102916// add HTTP headers to the request.
102917func (c *TargetSslProxiesListCall) Header() http.Header {
102918	if c.header_ == nil {
102919		c.header_ = make(http.Header)
102920	}
102921	return c.header_
102922}
102923
102924func (c *TargetSslProxiesListCall) doRequest(alt string) (*http.Response, error) {
102925	reqHeaders := make(http.Header)
102926	for k, v := range c.header_ {
102927		reqHeaders[k] = v
102928	}
102929	reqHeaders.Set("User-Agent", c.s.userAgent())
102930	if c.ifNoneMatch_ != "" {
102931		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102932	}
102933	var body io.Reader = nil
102934	c.urlParams_.Set("alt", alt)
102935	c.urlParams_.Set("prettyPrint", "false")
102936	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies")
102937	urls += "?" + c.urlParams_.Encode()
102938	req, err := http.NewRequest("GET", urls, body)
102939	if err != nil {
102940		return nil, err
102941	}
102942	req.Header = reqHeaders
102943	googleapi.Expand(req.URL, map[string]string{
102944		"project": c.project,
102945	})
102946	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102947}
102948
102949// Do executes the "compute.targetSslProxies.list" call.
102950// Exactly one of *TargetSslProxyList or error will be non-nil. Any
102951// non-2xx status code is an error. Response headers are in either
102952// *TargetSslProxyList.ServerResponse.Header or (if a response was
102953// returned at all) in error.(*googleapi.Error).Header. Use
102954// googleapi.IsNotModified to check whether the returned error was
102955// because http.StatusNotModified was returned.
102956func (c *TargetSslProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetSslProxyList, error) {
102957	gensupport.SetOptions(c.urlParams_, opts...)
102958	res, err := c.doRequest("json")
102959	if res != nil && res.StatusCode == http.StatusNotModified {
102960		if res.Body != nil {
102961			res.Body.Close()
102962		}
102963		return nil, &googleapi.Error{
102964			Code:   res.StatusCode,
102965			Header: res.Header,
102966		}
102967	}
102968	if err != nil {
102969		return nil, err
102970	}
102971	defer googleapi.CloseBody(res)
102972	if err := googleapi.CheckResponse(res); err != nil {
102973		return nil, err
102974	}
102975	ret := &TargetSslProxyList{
102976		ServerResponse: googleapi.ServerResponse{
102977			Header:         res.Header,
102978			HTTPStatusCode: res.StatusCode,
102979		},
102980	}
102981	target := &ret
102982	if err := gensupport.DecodeResponse(target, res); err != nil {
102983		return nil, err
102984	}
102985	return ret, nil
102986	// {
102987	//   "description": "Retrieves the list of TargetSslProxy resources available to the specified project.",
102988	//   "httpMethod": "GET",
102989	//   "id": "compute.targetSslProxies.list",
102990	//   "parameterOrder": [
102991	//     "project"
102992	//   ],
102993	//   "parameters": {
102994	//     "filter": {
102995	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
102996	//       "location": "query",
102997	//       "type": "string"
102998	//     },
102999	//     "maxResults": {
103000	//       "default": "500",
103001	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
103002	//       "format": "uint32",
103003	//       "location": "query",
103004	//       "minimum": "0",
103005	//       "type": "integer"
103006	//     },
103007	//     "orderBy": {
103008	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
103009	//       "location": "query",
103010	//       "type": "string"
103011	//     },
103012	//     "pageToken": {
103013	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
103014	//       "location": "query",
103015	//       "type": "string"
103016	//     },
103017	//     "project": {
103018	//       "description": "Project ID for this request.",
103019	//       "location": "path",
103020	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103021	//       "required": true,
103022	//       "type": "string"
103023	//     }
103024	//   },
103025	//   "path": "{project}/global/targetSslProxies",
103026	//   "response": {
103027	//     "$ref": "TargetSslProxyList"
103028	//   },
103029	//   "scopes": [
103030	//     "https://www.googleapis.com/auth/cloud-platform",
103031	//     "https://www.googleapis.com/auth/compute",
103032	//     "https://www.googleapis.com/auth/compute.readonly"
103033	//   ]
103034	// }
103035
103036}
103037
103038// Pages invokes f for each page of results.
103039// A non-nil error returned from f will halt the iteration.
103040// The provided context supersedes any context provided to the Context method.
103041func (c *TargetSslProxiesListCall) Pages(ctx context.Context, f func(*TargetSslProxyList) error) error {
103042	c.ctx_ = ctx
103043	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
103044	for {
103045		x, err := c.Do()
103046		if err != nil {
103047			return err
103048		}
103049		if err := f(x); err != nil {
103050			return err
103051		}
103052		if x.NextPageToken == "" {
103053			return nil
103054		}
103055		c.PageToken(x.NextPageToken)
103056	}
103057}
103058
103059// method id "compute.targetSslProxies.setBackendService":
103060
103061type TargetSslProxiesSetBackendServiceCall struct {
103062	s                                        *Service
103063	project                                  string
103064	targetSslProxy                           string
103065	targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest
103066	urlParams_                               gensupport.URLParams
103067	ctx_                                     context.Context
103068	header_                                  http.Header
103069}
103070
103071// SetBackendService: Changes the BackendService for TargetSslProxy.
103072func (r *TargetSslProxiesService) SetBackendService(project string, targetSslProxy string, targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest) *TargetSslProxiesSetBackendServiceCall {
103073	c := &TargetSslProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103074	c.project = project
103075	c.targetSslProxy = targetSslProxy
103076	c.targetsslproxiessetbackendservicerequest = targetsslproxiessetbackendservicerequest
103077	return c
103078}
103079
103080// RequestId sets the optional parameter "requestId": An optional
103081// request ID to identify requests. Specify a unique request ID so that
103082// if you must retry your request, the server will know to ignore the
103083// request if it has already been completed.
103084//
103085// For example, consider a situation where you make an initial request
103086// and the request times out. If you make the request again with the
103087// same request ID, the server can check if original operation with the
103088// same request ID was received, and if so, will ignore the second
103089// request. This prevents clients from accidentally creating duplicate
103090// commitments.
103091//
103092// The request ID must be a valid UUID with the exception that zero UUID
103093// is not supported (00000000-0000-0000-0000-000000000000).
103094func (c *TargetSslProxiesSetBackendServiceCall) RequestId(requestId string) *TargetSslProxiesSetBackendServiceCall {
103095	c.urlParams_.Set("requestId", requestId)
103096	return c
103097}
103098
103099// Fields allows partial responses to be retrieved. See
103100// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103101// for more information.
103102func (c *TargetSslProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetBackendServiceCall {
103103	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103104	return c
103105}
103106
103107// Context sets the context to be used in this call's Do method. Any
103108// pending HTTP request will be aborted if the provided context is
103109// canceled.
103110func (c *TargetSslProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetSslProxiesSetBackendServiceCall {
103111	c.ctx_ = ctx
103112	return c
103113}
103114
103115// Header returns an http.Header that can be modified by the caller to
103116// add HTTP headers to the request.
103117func (c *TargetSslProxiesSetBackendServiceCall) Header() http.Header {
103118	if c.header_ == nil {
103119		c.header_ = make(http.Header)
103120	}
103121	return c.header_
103122}
103123
103124func (c *TargetSslProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
103125	reqHeaders := make(http.Header)
103126	for k, v := range c.header_ {
103127		reqHeaders[k] = v
103128	}
103129	reqHeaders.Set("User-Agent", c.s.userAgent())
103130	var body io.Reader = nil
103131	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetbackendservicerequest)
103132	if err != nil {
103133		return nil, err
103134	}
103135	reqHeaders.Set("Content-Type", "application/json")
103136	c.urlParams_.Set("alt", alt)
103137	c.urlParams_.Set("prettyPrint", "false")
103138	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setBackendService")
103139	urls += "?" + c.urlParams_.Encode()
103140	req, err := http.NewRequest("POST", urls, body)
103141	if err != nil {
103142		return nil, err
103143	}
103144	req.Header = reqHeaders
103145	googleapi.Expand(req.URL, map[string]string{
103146		"project":        c.project,
103147		"targetSslProxy": c.targetSslProxy,
103148	})
103149	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103150}
103151
103152// Do executes the "compute.targetSslProxies.setBackendService" call.
103153// Exactly one of *Operation or error will be non-nil. Any non-2xx
103154// status code is an error. Response headers are in either
103155// *Operation.ServerResponse.Header or (if a response was returned at
103156// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103157// to check whether the returned error was because
103158// http.StatusNotModified was returned.
103159func (c *TargetSslProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103160	gensupport.SetOptions(c.urlParams_, opts...)
103161	res, err := c.doRequest("json")
103162	if res != nil && res.StatusCode == http.StatusNotModified {
103163		if res.Body != nil {
103164			res.Body.Close()
103165		}
103166		return nil, &googleapi.Error{
103167			Code:   res.StatusCode,
103168			Header: res.Header,
103169		}
103170	}
103171	if err != nil {
103172		return nil, err
103173	}
103174	defer googleapi.CloseBody(res)
103175	if err := googleapi.CheckResponse(res); err != nil {
103176		return nil, err
103177	}
103178	ret := &Operation{
103179		ServerResponse: googleapi.ServerResponse{
103180			Header:         res.Header,
103181			HTTPStatusCode: res.StatusCode,
103182		},
103183	}
103184	target := &ret
103185	if err := gensupport.DecodeResponse(target, res); err != nil {
103186		return nil, err
103187	}
103188	return ret, nil
103189	// {
103190	//   "description": "Changes the BackendService for TargetSslProxy.",
103191	//   "httpMethod": "POST",
103192	//   "id": "compute.targetSslProxies.setBackendService",
103193	//   "parameterOrder": [
103194	//     "project",
103195	//     "targetSslProxy"
103196	//   ],
103197	//   "parameters": {
103198	//     "project": {
103199	//       "description": "Project ID for this request.",
103200	//       "location": "path",
103201	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103202	//       "required": true,
103203	//       "type": "string"
103204	//     },
103205	//     "requestId": {
103206	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103207	//       "location": "query",
103208	//       "type": "string"
103209	//     },
103210	//     "targetSslProxy": {
103211	//       "description": "Name of the TargetSslProxy resource whose BackendService resource is to be set.",
103212	//       "location": "path",
103213	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103214	//       "required": true,
103215	//       "type": "string"
103216	//     }
103217	//   },
103218	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setBackendService",
103219	//   "request": {
103220	//     "$ref": "TargetSslProxiesSetBackendServiceRequest"
103221	//   },
103222	//   "response": {
103223	//     "$ref": "Operation"
103224	//   },
103225	//   "scopes": [
103226	//     "https://www.googleapis.com/auth/cloud-platform",
103227	//     "https://www.googleapis.com/auth/compute"
103228	//   ]
103229	// }
103230
103231}
103232
103233// method id "compute.targetSslProxies.setProxyHeader":
103234
103235type TargetSslProxiesSetProxyHeaderCall struct {
103236	s                                     *Service
103237	project                               string
103238	targetSslProxy                        string
103239	targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest
103240	urlParams_                            gensupport.URLParams
103241	ctx_                                  context.Context
103242	header_                               http.Header
103243}
103244
103245// SetProxyHeader: Changes the ProxyHeaderType for TargetSslProxy.
103246func (r *TargetSslProxiesService) SetProxyHeader(project string, targetSslProxy string, targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest) *TargetSslProxiesSetProxyHeaderCall {
103247	c := &TargetSslProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103248	c.project = project
103249	c.targetSslProxy = targetSslProxy
103250	c.targetsslproxiessetproxyheaderrequest = targetsslproxiessetproxyheaderrequest
103251	return c
103252}
103253
103254// RequestId sets the optional parameter "requestId": An optional
103255// request ID to identify requests. Specify a unique request ID so that
103256// if you must retry your request, the server will know to ignore the
103257// request if it has already been completed.
103258//
103259// For example, consider a situation where you make an initial request
103260// and the request times out. If you make the request again with the
103261// same request ID, the server can check if original operation with the
103262// same request ID was received, and if so, will ignore the second
103263// request. This prevents clients from accidentally creating duplicate
103264// commitments.
103265//
103266// The request ID must be a valid UUID with the exception that zero UUID
103267// is not supported (00000000-0000-0000-0000-000000000000).
103268func (c *TargetSslProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetSslProxiesSetProxyHeaderCall {
103269	c.urlParams_.Set("requestId", requestId)
103270	return c
103271}
103272
103273// Fields allows partial responses to be retrieved. See
103274// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103275// for more information.
103276func (c *TargetSslProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetProxyHeaderCall {
103277	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103278	return c
103279}
103280
103281// Context sets the context to be used in this call's Do method. Any
103282// pending HTTP request will be aborted if the provided context is
103283// canceled.
103284func (c *TargetSslProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetSslProxiesSetProxyHeaderCall {
103285	c.ctx_ = ctx
103286	return c
103287}
103288
103289// Header returns an http.Header that can be modified by the caller to
103290// add HTTP headers to the request.
103291func (c *TargetSslProxiesSetProxyHeaderCall) Header() http.Header {
103292	if c.header_ == nil {
103293		c.header_ = make(http.Header)
103294	}
103295	return c.header_
103296}
103297
103298func (c *TargetSslProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
103299	reqHeaders := make(http.Header)
103300	for k, v := range c.header_ {
103301		reqHeaders[k] = v
103302	}
103303	reqHeaders.Set("User-Agent", c.s.userAgent())
103304	var body io.Reader = nil
103305	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetproxyheaderrequest)
103306	if err != nil {
103307		return nil, err
103308	}
103309	reqHeaders.Set("Content-Type", "application/json")
103310	c.urlParams_.Set("alt", alt)
103311	c.urlParams_.Set("prettyPrint", "false")
103312	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader")
103313	urls += "?" + c.urlParams_.Encode()
103314	req, err := http.NewRequest("POST", urls, body)
103315	if err != nil {
103316		return nil, err
103317	}
103318	req.Header = reqHeaders
103319	googleapi.Expand(req.URL, map[string]string{
103320		"project":        c.project,
103321		"targetSslProxy": c.targetSslProxy,
103322	})
103323	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103324}
103325
103326// Do executes the "compute.targetSslProxies.setProxyHeader" call.
103327// Exactly one of *Operation or error will be non-nil. Any non-2xx
103328// status code is an error. Response headers are in either
103329// *Operation.ServerResponse.Header or (if a response was returned at
103330// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103331// to check whether the returned error was because
103332// http.StatusNotModified was returned.
103333func (c *TargetSslProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103334	gensupport.SetOptions(c.urlParams_, opts...)
103335	res, err := c.doRequest("json")
103336	if res != nil && res.StatusCode == http.StatusNotModified {
103337		if res.Body != nil {
103338			res.Body.Close()
103339		}
103340		return nil, &googleapi.Error{
103341			Code:   res.StatusCode,
103342			Header: res.Header,
103343		}
103344	}
103345	if err != nil {
103346		return nil, err
103347	}
103348	defer googleapi.CloseBody(res)
103349	if err := googleapi.CheckResponse(res); err != nil {
103350		return nil, err
103351	}
103352	ret := &Operation{
103353		ServerResponse: googleapi.ServerResponse{
103354			Header:         res.Header,
103355			HTTPStatusCode: res.StatusCode,
103356		},
103357	}
103358	target := &ret
103359	if err := gensupport.DecodeResponse(target, res); err != nil {
103360		return nil, err
103361	}
103362	return ret, nil
103363	// {
103364	//   "description": "Changes the ProxyHeaderType for TargetSslProxy.",
103365	//   "httpMethod": "POST",
103366	//   "id": "compute.targetSslProxies.setProxyHeader",
103367	//   "parameterOrder": [
103368	//     "project",
103369	//     "targetSslProxy"
103370	//   ],
103371	//   "parameters": {
103372	//     "project": {
103373	//       "description": "Project ID for this request.",
103374	//       "location": "path",
103375	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103376	//       "required": true,
103377	//       "type": "string"
103378	//     },
103379	//     "requestId": {
103380	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103381	//       "location": "query",
103382	//       "type": "string"
103383	//     },
103384	//     "targetSslProxy": {
103385	//       "description": "Name of the TargetSslProxy resource whose ProxyHeader is to be set.",
103386	//       "location": "path",
103387	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103388	//       "required": true,
103389	//       "type": "string"
103390	//     }
103391	//   },
103392	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader",
103393	//   "request": {
103394	//     "$ref": "TargetSslProxiesSetProxyHeaderRequest"
103395	//   },
103396	//   "response": {
103397	//     "$ref": "Operation"
103398	//   },
103399	//   "scopes": [
103400	//     "https://www.googleapis.com/auth/cloud-platform",
103401	//     "https://www.googleapis.com/auth/compute"
103402	//   ]
103403	// }
103404
103405}
103406
103407// method id "compute.targetSslProxies.setSslCertificates":
103408
103409type TargetSslProxiesSetSslCertificatesCall struct {
103410	s                                         *Service
103411	project                                   string
103412	targetSslProxy                            string
103413	targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest
103414	urlParams_                                gensupport.URLParams
103415	ctx_                                      context.Context
103416	header_                                   http.Header
103417}
103418
103419// SetSslCertificates: Changes SslCertificates for TargetSslProxy.
103420func (r *TargetSslProxiesService) SetSslCertificates(project string, targetSslProxy string, targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest) *TargetSslProxiesSetSslCertificatesCall {
103421	c := &TargetSslProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103422	c.project = project
103423	c.targetSslProxy = targetSslProxy
103424	c.targetsslproxiessetsslcertificatesrequest = targetsslproxiessetsslcertificatesrequest
103425	return c
103426}
103427
103428// RequestId sets the optional parameter "requestId": An optional
103429// request ID to identify requests. Specify a unique request ID so that
103430// if you must retry your request, the server will know to ignore the
103431// request if it has already been completed.
103432//
103433// For example, consider a situation where you make an initial request
103434// and the request times out. If you make the request again with the
103435// same request ID, the server can check if original operation with the
103436// same request ID was received, and if so, will ignore the second
103437// request. This prevents clients from accidentally creating duplicate
103438// commitments.
103439//
103440// The request ID must be a valid UUID with the exception that zero UUID
103441// is not supported (00000000-0000-0000-0000-000000000000).
103442func (c *TargetSslProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetSslProxiesSetSslCertificatesCall {
103443	c.urlParams_.Set("requestId", requestId)
103444	return c
103445}
103446
103447// Fields allows partial responses to be retrieved. See
103448// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103449// for more information.
103450func (c *TargetSslProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslCertificatesCall {
103451	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103452	return c
103453}
103454
103455// Context sets the context to be used in this call's Do method. Any
103456// pending HTTP request will be aborted if the provided context is
103457// canceled.
103458func (c *TargetSslProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetSslProxiesSetSslCertificatesCall {
103459	c.ctx_ = ctx
103460	return c
103461}
103462
103463// Header returns an http.Header that can be modified by the caller to
103464// add HTTP headers to the request.
103465func (c *TargetSslProxiesSetSslCertificatesCall) Header() http.Header {
103466	if c.header_ == nil {
103467		c.header_ = make(http.Header)
103468	}
103469	return c.header_
103470}
103471
103472func (c *TargetSslProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
103473	reqHeaders := make(http.Header)
103474	for k, v := range c.header_ {
103475		reqHeaders[k] = v
103476	}
103477	reqHeaders.Set("User-Agent", c.s.userAgent())
103478	var body io.Reader = nil
103479	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetsslcertificatesrequest)
103480	if err != nil {
103481		return nil, err
103482	}
103483	reqHeaders.Set("Content-Type", "application/json")
103484	c.urlParams_.Set("alt", alt)
103485	c.urlParams_.Set("prettyPrint", "false")
103486	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates")
103487	urls += "?" + c.urlParams_.Encode()
103488	req, err := http.NewRequest("POST", urls, body)
103489	if err != nil {
103490		return nil, err
103491	}
103492	req.Header = reqHeaders
103493	googleapi.Expand(req.URL, map[string]string{
103494		"project":        c.project,
103495		"targetSslProxy": c.targetSslProxy,
103496	})
103497	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103498}
103499
103500// Do executes the "compute.targetSslProxies.setSslCertificates" call.
103501// Exactly one of *Operation or error will be non-nil. Any non-2xx
103502// status code is an error. Response headers are in either
103503// *Operation.ServerResponse.Header or (if a response was returned at
103504// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103505// to check whether the returned error was because
103506// http.StatusNotModified was returned.
103507func (c *TargetSslProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103508	gensupport.SetOptions(c.urlParams_, opts...)
103509	res, err := c.doRequest("json")
103510	if res != nil && res.StatusCode == http.StatusNotModified {
103511		if res.Body != nil {
103512			res.Body.Close()
103513		}
103514		return nil, &googleapi.Error{
103515			Code:   res.StatusCode,
103516			Header: res.Header,
103517		}
103518	}
103519	if err != nil {
103520		return nil, err
103521	}
103522	defer googleapi.CloseBody(res)
103523	if err := googleapi.CheckResponse(res); err != nil {
103524		return nil, err
103525	}
103526	ret := &Operation{
103527		ServerResponse: googleapi.ServerResponse{
103528			Header:         res.Header,
103529			HTTPStatusCode: res.StatusCode,
103530		},
103531	}
103532	target := &ret
103533	if err := gensupport.DecodeResponse(target, res); err != nil {
103534		return nil, err
103535	}
103536	return ret, nil
103537	// {
103538	//   "description": "Changes SslCertificates for TargetSslProxy.",
103539	//   "httpMethod": "POST",
103540	//   "id": "compute.targetSslProxies.setSslCertificates",
103541	//   "parameterOrder": [
103542	//     "project",
103543	//     "targetSslProxy"
103544	//   ],
103545	//   "parameters": {
103546	//     "project": {
103547	//       "description": "Project ID for this request.",
103548	//       "location": "path",
103549	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103550	//       "required": true,
103551	//       "type": "string"
103552	//     },
103553	//     "requestId": {
103554	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103555	//       "location": "query",
103556	//       "type": "string"
103557	//     },
103558	//     "targetSslProxy": {
103559	//       "description": "Name of the TargetSslProxy resource whose SslCertificate resource is to be set.",
103560	//       "location": "path",
103561	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103562	//       "required": true,
103563	//       "type": "string"
103564	//     }
103565	//   },
103566	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates",
103567	//   "request": {
103568	//     "$ref": "TargetSslProxiesSetSslCertificatesRequest"
103569	//   },
103570	//   "response": {
103571	//     "$ref": "Operation"
103572	//   },
103573	//   "scopes": [
103574	//     "https://www.googleapis.com/auth/cloud-platform",
103575	//     "https://www.googleapis.com/auth/compute"
103576	//   ]
103577	// }
103578
103579}
103580
103581// method id "compute.targetSslProxies.setSslPolicy":
103582
103583type TargetSslProxiesSetSslPolicyCall struct {
103584	s                  *Service
103585	project            string
103586	targetSslProxy     string
103587	sslpolicyreference *SslPolicyReference
103588	urlParams_         gensupport.URLParams
103589	ctx_               context.Context
103590	header_            http.Header
103591}
103592
103593// SetSslPolicy: Sets the SSL policy for TargetSslProxy. The SSL policy
103594// specifies the server-side support for SSL features. This affects
103595// connections between clients and the SSL proxy load balancer. They do
103596// not affect the connection between the load balancer and the backends.
103597func (r *TargetSslProxiesService) SetSslPolicy(project string, targetSslProxy string, sslpolicyreference *SslPolicyReference) *TargetSslProxiesSetSslPolicyCall {
103598	c := &TargetSslProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103599	c.project = project
103600	c.targetSslProxy = targetSslProxy
103601	c.sslpolicyreference = sslpolicyreference
103602	return c
103603}
103604
103605// RequestId sets the optional parameter "requestId": An optional
103606// request ID to identify requests. Specify a unique request ID so that
103607// if you must retry your request, the server will know to ignore the
103608// request if it has already been completed.
103609//
103610// For example, consider a situation where you make an initial request
103611// and the request times out. If you make the request again with the
103612// same request ID, the server can check if original operation with the
103613// same request ID was received, and if so, will ignore the second
103614// request. This prevents clients from accidentally creating duplicate
103615// commitments.
103616//
103617// The request ID must be a valid UUID with the exception that zero UUID
103618// is not supported (00000000-0000-0000-0000-000000000000).
103619func (c *TargetSslProxiesSetSslPolicyCall) RequestId(requestId string) *TargetSslProxiesSetSslPolicyCall {
103620	c.urlParams_.Set("requestId", requestId)
103621	return c
103622}
103623
103624// Fields allows partial responses to be retrieved. See
103625// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103626// for more information.
103627func (c *TargetSslProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslPolicyCall {
103628	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103629	return c
103630}
103631
103632// Context sets the context to be used in this call's Do method. Any
103633// pending HTTP request will be aborted if the provided context is
103634// canceled.
103635func (c *TargetSslProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetSslProxiesSetSslPolicyCall {
103636	c.ctx_ = ctx
103637	return c
103638}
103639
103640// Header returns an http.Header that can be modified by the caller to
103641// add HTTP headers to the request.
103642func (c *TargetSslProxiesSetSslPolicyCall) Header() http.Header {
103643	if c.header_ == nil {
103644		c.header_ = make(http.Header)
103645	}
103646	return c.header_
103647}
103648
103649func (c *TargetSslProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
103650	reqHeaders := make(http.Header)
103651	for k, v := range c.header_ {
103652		reqHeaders[k] = v
103653	}
103654	reqHeaders.Set("User-Agent", c.s.userAgent())
103655	var body io.Reader = nil
103656	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
103657	if err != nil {
103658		return nil, err
103659	}
103660	reqHeaders.Set("Content-Type", "application/json")
103661	c.urlParams_.Set("alt", alt)
103662	c.urlParams_.Set("prettyPrint", "false")
103663	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy")
103664	urls += "?" + c.urlParams_.Encode()
103665	req, err := http.NewRequest("POST", urls, body)
103666	if err != nil {
103667		return nil, err
103668	}
103669	req.Header = reqHeaders
103670	googleapi.Expand(req.URL, map[string]string{
103671		"project":        c.project,
103672		"targetSslProxy": c.targetSslProxy,
103673	})
103674	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103675}
103676
103677// Do executes the "compute.targetSslProxies.setSslPolicy" call.
103678// Exactly one of *Operation or error will be non-nil. Any non-2xx
103679// status code is an error. Response headers are in either
103680// *Operation.ServerResponse.Header or (if a response was returned at
103681// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103682// to check whether the returned error was because
103683// http.StatusNotModified was returned.
103684func (c *TargetSslProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103685	gensupport.SetOptions(c.urlParams_, opts...)
103686	res, err := c.doRequest("json")
103687	if res != nil && res.StatusCode == http.StatusNotModified {
103688		if res.Body != nil {
103689			res.Body.Close()
103690		}
103691		return nil, &googleapi.Error{
103692			Code:   res.StatusCode,
103693			Header: res.Header,
103694		}
103695	}
103696	if err != nil {
103697		return nil, err
103698	}
103699	defer googleapi.CloseBody(res)
103700	if err := googleapi.CheckResponse(res); err != nil {
103701		return nil, err
103702	}
103703	ret := &Operation{
103704		ServerResponse: googleapi.ServerResponse{
103705			Header:         res.Header,
103706			HTTPStatusCode: res.StatusCode,
103707		},
103708	}
103709	target := &ret
103710	if err := gensupport.DecodeResponse(target, res); err != nil {
103711		return nil, err
103712	}
103713	return ret, nil
103714	// {
103715	//   "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.",
103716	//   "httpMethod": "POST",
103717	//   "id": "compute.targetSslProxies.setSslPolicy",
103718	//   "parameterOrder": [
103719	//     "project",
103720	//     "targetSslProxy"
103721	//   ],
103722	//   "parameters": {
103723	//     "project": {
103724	//       "description": "Project ID for this request.",
103725	//       "location": "path",
103726	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103727	//       "required": true,
103728	//       "type": "string"
103729	//     },
103730	//     "requestId": {
103731	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103732	//       "location": "query",
103733	//       "type": "string"
103734	//     },
103735	//     "targetSslProxy": {
103736	//       "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.",
103737	//       "location": "path",
103738	//       "required": true,
103739	//       "type": "string"
103740	//     }
103741	//   },
103742	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy",
103743	//   "request": {
103744	//     "$ref": "SslPolicyReference"
103745	//   },
103746	//   "response": {
103747	//     "$ref": "Operation"
103748	//   },
103749	//   "scopes": [
103750	//     "https://www.googleapis.com/auth/cloud-platform",
103751	//     "https://www.googleapis.com/auth/compute"
103752	//   ]
103753	// }
103754
103755}
103756
103757// method id "compute.targetTcpProxies.delete":
103758
103759type TargetTcpProxiesDeleteCall struct {
103760	s              *Service
103761	project        string
103762	targetTcpProxy string
103763	urlParams_     gensupport.URLParams
103764	ctx_           context.Context
103765	header_        http.Header
103766}
103767
103768// Delete: Deletes the specified TargetTcpProxy resource.
103769func (r *TargetTcpProxiesService) Delete(project string, targetTcpProxy string) *TargetTcpProxiesDeleteCall {
103770	c := &TargetTcpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103771	c.project = project
103772	c.targetTcpProxy = targetTcpProxy
103773	return c
103774}
103775
103776// RequestId sets the optional parameter "requestId": An optional
103777// request ID to identify requests. Specify a unique request ID so that
103778// if you must retry your request, the server will know to ignore the
103779// request if it has already been completed.
103780//
103781// For example, consider a situation where you make an initial request
103782// and the request times out. If you make the request again with the
103783// same request ID, the server can check if original operation with the
103784// same request ID was received, and if so, will ignore the second
103785// request. This prevents clients from accidentally creating duplicate
103786// commitments.
103787//
103788// The request ID must be a valid UUID with the exception that zero UUID
103789// is not supported (00000000-0000-0000-0000-000000000000).
103790func (c *TargetTcpProxiesDeleteCall) RequestId(requestId string) *TargetTcpProxiesDeleteCall {
103791	c.urlParams_.Set("requestId", requestId)
103792	return c
103793}
103794
103795// Fields allows partial responses to be retrieved. See
103796// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103797// for more information.
103798func (c *TargetTcpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetTcpProxiesDeleteCall {
103799	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103800	return c
103801}
103802
103803// Context sets the context to be used in this call's Do method. Any
103804// pending HTTP request will be aborted if the provided context is
103805// canceled.
103806func (c *TargetTcpProxiesDeleteCall) Context(ctx context.Context) *TargetTcpProxiesDeleteCall {
103807	c.ctx_ = ctx
103808	return c
103809}
103810
103811// Header returns an http.Header that can be modified by the caller to
103812// add HTTP headers to the request.
103813func (c *TargetTcpProxiesDeleteCall) Header() http.Header {
103814	if c.header_ == nil {
103815		c.header_ = make(http.Header)
103816	}
103817	return c.header_
103818}
103819
103820func (c *TargetTcpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
103821	reqHeaders := make(http.Header)
103822	for k, v := range c.header_ {
103823		reqHeaders[k] = v
103824	}
103825	reqHeaders.Set("User-Agent", c.s.userAgent())
103826	var body io.Reader = nil
103827	c.urlParams_.Set("alt", alt)
103828	c.urlParams_.Set("prettyPrint", "false")
103829	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}")
103830	urls += "?" + c.urlParams_.Encode()
103831	req, err := http.NewRequest("DELETE", urls, body)
103832	if err != nil {
103833		return nil, err
103834	}
103835	req.Header = reqHeaders
103836	googleapi.Expand(req.URL, map[string]string{
103837		"project":        c.project,
103838		"targetTcpProxy": c.targetTcpProxy,
103839	})
103840	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103841}
103842
103843// Do executes the "compute.targetTcpProxies.delete" call.
103844// Exactly one of *Operation or error will be non-nil. Any non-2xx
103845// status code is an error. Response headers are in either
103846// *Operation.ServerResponse.Header or (if a response was returned at
103847// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103848// to check whether the returned error was because
103849// http.StatusNotModified was returned.
103850func (c *TargetTcpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103851	gensupport.SetOptions(c.urlParams_, opts...)
103852	res, err := c.doRequest("json")
103853	if res != nil && res.StatusCode == http.StatusNotModified {
103854		if res.Body != nil {
103855			res.Body.Close()
103856		}
103857		return nil, &googleapi.Error{
103858			Code:   res.StatusCode,
103859			Header: res.Header,
103860		}
103861	}
103862	if err != nil {
103863		return nil, err
103864	}
103865	defer googleapi.CloseBody(res)
103866	if err := googleapi.CheckResponse(res); err != nil {
103867		return nil, err
103868	}
103869	ret := &Operation{
103870		ServerResponse: googleapi.ServerResponse{
103871			Header:         res.Header,
103872			HTTPStatusCode: res.StatusCode,
103873		},
103874	}
103875	target := &ret
103876	if err := gensupport.DecodeResponse(target, res); err != nil {
103877		return nil, err
103878	}
103879	return ret, nil
103880	// {
103881	//   "description": "Deletes the specified TargetTcpProxy resource.",
103882	//   "httpMethod": "DELETE",
103883	//   "id": "compute.targetTcpProxies.delete",
103884	//   "parameterOrder": [
103885	//     "project",
103886	//     "targetTcpProxy"
103887	//   ],
103888	//   "parameters": {
103889	//     "project": {
103890	//       "description": "Project ID for this request.",
103891	//       "location": "path",
103892	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103893	//       "required": true,
103894	//       "type": "string"
103895	//     },
103896	//     "requestId": {
103897	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103898	//       "location": "query",
103899	//       "type": "string"
103900	//     },
103901	//     "targetTcpProxy": {
103902	//       "description": "Name of the TargetTcpProxy resource to delete.",
103903	//       "location": "path",
103904	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103905	//       "required": true,
103906	//       "type": "string"
103907	//     }
103908	//   },
103909	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}",
103910	//   "response": {
103911	//     "$ref": "Operation"
103912	//   },
103913	//   "scopes": [
103914	//     "https://www.googleapis.com/auth/cloud-platform",
103915	//     "https://www.googleapis.com/auth/compute"
103916	//   ]
103917	// }
103918
103919}
103920
103921// method id "compute.targetTcpProxies.get":
103922
103923type TargetTcpProxiesGetCall struct {
103924	s              *Service
103925	project        string
103926	targetTcpProxy string
103927	urlParams_     gensupport.URLParams
103928	ifNoneMatch_   string
103929	ctx_           context.Context
103930	header_        http.Header
103931}
103932
103933// Get: Returns the specified TargetTcpProxy resource. Gets a list of
103934// available target TCP proxies by making a list() request.
103935func (r *TargetTcpProxiesService) Get(project string, targetTcpProxy string) *TargetTcpProxiesGetCall {
103936	c := &TargetTcpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103937	c.project = project
103938	c.targetTcpProxy = targetTcpProxy
103939	return c
103940}
103941
103942// Fields allows partial responses to be retrieved. See
103943// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103944// for more information.
103945func (c *TargetTcpProxiesGetCall) Fields(s ...googleapi.Field) *TargetTcpProxiesGetCall {
103946	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103947	return c
103948}
103949
103950// IfNoneMatch sets the optional parameter which makes the operation
103951// fail if the object's ETag matches the given value. This is useful for
103952// getting updates only after the object has changed since the last
103953// request. Use googleapi.IsNotModified to check whether the response
103954// error from Do is the result of In-None-Match.
103955func (c *TargetTcpProxiesGetCall) IfNoneMatch(entityTag string) *TargetTcpProxiesGetCall {
103956	c.ifNoneMatch_ = entityTag
103957	return c
103958}
103959
103960// Context sets the context to be used in this call's Do method. Any
103961// pending HTTP request will be aborted if the provided context is
103962// canceled.
103963func (c *TargetTcpProxiesGetCall) Context(ctx context.Context) *TargetTcpProxiesGetCall {
103964	c.ctx_ = ctx
103965	return c
103966}
103967
103968// Header returns an http.Header that can be modified by the caller to
103969// add HTTP headers to the request.
103970func (c *TargetTcpProxiesGetCall) Header() http.Header {
103971	if c.header_ == nil {
103972		c.header_ = make(http.Header)
103973	}
103974	return c.header_
103975}
103976
103977func (c *TargetTcpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
103978	reqHeaders := make(http.Header)
103979	for k, v := range c.header_ {
103980		reqHeaders[k] = v
103981	}
103982	reqHeaders.Set("User-Agent", c.s.userAgent())
103983	if c.ifNoneMatch_ != "" {
103984		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103985	}
103986	var body io.Reader = nil
103987	c.urlParams_.Set("alt", alt)
103988	c.urlParams_.Set("prettyPrint", "false")
103989	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}")
103990	urls += "?" + c.urlParams_.Encode()
103991	req, err := http.NewRequest("GET", urls, body)
103992	if err != nil {
103993		return nil, err
103994	}
103995	req.Header = reqHeaders
103996	googleapi.Expand(req.URL, map[string]string{
103997		"project":        c.project,
103998		"targetTcpProxy": c.targetTcpProxy,
103999	})
104000	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104001}
104002
104003// Do executes the "compute.targetTcpProxies.get" call.
104004// Exactly one of *TargetTcpProxy or error will be non-nil. Any non-2xx
104005// status code is an error. Response headers are in either
104006// *TargetTcpProxy.ServerResponse.Header or (if a response was returned
104007// at all) in error.(*googleapi.Error).Header. Use
104008// googleapi.IsNotModified to check whether the returned error was
104009// because http.StatusNotModified was returned.
104010func (c *TargetTcpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxy, error) {
104011	gensupport.SetOptions(c.urlParams_, opts...)
104012	res, err := c.doRequest("json")
104013	if res != nil && res.StatusCode == http.StatusNotModified {
104014		if res.Body != nil {
104015			res.Body.Close()
104016		}
104017		return nil, &googleapi.Error{
104018			Code:   res.StatusCode,
104019			Header: res.Header,
104020		}
104021	}
104022	if err != nil {
104023		return nil, err
104024	}
104025	defer googleapi.CloseBody(res)
104026	if err := googleapi.CheckResponse(res); err != nil {
104027		return nil, err
104028	}
104029	ret := &TargetTcpProxy{
104030		ServerResponse: googleapi.ServerResponse{
104031			Header:         res.Header,
104032			HTTPStatusCode: res.StatusCode,
104033		},
104034	}
104035	target := &ret
104036	if err := gensupport.DecodeResponse(target, res); err != nil {
104037		return nil, err
104038	}
104039	return ret, nil
104040	// {
104041	//   "description": "Returns the specified TargetTcpProxy resource. Gets a list of available target TCP proxies by making a list() request.",
104042	//   "httpMethod": "GET",
104043	//   "id": "compute.targetTcpProxies.get",
104044	//   "parameterOrder": [
104045	//     "project",
104046	//     "targetTcpProxy"
104047	//   ],
104048	//   "parameters": {
104049	//     "project": {
104050	//       "description": "Project ID for this request.",
104051	//       "location": "path",
104052	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104053	//       "required": true,
104054	//       "type": "string"
104055	//     },
104056	//     "targetTcpProxy": {
104057	//       "description": "Name of the TargetTcpProxy resource to return.",
104058	//       "location": "path",
104059	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104060	//       "required": true,
104061	//       "type": "string"
104062	//     }
104063	//   },
104064	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}",
104065	//   "response": {
104066	//     "$ref": "TargetTcpProxy"
104067	//   },
104068	//   "scopes": [
104069	//     "https://www.googleapis.com/auth/cloud-platform",
104070	//     "https://www.googleapis.com/auth/compute",
104071	//     "https://www.googleapis.com/auth/compute.readonly"
104072	//   ]
104073	// }
104074
104075}
104076
104077// method id "compute.targetTcpProxies.insert":
104078
104079type TargetTcpProxiesInsertCall struct {
104080	s              *Service
104081	project        string
104082	targettcpproxy *TargetTcpProxy
104083	urlParams_     gensupport.URLParams
104084	ctx_           context.Context
104085	header_        http.Header
104086}
104087
104088// Insert: Creates a TargetTcpProxy resource in the specified project
104089// using the data included in the request.
104090func (r *TargetTcpProxiesService) Insert(project string, targettcpproxy *TargetTcpProxy) *TargetTcpProxiesInsertCall {
104091	c := &TargetTcpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104092	c.project = project
104093	c.targettcpproxy = targettcpproxy
104094	return c
104095}
104096
104097// RequestId sets the optional parameter "requestId": An optional
104098// request ID to identify requests. Specify a unique request ID so that
104099// if you must retry your request, the server will know to ignore the
104100// request if it has already been completed.
104101//
104102// For example, consider a situation where you make an initial request
104103// and the request times out. If you make the request again with the
104104// same request ID, the server can check if original operation with the
104105// same request ID was received, and if so, will ignore the second
104106// request. This prevents clients from accidentally creating duplicate
104107// commitments.
104108//
104109// The request ID must be a valid UUID with the exception that zero UUID
104110// is not supported (00000000-0000-0000-0000-000000000000).
104111func (c *TargetTcpProxiesInsertCall) RequestId(requestId string) *TargetTcpProxiesInsertCall {
104112	c.urlParams_.Set("requestId", requestId)
104113	return c
104114}
104115
104116// Fields allows partial responses to be retrieved. See
104117// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104118// for more information.
104119func (c *TargetTcpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetTcpProxiesInsertCall {
104120	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104121	return c
104122}
104123
104124// Context sets the context to be used in this call's Do method. Any
104125// pending HTTP request will be aborted if the provided context is
104126// canceled.
104127func (c *TargetTcpProxiesInsertCall) Context(ctx context.Context) *TargetTcpProxiesInsertCall {
104128	c.ctx_ = ctx
104129	return c
104130}
104131
104132// Header returns an http.Header that can be modified by the caller to
104133// add HTTP headers to the request.
104134func (c *TargetTcpProxiesInsertCall) Header() http.Header {
104135	if c.header_ == nil {
104136		c.header_ = make(http.Header)
104137	}
104138	return c.header_
104139}
104140
104141func (c *TargetTcpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
104142	reqHeaders := make(http.Header)
104143	for k, v := range c.header_ {
104144		reqHeaders[k] = v
104145	}
104146	reqHeaders.Set("User-Agent", c.s.userAgent())
104147	var body io.Reader = nil
104148	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxy)
104149	if err != nil {
104150		return nil, err
104151	}
104152	reqHeaders.Set("Content-Type", "application/json")
104153	c.urlParams_.Set("alt", alt)
104154	c.urlParams_.Set("prettyPrint", "false")
104155	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies")
104156	urls += "?" + c.urlParams_.Encode()
104157	req, err := http.NewRequest("POST", urls, body)
104158	if err != nil {
104159		return nil, err
104160	}
104161	req.Header = reqHeaders
104162	googleapi.Expand(req.URL, map[string]string{
104163		"project": c.project,
104164	})
104165	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104166}
104167
104168// Do executes the "compute.targetTcpProxies.insert" call.
104169// Exactly one of *Operation or error will be non-nil. Any non-2xx
104170// status code is an error. Response headers are in either
104171// *Operation.ServerResponse.Header or (if a response was returned at
104172// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104173// to check whether the returned error was because
104174// http.StatusNotModified was returned.
104175func (c *TargetTcpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104176	gensupport.SetOptions(c.urlParams_, opts...)
104177	res, err := c.doRequest("json")
104178	if res != nil && res.StatusCode == http.StatusNotModified {
104179		if res.Body != nil {
104180			res.Body.Close()
104181		}
104182		return nil, &googleapi.Error{
104183			Code:   res.StatusCode,
104184			Header: res.Header,
104185		}
104186	}
104187	if err != nil {
104188		return nil, err
104189	}
104190	defer googleapi.CloseBody(res)
104191	if err := googleapi.CheckResponse(res); err != nil {
104192		return nil, err
104193	}
104194	ret := &Operation{
104195		ServerResponse: googleapi.ServerResponse{
104196			Header:         res.Header,
104197			HTTPStatusCode: res.StatusCode,
104198		},
104199	}
104200	target := &ret
104201	if err := gensupport.DecodeResponse(target, res); err != nil {
104202		return nil, err
104203	}
104204	return ret, nil
104205	// {
104206	//   "description": "Creates a TargetTcpProxy resource in the specified project using the data included in the request.",
104207	//   "httpMethod": "POST",
104208	//   "id": "compute.targetTcpProxies.insert",
104209	//   "parameterOrder": [
104210	//     "project"
104211	//   ],
104212	//   "parameters": {
104213	//     "project": {
104214	//       "description": "Project ID for this request.",
104215	//       "location": "path",
104216	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104217	//       "required": true,
104218	//       "type": "string"
104219	//     },
104220	//     "requestId": {
104221	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104222	//       "location": "query",
104223	//       "type": "string"
104224	//     }
104225	//   },
104226	//   "path": "{project}/global/targetTcpProxies",
104227	//   "request": {
104228	//     "$ref": "TargetTcpProxy"
104229	//   },
104230	//   "response": {
104231	//     "$ref": "Operation"
104232	//   },
104233	//   "scopes": [
104234	//     "https://www.googleapis.com/auth/cloud-platform",
104235	//     "https://www.googleapis.com/auth/compute"
104236	//   ]
104237	// }
104238
104239}
104240
104241// method id "compute.targetTcpProxies.list":
104242
104243type TargetTcpProxiesListCall struct {
104244	s            *Service
104245	project      string
104246	urlParams_   gensupport.URLParams
104247	ifNoneMatch_ string
104248	ctx_         context.Context
104249	header_      http.Header
104250}
104251
104252// List: Retrieves the list of TargetTcpProxy resources available to the
104253// specified project.
104254func (r *TargetTcpProxiesService) List(project string) *TargetTcpProxiesListCall {
104255	c := &TargetTcpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104256	c.project = project
104257	return c
104258}
104259
104260// Filter sets the optional parameter "filter": A filter expression that
104261// filters resources listed in the response. The expression must specify
104262// the field name, a comparison operator, and the value that you want to
104263// use for filtering. The value must be a string, a number, or a
104264// boolean. The comparison operator must be either =, !=, >, or <.
104265//
104266// For example, if you are filtering Compute Engine instances, you can
104267// exclude instances named example-instance by specifying name !=
104268// example-instance.
104269//
104270// You can also filter nested fields. For example, you could specify
104271// scheduling.automaticRestart = false to include instances only if they
104272// are not scheduled for automatic restarts. You can use filtering on
104273// nested fields to filter based on resource labels.
104274//
104275// To filter on multiple expressions, provide each separate expression
104276// within parentheses. For example, (scheduling.automaticRestart = true)
104277// (cpuPlatform = "Intel Skylake"). By default, each expression is an
104278// AND expression. However, you can include AND and OR expressions
104279// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
104280// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
104281// true).
104282func (c *TargetTcpProxiesListCall) Filter(filter string) *TargetTcpProxiesListCall {
104283	c.urlParams_.Set("filter", filter)
104284	return c
104285}
104286
104287// MaxResults sets the optional parameter "maxResults": The maximum
104288// number of results per page that should be returned. If the number of
104289// available results is larger than maxResults, Compute Engine returns a
104290// nextPageToken that can be used to get the next page of results in
104291// subsequent list requests. Acceptable values are 0 to 500, inclusive.
104292// (Default: 500)
104293func (c *TargetTcpProxiesListCall) MaxResults(maxResults int64) *TargetTcpProxiesListCall {
104294	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
104295	return c
104296}
104297
104298// OrderBy sets the optional parameter "orderBy": Sorts list results by
104299// a certain order. By default, results are returned in alphanumerical
104300// order based on the resource name.
104301//
104302// You can also sort results in descending order based on the creation
104303// timestamp using orderBy="creationTimestamp desc". This sorts results
104304// based on the creationTimestamp field in reverse chronological order
104305// (newest result first). Use this to sort resources like operations so
104306// that the newest operation is returned first.
104307//
104308// Currently, only sorting by name or creationTimestamp desc is
104309// supported.
104310func (c *TargetTcpProxiesListCall) OrderBy(orderBy string) *TargetTcpProxiesListCall {
104311	c.urlParams_.Set("orderBy", orderBy)
104312	return c
104313}
104314
104315// PageToken sets the optional parameter "pageToken": Specifies a page
104316// token to use. Set pageToken to the nextPageToken returned by a
104317// previous list request to get the next page of results.
104318func (c *TargetTcpProxiesListCall) PageToken(pageToken string) *TargetTcpProxiesListCall {
104319	c.urlParams_.Set("pageToken", pageToken)
104320	return c
104321}
104322
104323// Fields allows partial responses to be retrieved. See
104324// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104325// for more information.
104326func (c *TargetTcpProxiesListCall) Fields(s ...googleapi.Field) *TargetTcpProxiesListCall {
104327	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104328	return c
104329}
104330
104331// IfNoneMatch sets the optional parameter which makes the operation
104332// fail if the object's ETag matches the given value. This is useful for
104333// getting updates only after the object has changed since the last
104334// request. Use googleapi.IsNotModified to check whether the response
104335// error from Do is the result of In-None-Match.
104336func (c *TargetTcpProxiesListCall) IfNoneMatch(entityTag string) *TargetTcpProxiesListCall {
104337	c.ifNoneMatch_ = entityTag
104338	return c
104339}
104340
104341// Context sets the context to be used in this call's Do method. Any
104342// pending HTTP request will be aborted if the provided context is
104343// canceled.
104344func (c *TargetTcpProxiesListCall) Context(ctx context.Context) *TargetTcpProxiesListCall {
104345	c.ctx_ = ctx
104346	return c
104347}
104348
104349// Header returns an http.Header that can be modified by the caller to
104350// add HTTP headers to the request.
104351func (c *TargetTcpProxiesListCall) Header() http.Header {
104352	if c.header_ == nil {
104353		c.header_ = make(http.Header)
104354	}
104355	return c.header_
104356}
104357
104358func (c *TargetTcpProxiesListCall) doRequest(alt string) (*http.Response, error) {
104359	reqHeaders := make(http.Header)
104360	for k, v := range c.header_ {
104361		reqHeaders[k] = v
104362	}
104363	reqHeaders.Set("User-Agent", c.s.userAgent())
104364	if c.ifNoneMatch_ != "" {
104365		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104366	}
104367	var body io.Reader = nil
104368	c.urlParams_.Set("alt", alt)
104369	c.urlParams_.Set("prettyPrint", "false")
104370	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies")
104371	urls += "?" + c.urlParams_.Encode()
104372	req, err := http.NewRequest("GET", urls, body)
104373	if err != nil {
104374		return nil, err
104375	}
104376	req.Header = reqHeaders
104377	googleapi.Expand(req.URL, map[string]string{
104378		"project": c.project,
104379	})
104380	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104381}
104382
104383// Do executes the "compute.targetTcpProxies.list" call.
104384// Exactly one of *TargetTcpProxyList or error will be non-nil. Any
104385// non-2xx status code is an error. Response headers are in either
104386// *TargetTcpProxyList.ServerResponse.Header or (if a response was
104387// returned at all) in error.(*googleapi.Error).Header. Use
104388// googleapi.IsNotModified to check whether the returned error was
104389// because http.StatusNotModified was returned.
104390func (c *TargetTcpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxyList, error) {
104391	gensupport.SetOptions(c.urlParams_, opts...)
104392	res, err := c.doRequest("json")
104393	if res != nil && res.StatusCode == http.StatusNotModified {
104394		if res.Body != nil {
104395			res.Body.Close()
104396		}
104397		return nil, &googleapi.Error{
104398			Code:   res.StatusCode,
104399			Header: res.Header,
104400		}
104401	}
104402	if err != nil {
104403		return nil, err
104404	}
104405	defer googleapi.CloseBody(res)
104406	if err := googleapi.CheckResponse(res); err != nil {
104407		return nil, err
104408	}
104409	ret := &TargetTcpProxyList{
104410		ServerResponse: googleapi.ServerResponse{
104411			Header:         res.Header,
104412			HTTPStatusCode: res.StatusCode,
104413		},
104414	}
104415	target := &ret
104416	if err := gensupport.DecodeResponse(target, res); err != nil {
104417		return nil, err
104418	}
104419	return ret, nil
104420	// {
104421	//   "description": "Retrieves the list of TargetTcpProxy resources available to the specified project.",
104422	//   "httpMethod": "GET",
104423	//   "id": "compute.targetTcpProxies.list",
104424	//   "parameterOrder": [
104425	//     "project"
104426	//   ],
104427	//   "parameters": {
104428	//     "filter": {
104429	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
104430	//       "location": "query",
104431	//       "type": "string"
104432	//     },
104433	//     "maxResults": {
104434	//       "default": "500",
104435	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
104436	//       "format": "uint32",
104437	//       "location": "query",
104438	//       "minimum": "0",
104439	//       "type": "integer"
104440	//     },
104441	//     "orderBy": {
104442	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
104443	//       "location": "query",
104444	//       "type": "string"
104445	//     },
104446	//     "pageToken": {
104447	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
104448	//       "location": "query",
104449	//       "type": "string"
104450	//     },
104451	//     "project": {
104452	//       "description": "Project ID for this request.",
104453	//       "location": "path",
104454	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104455	//       "required": true,
104456	//       "type": "string"
104457	//     }
104458	//   },
104459	//   "path": "{project}/global/targetTcpProxies",
104460	//   "response": {
104461	//     "$ref": "TargetTcpProxyList"
104462	//   },
104463	//   "scopes": [
104464	//     "https://www.googleapis.com/auth/cloud-platform",
104465	//     "https://www.googleapis.com/auth/compute",
104466	//     "https://www.googleapis.com/auth/compute.readonly"
104467	//   ]
104468	// }
104469
104470}
104471
104472// Pages invokes f for each page of results.
104473// A non-nil error returned from f will halt the iteration.
104474// The provided context supersedes any context provided to the Context method.
104475func (c *TargetTcpProxiesListCall) Pages(ctx context.Context, f func(*TargetTcpProxyList) error) error {
104476	c.ctx_ = ctx
104477	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
104478	for {
104479		x, err := c.Do()
104480		if err != nil {
104481			return err
104482		}
104483		if err := f(x); err != nil {
104484			return err
104485		}
104486		if x.NextPageToken == "" {
104487			return nil
104488		}
104489		c.PageToken(x.NextPageToken)
104490	}
104491}
104492
104493// method id "compute.targetTcpProxies.setBackendService":
104494
104495type TargetTcpProxiesSetBackendServiceCall struct {
104496	s                                        *Service
104497	project                                  string
104498	targetTcpProxy                           string
104499	targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest
104500	urlParams_                               gensupport.URLParams
104501	ctx_                                     context.Context
104502	header_                                  http.Header
104503}
104504
104505// SetBackendService: Changes the BackendService for TargetTcpProxy.
104506func (r *TargetTcpProxiesService) SetBackendService(project string, targetTcpProxy string, targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest) *TargetTcpProxiesSetBackendServiceCall {
104507	c := &TargetTcpProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104508	c.project = project
104509	c.targetTcpProxy = targetTcpProxy
104510	c.targettcpproxiessetbackendservicerequest = targettcpproxiessetbackendservicerequest
104511	return c
104512}
104513
104514// RequestId sets the optional parameter "requestId": An optional
104515// request ID to identify requests. Specify a unique request ID so that
104516// if you must retry your request, the server will know to ignore the
104517// request if it has already been completed.
104518//
104519// For example, consider a situation where you make an initial request
104520// and the request times out. If you make the request again with the
104521// same request ID, the server can check if original operation with the
104522// same request ID was received, and if so, will ignore the second
104523// request. This prevents clients from accidentally creating duplicate
104524// commitments.
104525//
104526// The request ID must be a valid UUID with the exception that zero UUID
104527// is not supported (00000000-0000-0000-0000-000000000000).
104528func (c *TargetTcpProxiesSetBackendServiceCall) RequestId(requestId string) *TargetTcpProxiesSetBackendServiceCall {
104529	c.urlParams_.Set("requestId", requestId)
104530	return c
104531}
104532
104533// Fields allows partial responses to be retrieved. See
104534// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104535// for more information.
104536func (c *TargetTcpProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetBackendServiceCall {
104537	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104538	return c
104539}
104540
104541// Context sets the context to be used in this call's Do method. Any
104542// pending HTTP request will be aborted if the provided context is
104543// canceled.
104544func (c *TargetTcpProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetTcpProxiesSetBackendServiceCall {
104545	c.ctx_ = ctx
104546	return c
104547}
104548
104549// Header returns an http.Header that can be modified by the caller to
104550// add HTTP headers to the request.
104551func (c *TargetTcpProxiesSetBackendServiceCall) Header() http.Header {
104552	if c.header_ == nil {
104553		c.header_ = make(http.Header)
104554	}
104555	return c.header_
104556}
104557
104558func (c *TargetTcpProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
104559	reqHeaders := make(http.Header)
104560	for k, v := range c.header_ {
104561		reqHeaders[k] = v
104562	}
104563	reqHeaders.Set("User-Agent", c.s.userAgent())
104564	var body io.Reader = nil
104565	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetbackendservicerequest)
104566	if err != nil {
104567		return nil, err
104568	}
104569	reqHeaders.Set("Content-Type", "application/json")
104570	c.urlParams_.Set("alt", alt)
104571	c.urlParams_.Set("prettyPrint", "false")
104572	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService")
104573	urls += "?" + c.urlParams_.Encode()
104574	req, err := http.NewRequest("POST", urls, body)
104575	if err != nil {
104576		return nil, err
104577	}
104578	req.Header = reqHeaders
104579	googleapi.Expand(req.URL, map[string]string{
104580		"project":        c.project,
104581		"targetTcpProxy": c.targetTcpProxy,
104582	})
104583	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104584}
104585
104586// Do executes the "compute.targetTcpProxies.setBackendService" call.
104587// Exactly one of *Operation or error will be non-nil. Any non-2xx
104588// status code is an error. Response headers are in either
104589// *Operation.ServerResponse.Header or (if a response was returned at
104590// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104591// to check whether the returned error was because
104592// http.StatusNotModified was returned.
104593func (c *TargetTcpProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104594	gensupport.SetOptions(c.urlParams_, opts...)
104595	res, err := c.doRequest("json")
104596	if res != nil && res.StatusCode == http.StatusNotModified {
104597		if res.Body != nil {
104598			res.Body.Close()
104599		}
104600		return nil, &googleapi.Error{
104601			Code:   res.StatusCode,
104602			Header: res.Header,
104603		}
104604	}
104605	if err != nil {
104606		return nil, err
104607	}
104608	defer googleapi.CloseBody(res)
104609	if err := googleapi.CheckResponse(res); err != nil {
104610		return nil, err
104611	}
104612	ret := &Operation{
104613		ServerResponse: googleapi.ServerResponse{
104614			Header:         res.Header,
104615			HTTPStatusCode: res.StatusCode,
104616		},
104617	}
104618	target := &ret
104619	if err := gensupport.DecodeResponse(target, res); err != nil {
104620		return nil, err
104621	}
104622	return ret, nil
104623	// {
104624	//   "description": "Changes the BackendService for TargetTcpProxy.",
104625	//   "httpMethod": "POST",
104626	//   "id": "compute.targetTcpProxies.setBackendService",
104627	//   "parameterOrder": [
104628	//     "project",
104629	//     "targetTcpProxy"
104630	//   ],
104631	//   "parameters": {
104632	//     "project": {
104633	//       "description": "Project ID for this request.",
104634	//       "location": "path",
104635	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104636	//       "required": true,
104637	//       "type": "string"
104638	//     },
104639	//     "requestId": {
104640	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104641	//       "location": "query",
104642	//       "type": "string"
104643	//     },
104644	//     "targetTcpProxy": {
104645	//       "description": "Name of the TargetTcpProxy resource whose BackendService resource is to be set.",
104646	//       "location": "path",
104647	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104648	//       "required": true,
104649	//       "type": "string"
104650	//     }
104651	//   },
104652	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService",
104653	//   "request": {
104654	//     "$ref": "TargetTcpProxiesSetBackendServiceRequest"
104655	//   },
104656	//   "response": {
104657	//     "$ref": "Operation"
104658	//   },
104659	//   "scopes": [
104660	//     "https://www.googleapis.com/auth/cloud-platform",
104661	//     "https://www.googleapis.com/auth/compute"
104662	//   ]
104663	// }
104664
104665}
104666
104667// method id "compute.targetTcpProxies.setProxyHeader":
104668
104669type TargetTcpProxiesSetProxyHeaderCall struct {
104670	s                                     *Service
104671	project                               string
104672	targetTcpProxy                        string
104673	targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest
104674	urlParams_                            gensupport.URLParams
104675	ctx_                                  context.Context
104676	header_                               http.Header
104677}
104678
104679// SetProxyHeader: Changes the ProxyHeaderType for TargetTcpProxy.
104680func (r *TargetTcpProxiesService) SetProxyHeader(project string, targetTcpProxy string, targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest) *TargetTcpProxiesSetProxyHeaderCall {
104681	c := &TargetTcpProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104682	c.project = project
104683	c.targetTcpProxy = targetTcpProxy
104684	c.targettcpproxiessetproxyheaderrequest = targettcpproxiessetproxyheaderrequest
104685	return c
104686}
104687
104688// RequestId sets the optional parameter "requestId": An optional
104689// request ID to identify requests. Specify a unique request ID so that
104690// if you must retry your request, the server will know to ignore the
104691// request if it has already been completed.
104692//
104693// For example, consider a situation where you make an initial request
104694// and the request times out. If you make the request again with the
104695// same request ID, the server can check if original operation with the
104696// same request ID was received, and if so, will ignore the second
104697// request. This prevents clients from accidentally creating duplicate
104698// commitments.
104699//
104700// The request ID must be a valid UUID with the exception that zero UUID
104701// is not supported (00000000-0000-0000-0000-000000000000).
104702func (c *TargetTcpProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetTcpProxiesSetProxyHeaderCall {
104703	c.urlParams_.Set("requestId", requestId)
104704	return c
104705}
104706
104707// Fields allows partial responses to be retrieved. See
104708// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104709// for more information.
104710func (c *TargetTcpProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetProxyHeaderCall {
104711	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104712	return c
104713}
104714
104715// Context sets the context to be used in this call's Do method. Any
104716// pending HTTP request will be aborted if the provided context is
104717// canceled.
104718func (c *TargetTcpProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetTcpProxiesSetProxyHeaderCall {
104719	c.ctx_ = ctx
104720	return c
104721}
104722
104723// Header returns an http.Header that can be modified by the caller to
104724// add HTTP headers to the request.
104725func (c *TargetTcpProxiesSetProxyHeaderCall) Header() http.Header {
104726	if c.header_ == nil {
104727		c.header_ = make(http.Header)
104728	}
104729	return c.header_
104730}
104731
104732func (c *TargetTcpProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
104733	reqHeaders := make(http.Header)
104734	for k, v := range c.header_ {
104735		reqHeaders[k] = v
104736	}
104737	reqHeaders.Set("User-Agent", c.s.userAgent())
104738	var body io.Reader = nil
104739	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetproxyheaderrequest)
104740	if err != nil {
104741		return nil, err
104742	}
104743	reqHeaders.Set("Content-Type", "application/json")
104744	c.urlParams_.Set("alt", alt)
104745	c.urlParams_.Set("prettyPrint", "false")
104746	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader")
104747	urls += "?" + c.urlParams_.Encode()
104748	req, err := http.NewRequest("POST", urls, body)
104749	if err != nil {
104750		return nil, err
104751	}
104752	req.Header = reqHeaders
104753	googleapi.Expand(req.URL, map[string]string{
104754		"project":        c.project,
104755		"targetTcpProxy": c.targetTcpProxy,
104756	})
104757	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104758}
104759
104760// Do executes the "compute.targetTcpProxies.setProxyHeader" call.
104761// Exactly one of *Operation or error will be non-nil. Any non-2xx
104762// status code is an error. Response headers are in either
104763// *Operation.ServerResponse.Header or (if a response was returned at
104764// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104765// to check whether the returned error was because
104766// http.StatusNotModified was returned.
104767func (c *TargetTcpProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104768	gensupport.SetOptions(c.urlParams_, opts...)
104769	res, err := c.doRequest("json")
104770	if res != nil && res.StatusCode == http.StatusNotModified {
104771		if res.Body != nil {
104772			res.Body.Close()
104773		}
104774		return nil, &googleapi.Error{
104775			Code:   res.StatusCode,
104776			Header: res.Header,
104777		}
104778	}
104779	if err != nil {
104780		return nil, err
104781	}
104782	defer googleapi.CloseBody(res)
104783	if err := googleapi.CheckResponse(res); err != nil {
104784		return nil, err
104785	}
104786	ret := &Operation{
104787		ServerResponse: googleapi.ServerResponse{
104788			Header:         res.Header,
104789			HTTPStatusCode: res.StatusCode,
104790		},
104791	}
104792	target := &ret
104793	if err := gensupport.DecodeResponse(target, res); err != nil {
104794		return nil, err
104795	}
104796	return ret, nil
104797	// {
104798	//   "description": "Changes the ProxyHeaderType for TargetTcpProxy.",
104799	//   "httpMethod": "POST",
104800	//   "id": "compute.targetTcpProxies.setProxyHeader",
104801	//   "parameterOrder": [
104802	//     "project",
104803	//     "targetTcpProxy"
104804	//   ],
104805	//   "parameters": {
104806	//     "project": {
104807	//       "description": "Project ID for this request.",
104808	//       "location": "path",
104809	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104810	//       "required": true,
104811	//       "type": "string"
104812	//     },
104813	//     "requestId": {
104814	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104815	//       "location": "query",
104816	//       "type": "string"
104817	//     },
104818	//     "targetTcpProxy": {
104819	//       "description": "Name of the TargetTcpProxy resource whose ProxyHeader is to be set.",
104820	//       "location": "path",
104821	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104822	//       "required": true,
104823	//       "type": "string"
104824	//     }
104825	//   },
104826	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader",
104827	//   "request": {
104828	//     "$ref": "TargetTcpProxiesSetProxyHeaderRequest"
104829	//   },
104830	//   "response": {
104831	//     "$ref": "Operation"
104832	//   },
104833	//   "scopes": [
104834	//     "https://www.googleapis.com/auth/cloud-platform",
104835	//     "https://www.googleapis.com/auth/compute"
104836	//   ]
104837	// }
104838
104839}
104840
104841// method id "compute.targetVpnGateways.aggregatedList":
104842
104843type TargetVpnGatewaysAggregatedListCall struct {
104844	s            *Service
104845	project      string
104846	urlParams_   gensupport.URLParams
104847	ifNoneMatch_ string
104848	ctx_         context.Context
104849	header_      http.Header
104850}
104851
104852// AggregatedList: Retrieves an aggregated list of target VPN gateways.
104853func (r *TargetVpnGatewaysService) AggregatedList(project string) *TargetVpnGatewaysAggregatedListCall {
104854	c := &TargetVpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104855	c.project = project
104856	return c
104857}
104858
104859// Filter sets the optional parameter "filter": A filter expression that
104860// filters resources listed in the response. The expression must specify
104861// the field name, a comparison operator, and the value that you want to
104862// use for filtering. The value must be a string, a number, or a
104863// boolean. The comparison operator must be either =, !=, >, or <.
104864//
104865// For example, if you are filtering Compute Engine instances, you can
104866// exclude instances named example-instance by specifying name !=
104867// example-instance.
104868//
104869// You can also filter nested fields. For example, you could specify
104870// scheduling.automaticRestart = false to include instances only if they
104871// are not scheduled for automatic restarts. You can use filtering on
104872// nested fields to filter based on resource labels.
104873//
104874// To filter on multiple expressions, provide each separate expression
104875// within parentheses. For example, (scheduling.automaticRestart = true)
104876// (cpuPlatform = "Intel Skylake"). By default, each expression is an
104877// AND expression. However, you can include AND and OR expressions
104878// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
104879// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
104880// true).
104881func (c *TargetVpnGatewaysAggregatedListCall) Filter(filter string) *TargetVpnGatewaysAggregatedListCall {
104882	c.urlParams_.Set("filter", filter)
104883	return c
104884}
104885
104886// MaxResults sets the optional parameter "maxResults": The maximum
104887// number of results per page that should be returned. If the number of
104888// available results is larger than maxResults, Compute Engine returns a
104889// nextPageToken that can be used to get the next page of results in
104890// subsequent list requests. Acceptable values are 0 to 500, inclusive.
104891// (Default: 500)
104892func (c *TargetVpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *TargetVpnGatewaysAggregatedListCall {
104893	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
104894	return c
104895}
104896
104897// OrderBy sets the optional parameter "orderBy": Sorts list results by
104898// a certain order. By default, results are returned in alphanumerical
104899// order based on the resource name.
104900//
104901// You can also sort results in descending order based on the creation
104902// timestamp using orderBy="creationTimestamp desc". This sorts results
104903// based on the creationTimestamp field in reverse chronological order
104904// (newest result first). Use this to sort resources like operations so
104905// that the newest operation is returned first.
104906//
104907// Currently, only sorting by name or creationTimestamp desc is
104908// supported.
104909func (c *TargetVpnGatewaysAggregatedListCall) OrderBy(orderBy string) *TargetVpnGatewaysAggregatedListCall {
104910	c.urlParams_.Set("orderBy", orderBy)
104911	return c
104912}
104913
104914// PageToken sets the optional parameter "pageToken": Specifies a page
104915// token to use. Set pageToken to the nextPageToken returned by a
104916// previous list request to get the next page of results.
104917func (c *TargetVpnGatewaysAggregatedListCall) PageToken(pageToken string) *TargetVpnGatewaysAggregatedListCall {
104918	c.urlParams_.Set("pageToken", pageToken)
104919	return c
104920}
104921
104922// Fields allows partial responses to be retrieved. See
104923// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104924// for more information.
104925func (c *TargetVpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysAggregatedListCall {
104926	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104927	return c
104928}
104929
104930// IfNoneMatch sets the optional parameter which makes the operation
104931// fail if the object's ETag matches the given value. This is useful for
104932// getting updates only after the object has changed since the last
104933// request. Use googleapi.IsNotModified to check whether the response
104934// error from Do is the result of In-None-Match.
104935func (c *TargetVpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysAggregatedListCall {
104936	c.ifNoneMatch_ = entityTag
104937	return c
104938}
104939
104940// Context sets the context to be used in this call's Do method. Any
104941// pending HTTP request will be aborted if the provided context is
104942// canceled.
104943func (c *TargetVpnGatewaysAggregatedListCall) Context(ctx context.Context) *TargetVpnGatewaysAggregatedListCall {
104944	c.ctx_ = ctx
104945	return c
104946}
104947
104948// Header returns an http.Header that can be modified by the caller to
104949// add HTTP headers to the request.
104950func (c *TargetVpnGatewaysAggregatedListCall) Header() http.Header {
104951	if c.header_ == nil {
104952		c.header_ = make(http.Header)
104953	}
104954	return c.header_
104955}
104956
104957func (c *TargetVpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
104958	reqHeaders := make(http.Header)
104959	for k, v := range c.header_ {
104960		reqHeaders[k] = v
104961	}
104962	reqHeaders.Set("User-Agent", c.s.userAgent())
104963	if c.ifNoneMatch_ != "" {
104964		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104965	}
104966	var body io.Reader = nil
104967	c.urlParams_.Set("alt", alt)
104968	c.urlParams_.Set("prettyPrint", "false")
104969	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetVpnGateways")
104970	urls += "?" + c.urlParams_.Encode()
104971	req, err := http.NewRequest("GET", urls, body)
104972	if err != nil {
104973		return nil, err
104974	}
104975	req.Header = reqHeaders
104976	googleapi.Expand(req.URL, map[string]string{
104977		"project": c.project,
104978	})
104979	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104980}
104981
104982// Do executes the "compute.targetVpnGateways.aggregatedList" call.
104983// Exactly one of *TargetVpnGatewayAggregatedList or error will be
104984// non-nil. Any non-2xx status code is an error. Response headers are in
104985// either *TargetVpnGatewayAggregatedList.ServerResponse.Header or (if a
104986// response was returned at all) in error.(*googleapi.Error).Header. Use
104987// googleapi.IsNotModified to check whether the returned error was
104988// because http.StatusNotModified was returned.
104989func (c *TargetVpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayAggregatedList, error) {
104990	gensupport.SetOptions(c.urlParams_, opts...)
104991	res, err := c.doRequest("json")
104992	if res != nil && res.StatusCode == http.StatusNotModified {
104993		if res.Body != nil {
104994			res.Body.Close()
104995		}
104996		return nil, &googleapi.Error{
104997			Code:   res.StatusCode,
104998			Header: res.Header,
104999		}
105000	}
105001	if err != nil {
105002		return nil, err
105003	}
105004	defer googleapi.CloseBody(res)
105005	if err := googleapi.CheckResponse(res); err != nil {
105006		return nil, err
105007	}
105008	ret := &TargetVpnGatewayAggregatedList{
105009		ServerResponse: googleapi.ServerResponse{
105010			Header:         res.Header,
105011			HTTPStatusCode: res.StatusCode,
105012		},
105013	}
105014	target := &ret
105015	if err := gensupport.DecodeResponse(target, res); err != nil {
105016		return nil, err
105017	}
105018	return ret, nil
105019	// {
105020	//   "description": "Retrieves an aggregated list of target VPN gateways.",
105021	//   "httpMethod": "GET",
105022	//   "id": "compute.targetVpnGateways.aggregatedList",
105023	//   "parameterOrder": [
105024	//     "project"
105025	//   ],
105026	//   "parameters": {
105027	//     "filter": {
105028	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
105029	//       "location": "query",
105030	//       "type": "string"
105031	//     },
105032	//     "maxResults": {
105033	//       "default": "500",
105034	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
105035	//       "format": "uint32",
105036	//       "location": "query",
105037	//       "minimum": "0",
105038	//       "type": "integer"
105039	//     },
105040	//     "orderBy": {
105041	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
105042	//       "location": "query",
105043	//       "type": "string"
105044	//     },
105045	//     "pageToken": {
105046	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
105047	//       "location": "query",
105048	//       "type": "string"
105049	//     },
105050	//     "project": {
105051	//       "description": "Project ID for this request.",
105052	//       "location": "path",
105053	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105054	//       "required": true,
105055	//       "type": "string"
105056	//     }
105057	//   },
105058	//   "path": "{project}/aggregated/targetVpnGateways",
105059	//   "response": {
105060	//     "$ref": "TargetVpnGatewayAggregatedList"
105061	//   },
105062	//   "scopes": [
105063	//     "https://www.googleapis.com/auth/cloud-platform",
105064	//     "https://www.googleapis.com/auth/compute",
105065	//     "https://www.googleapis.com/auth/compute.readonly"
105066	//   ]
105067	// }
105068
105069}
105070
105071// Pages invokes f for each page of results.
105072// A non-nil error returned from f will halt the iteration.
105073// The provided context supersedes any context provided to the Context method.
105074func (c *TargetVpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayAggregatedList) error) error {
105075	c.ctx_ = ctx
105076	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
105077	for {
105078		x, err := c.Do()
105079		if err != nil {
105080			return err
105081		}
105082		if err := f(x); err != nil {
105083			return err
105084		}
105085		if x.NextPageToken == "" {
105086			return nil
105087		}
105088		c.PageToken(x.NextPageToken)
105089	}
105090}
105091
105092// method id "compute.targetVpnGateways.delete":
105093
105094type TargetVpnGatewaysDeleteCall struct {
105095	s                *Service
105096	project          string
105097	region           string
105098	targetVpnGateway string
105099	urlParams_       gensupport.URLParams
105100	ctx_             context.Context
105101	header_          http.Header
105102}
105103
105104// Delete: Deletes the specified target VPN gateway.
105105func (r *TargetVpnGatewaysService) Delete(project string, region string, targetVpnGateway string) *TargetVpnGatewaysDeleteCall {
105106	c := &TargetVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105107	c.project = project
105108	c.region = region
105109	c.targetVpnGateway = targetVpnGateway
105110	return c
105111}
105112
105113// RequestId sets the optional parameter "requestId": An optional
105114// request ID to identify requests. Specify a unique request ID so that
105115// if you must retry your request, the server will know to ignore the
105116// request if it has already been completed.
105117//
105118// For example, consider a situation where you make an initial request
105119// and the request times out. If you make the request again with the
105120// same request ID, the server can check if original operation with the
105121// same request ID was received, and if so, will ignore the second
105122// request. This prevents clients from accidentally creating duplicate
105123// commitments.
105124//
105125// The request ID must be a valid UUID with the exception that zero UUID
105126// is not supported (00000000-0000-0000-0000-000000000000).
105127func (c *TargetVpnGatewaysDeleteCall) RequestId(requestId string) *TargetVpnGatewaysDeleteCall {
105128	c.urlParams_.Set("requestId", requestId)
105129	return c
105130}
105131
105132// Fields allows partial responses to be retrieved. See
105133// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105134// for more information.
105135func (c *TargetVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysDeleteCall {
105136	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105137	return c
105138}
105139
105140// Context sets the context to be used in this call's Do method. Any
105141// pending HTTP request will be aborted if the provided context is
105142// canceled.
105143func (c *TargetVpnGatewaysDeleteCall) Context(ctx context.Context) *TargetVpnGatewaysDeleteCall {
105144	c.ctx_ = ctx
105145	return c
105146}
105147
105148// Header returns an http.Header that can be modified by the caller to
105149// add HTTP headers to the request.
105150func (c *TargetVpnGatewaysDeleteCall) Header() http.Header {
105151	if c.header_ == nil {
105152		c.header_ = make(http.Header)
105153	}
105154	return c.header_
105155}
105156
105157func (c *TargetVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
105158	reqHeaders := make(http.Header)
105159	for k, v := range c.header_ {
105160		reqHeaders[k] = v
105161	}
105162	reqHeaders.Set("User-Agent", c.s.userAgent())
105163	var body io.Reader = nil
105164	c.urlParams_.Set("alt", alt)
105165	c.urlParams_.Set("prettyPrint", "false")
105166	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
105167	urls += "?" + c.urlParams_.Encode()
105168	req, err := http.NewRequest("DELETE", urls, body)
105169	if err != nil {
105170		return nil, err
105171	}
105172	req.Header = reqHeaders
105173	googleapi.Expand(req.URL, map[string]string{
105174		"project":          c.project,
105175		"region":           c.region,
105176		"targetVpnGateway": c.targetVpnGateway,
105177	})
105178	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105179}
105180
105181// Do executes the "compute.targetVpnGateways.delete" call.
105182// Exactly one of *Operation or error will be non-nil. Any non-2xx
105183// status code is an error. Response headers are in either
105184// *Operation.ServerResponse.Header or (if a response was returned at
105185// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105186// to check whether the returned error was because
105187// http.StatusNotModified was returned.
105188func (c *TargetVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105189	gensupport.SetOptions(c.urlParams_, opts...)
105190	res, err := c.doRequest("json")
105191	if res != nil && res.StatusCode == http.StatusNotModified {
105192		if res.Body != nil {
105193			res.Body.Close()
105194		}
105195		return nil, &googleapi.Error{
105196			Code:   res.StatusCode,
105197			Header: res.Header,
105198		}
105199	}
105200	if err != nil {
105201		return nil, err
105202	}
105203	defer googleapi.CloseBody(res)
105204	if err := googleapi.CheckResponse(res); err != nil {
105205		return nil, err
105206	}
105207	ret := &Operation{
105208		ServerResponse: googleapi.ServerResponse{
105209			Header:         res.Header,
105210			HTTPStatusCode: res.StatusCode,
105211		},
105212	}
105213	target := &ret
105214	if err := gensupport.DecodeResponse(target, res); err != nil {
105215		return nil, err
105216	}
105217	return ret, nil
105218	// {
105219	//   "description": "Deletes the specified target VPN gateway.",
105220	//   "httpMethod": "DELETE",
105221	//   "id": "compute.targetVpnGateways.delete",
105222	//   "parameterOrder": [
105223	//     "project",
105224	//     "region",
105225	//     "targetVpnGateway"
105226	//   ],
105227	//   "parameters": {
105228	//     "project": {
105229	//       "description": "Project ID for this request.",
105230	//       "location": "path",
105231	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105232	//       "required": true,
105233	//       "type": "string"
105234	//     },
105235	//     "region": {
105236	//       "description": "Name of the region for this request.",
105237	//       "location": "path",
105238	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105239	//       "required": true,
105240	//       "type": "string"
105241	//     },
105242	//     "requestId": {
105243	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105244	//       "location": "query",
105245	//       "type": "string"
105246	//     },
105247	//     "targetVpnGateway": {
105248	//       "description": "Name of the target VPN gateway to delete.",
105249	//       "location": "path",
105250	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105251	//       "required": true,
105252	//       "type": "string"
105253	//     }
105254	//   },
105255	//   "path": "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
105256	//   "response": {
105257	//     "$ref": "Operation"
105258	//   },
105259	//   "scopes": [
105260	//     "https://www.googleapis.com/auth/cloud-platform",
105261	//     "https://www.googleapis.com/auth/compute"
105262	//   ]
105263	// }
105264
105265}
105266
105267// method id "compute.targetVpnGateways.get":
105268
105269type TargetVpnGatewaysGetCall struct {
105270	s                *Service
105271	project          string
105272	region           string
105273	targetVpnGateway string
105274	urlParams_       gensupport.URLParams
105275	ifNoneMatch_     string
105276	ctx_             context.Context
105277	header_          http.Header
105278}
105279
105280// Get: Returns the specified target VPN gateway. Gets a list of
105281// available target VPN gateways by making a list() request.
105282func (r *TargetVpnGatewaysService) Get(project string, region string, targetVpnGateway string) *TargetVpnGatewaysGetCall {
105283	c := &TargetVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105284	c.project = project
105285	c.region = region
105286	c.targetVpnGateway = targetVpnGateway
105287	return c
105288}
105289
105290// Fields allows partial responses to be retrieved. See
105291// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105292// for more information.
105293func (c *TargetVpnGatewaysGetCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysGetCall {
105294	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105295	return c
105296}
105297
105298// IfNoneMatch sets the optional parameter which makes the operation
105299// fail if the object's ETag matches the given value. This is useful for
105300// getting updates only after the object has changed since the last
105301// request. Use googleapi.IsNotModified to check whether the response
105302// error from Do is the result of In-None-Match.
105303func (c *TargetVpnGatewaysGetCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysGetCall {
105304	c.ifNoneMatch_ = entityTag
105305	return c
105306}
105307
105308// Context sets the context to be used in this call's Do method. Any
105309// pending HTTP request will be aborted if the provided context is
105310// canceled.
105311func (c *TargetVpnGatewaysGetCall) Context(ctx context.Context) *TargetVpnGatewaysGetCall {
105312	c.ctx_ = ctx
105313	return c
105314}
105315
105316// Header returns an http.Header that can be modified by the caller to
105317// add HTTP headers to the request.
105318func (c *TargetVpnGatewaysGetCall) Header() http.Header {
105319	if c.header_ == nil {
105320		c.header_ = make(http.Header)
105321	}
105322	return c.header_
105323}
105324
105325func (c *TargetVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
105326	reqHeaders := make(http.Header)
105327	for k, v := range c.header_ {
105328		reqHeaders[k] = v
105329	}
105330	reqHeaders.Set("User-Agent", c.s.userAgent())
105331	if c.ifNoneMatch_ != "" {
105332		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105333	}
105334	var body io.Reader = nil
105335	c.urlParams_.Set("alt", alt)
105336	c.urlParams_.Set("prettyPrint", "false")
105337	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
105338	urls += "?" + c.urlParams_.Encode()
105339	req, err := http.NewRequest("GET", urls, body)
105340	if err != nil {
105341		return nil, err
105342	}
105343	req.Header = reqHeaders
105344	googleapi.Expand(req.URL, map[string]string{
105345		"project":          c.project,
105346		"region":           c.region,
105347		"targetVpnGateway": c.targetVpnGateway,
105348	})
105349	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105350}
105351
105352// Do executes the "compute.targetVpnGateways.get" call.
105353// Exactly one of *TargetVpnGateway or error will be non-nil. Any
105354// non-2xx status code is an error. Response headers are in either
105355// *TargetVpnGateway.ServerResponse.Header or (if a response was
105356// returned at all) in error.(*googleapi.Error).Header. Use
105357// googleapi.IsNotModified to check whether the returned error was
105358// because http.StatusNotModified was returned.
105359func (c *TargetVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*TargetVpnGateway, error) {
105360	gensupport.SetOptions(c.urlParams_, opts...)
105361	res, err := c.doRequest("json")
105362	if res != nil && res.StatusCode == http.StatusNotModified {
105363		if res.Body != nil {
105364			res.Body.Close()
105365		}
105366		return nil, &googleapi.Error{
105367			Code:   res.StatusCode,
105368			Header: res.Header,
105369		}
105370	}
105371	if err != nil {
105372		return nil, err
105373	}
105374	defer googleapi.CloseBody(res)
105375	if err := googleapi.CheckResponse(res); err != nil {
105376		return nil, err
105377	}
105378	ret := &TargetVpnGateway{
105379		ServerResponse: googleapi.ServerResponse{
105380			Header:         res.Header,
105381			HTTPStatusCode: res.StatusCode,
105382		},
105383	}
105384	target := &ret
105385	if err := gensupport.DecodeResponse(target, res); err != nil {
105386		return nil, err
105387	}
105388	return ret, nil
105389	// {
105390	//   "description": "Returns the specified target VPN gateway. Gets a list of available target VPN gateways by making a list() request.",
105391	//   "httpMethod": "GET",
105392	//   "id": "compute.targetVpnGateways.get",
105393	//   "parameterOrder": [
105394	//     "project",
105395	//     "region",
105396	//     "targetVpnGateway"
105397	//   ],
105398	//   "parameters": {
105399	//     "project": {
105400	//       "description": "Project ID for this request.",
105401	//       "location": "path",
105402	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105403	//       "required": true,
105404	//       "type": "string"
105405	//     },
105406	//     "region": {
105407	//       "description": "Name of the region for this request.",
105408	//       "location": "path",
105409	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105410	//       "required": true,
105411	//       "type": "string"
105412	//     },
105413	//     "targetVpnGateway": {
105414	//       "description": "Name of the target VPN gateway to return.",
105415	//       "location": "path",
105416	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105417	//       "required": true,
105418	//       "type": "string"
105419	//     }
105420	//   },
105421	//   "path": "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
105422	//   "response": {
105423	//     "$ref": "TargetVpnGateway"
105424	//   },
105425	//   "scopes": [
105426	//     "https://www.googleapis.com/auth/cloud-platform",
105427	//     "https://www.googleapis.com/auth/compute",
105428	//     "https://www.googleapis.com/auth/compute.readonly"
105429	//   ]
105430	// }
105431
105432}
105433
105434// method id "compute.targetVpnGateways.insert":
105435
105436type TargetVpnGatewaysInsertCall struct {
105437	s                *Service
105438	project          string
105439	region           string
105440	targetvpngateway *TargetVpnGateway
105441	urlParams_       gensupport.URLParams
105442	ctx_             context.Context
105443	header_          http.Header
105444}
105445
105446// Insert: Creates a target VPN gateway in the specified project and
105447// region using the data included in the request.
105448func (r *TargetVpnGatewaysService) Insert(project string, region string, targetvpngateway *TargetVpnGateway) *TargetVpnGatewaysInsertCall {
105449	c := &TargetVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105450	c.project = project
105451	c.region = region
105452	c.targetvpngateway = targetvpngateway
105453	return c
105454}
105455
105456// RequestId sets the optional parameter "requestId": An optional
105457// request ID to identify requests. Specify a unique request ID so that
105458// if you must retry your request, the server will know to ignore the
105459// request if it has already been completed.
105460//
105461// For example, consider a situation where you make an initial request
105462// and the request times out. If you make the request again with the
105463// same request ID, the server can check if original operation with the
105464// same request ID was received, and if so, will ignore the second
105465// request. This prevents clients from accidentally creating duplicate
105466// commitments.
105467//
105468// The request ID must be a valid UUID with the exception that zero UUID
105469// is not supported (00000000-0000-0000-0000-000000000000).
105470func (c *TargetVpnGatewaysInsertCall) RequestId(requestId string) *TargetVpnGatewaysInsertCall {
105471	c.urlParams_.Set("requestId", requestId)
105472	return c
105473}
105474
105475// Fields allows partial responses to be retrieved. See
105476// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105477// for more information.
105478func (c *TargetVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysInsertCall {
105479	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105480	return c
105481}
105482
105483// Context sets the context to be used in this call's Do method. Any
105484// pending HTTP request will be aborted if the provided context is
105485// canceled.
105486func (c *TargetVpnGatewaysInsertCall) Context(ctx context.Context) *TargetVpnGatewaysInsertCall {
105487	c.ctx_ = ctx
105488	return c
105489}
105490
105491// Header returns an http.Header that can be modified by the caller to
105492// add HTTP headers to the request.
105493func (c *TargetVpnGatewaysInsertCall) Header() http.Header {
105494	if c.header_ == nil {
105495		c.header_ = make(http.Header)
105496	}
105497	return c.header_
105498}
105499
105500func (c *TargetVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
105501	reqHeaders := make(http.Header)
105502	for k, v := range c.header_ {
105503		reqHeaders[k] = v
105504	}
105505	reqHeaders.Set("User-Agent", c.s.userAgent())
105506	var body io.Reader = nil
105507	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetvpngateway)
105508	if err != nil {
105509		return nil, err
105510	}
105511	reqHeaders.Set("Content-Type", "application/json")
105512	c.urlParams_.Set("alt", alt)
105513	c.urlParams_.Set("prettyPrint", "false")
105514	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways")
105515	urls += "?" + c.urlParams_.Encode()
105516	req, err := http.NewRequest("POST", urls, body)
105517	if err != nil {
105518		return nil, err
105519	}
105520	req.Header = reqHeaders
105521	googleapi.Expand(req.URL, map[string]string{
105522		"project": c.project,
105523		"region":  c.region,
105524	})
105525	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105526}
105527
105528// Do executes the "compute.targetVpnGateways.insert" call.
105529// Exactly one of *Operation or error will be non-nil. Any non-2xx
105530// status code is an error. Response headers are in either
105531// *Operation.ServerResponse.Header or (if a response was returned at
105532// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105533// to check whether the returned error was because
105534// http.StatusNotModified was returned.
105535func (c *TargetVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105536	gensupport.SetOptions(c.urlParams_, opts...)
105537	res, err := c.doRequest("json")
105538	if res != nil && res.StatusCode == http.StatusNotModified {
105539		if res.Body != nil {
105540			res.Body.Close()
105541		}
105542		return nil, &googleapi.Error{
105543			Code:   res.StatusCode,
105544			Header: res.Header,
105545		}
105546	}
105547	if err != nil {
105548		return nil, err
105549	}
105550	defer googleapi.CloseBody(res)
105551	if err := googleapi.CheckResponse(res); err != nil {
105552		return nil, err
105553	}
105554	ret := &Operation{
105555		ServerResponse: googleapi.ServerResponse{
105556			Header:         res.Header,
105557			HTTPStatusCode: res.StatusCode,
105558		},
105559	}
105560	target := &ret
105561	if err := gensupport.DecodeResponse(target, res); err != nil {
105562		return nil, err
105563	}
105564	return ret, nil
105565	// {
105566	//   "description": "Creates a target VPN gateway in the specified project and region using the data included in the request.",
105567	//   "httpMethod": "POST",
105568	//   "id": "compute.targetVpnGateways.insert",
105569	//   "parameterOrder": [
105570	//     "project",
105571	//     "region"
105572	//   ],
105573	//   "parameters": {
105574	//     "project": {
105575	//       "description": "Project ID for this request.",
105576	//       "location": "path",
105577	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105578	//       "required": true,
105579	//       "type": "string"
105580	//     },
105581	//     "region": {
105582	//       "description": "Name of the region for this request.",
105583	//       "location": "path",
105584	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105585	//       "required": true,
105586	//       "type": "string"
105587	//     },
105588	//     "requestId": {
105589	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105590	//       "location": "query",
105591	//       "type": "string"
105592	//     }
105593	//   },
105594	//   "path": "{project}/regions/{region}/targetVpnGateways",
105595	//   "request": {
105596	//     "$ref": "TargetVpnGateway"
105597	//   },
105598	//   "response": {
105599	//     "$ref": "Operation"
105600	//   },
105601	//   "scopes": [
105602	//     "https://www.googleapis.com/auth/cloud-platform",
105603	//     "https://www.googleapis.com/auth/compute"
105604	//   ]
105605	// }
105606
105607}
105608
105609// method id "compute.targetVpnGateways.list":
105610
105611type TargetVpnGatewaysListCall struct {
105612	s            *Service
105613	project      string
105614	region       string
105615	urlParams_   gensupport.URLParams
105616	ifNoneMatch_ string
105617	ctx_         context.Context
105618	header_      http.Header
105619}
105620
105621// List: Retrieves a list of target VPN gateways available to the
105622// specified project and region.
105623func (r *TargetVpnGatewaysService) List(project string, region string) *TargetVpnGatewaysListCall {
105624	c := &TargetVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105625	c.project = project
105626	c.region = region
105627	return c
105628}
105629
105630// Filter sets the optional parameter "filter": A filter expression that
105631// filters resources listed in the response. The expression must specify
105632// the field name, a comparison operator, and the value that you want to
105633// use for filtering. The value must be a string, a number, or a
105634// boolean. The comparison operator must be either =, !=, >, or <.
105635//
105636// For example, if you are filtering Compute Engine instances, you can
105637// exclude instances named example-instance by specifying name !=
105638// example-instance.
105639//
105640// You can also filter nested fields. For example, you could specify
105641// scheduling.automaticRestart = false to include instances only if they
105642// are not scheduled for automatic restarts. You can use filtering on
105643// nested fields to filter based on resource labels.
105644//
105645// To filter on multiple expressions, provide each separate expression
105646// within parentheses. For example, (scheduling.automaticRestart = true)
105647// (cpuPlatform = "Intel Skylake"). By default, each expression is an
105648// AND expression. However, you can include AND and OR expressions
105649// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
105650// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
105651// true).
105652func (c *TargetVpnGatewaysListCall) Filter(filter string) *TargetVpnGatewaysListCall {
105653	c.urlParams_.Set("filter", filter)
105654	return c
105655}
105656
105657// MaxResults sets the optional parameter "maxResults": The maximum
105658// number of results per page that should be returned. If the number of
105659// available results is larger than maxResults, Compute Engine returns a
105660// nextPageToken that can be used to get the next page of results in
105661// subsequent list requests. Acceptable values are 0 to 500, inclusive.
105662// (Default: 500)
105663func (c *TargetVpnGatewaysListCall) MaxResults(maxResults int64) *TargetVpnGatewaysListCall {
105664	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
105665	return c
105666}
105667
105668// OrderBy sets the optional parameter "orderBy": Sorts list results by
105669// a certain order. By default, results are returned in alphanumerical
105670// order based on the resource name.
105671//
105672// You can also sort results in descending order based on the creation
105673// timestamp using orderBy="creationTimestamp desc". This sorts results
105674// based on the creationTimestamp field in reverse chronological order
105675// (newest result first). Use this to sort resources like operations so
105676// that the newest operation is returned first.
105677//
105678// Currently, only sorting by name or creationTimestamp desc is
105679// supported.
105680func (c *TargetVpnGatewaysListCall) OrderBy(orderBy string) *TargetVpnGatewaysListCall {
105681	c.urlParams_.Set("orderBy", orderBy)
105682	return c
105683}
105684
105685// PageToken sets the optional parameter "pageToken": Specifies a page
105686// token to use. Set pageToken to the nextPageToken returned by a
105687// previous list request to get the next page of results.
105688func (c *TargetVpnGatewaysListCall) PageToken(pageToken string) *TargetVpnGatewaysListCall {
105689	c.urlParams_.Set("pageToken", pageToken)
105690	return c
105691}
105692
105693// Fields allows partial responses to be retrieved. See
105694// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105695// for more information.
105696func (c *TargetVpnGatewaysListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysListCall {
105697	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105698	return c
105699}
105700
105701// IfNoneMatch sets the optional parameter which makes the operation
105702// fail if the object's ETag matches the given value. This is useful for
105703// getting updates only after the object has changed since the last
105704// request. Use googleapi.IsNotModified to check whether the response
105705// error from Do is the result of In-None-Match.
105706func (c *TargetVpnGatewaysListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysListCall {
105707	c.ifNoneMatch_ = entityTag
105708	return c
105709}
105710
105711// Context sets the context to be used in this call's Do method. Any
105712// pending HTTP request will be aborted if the provided context is
105713// canceled.
105714func (c *TargetVpnGatewaysListCall) Context(ctx context.Context) *TargetVpnGatewaysListCall {
105715	c.ctx_ = ctx
105716	return c
105717}
105718
105719// Header returns an http.Header that can be modified by the caller to
105720// add HTTP headers to the request.
105721func (c *TargetVpnGatewaysListCall) Header() http.Header {
105722	if c.header_ == nil {
105723		c.header_ = make(http.Header)
105724	}
105725	return c.header_
105726}
105727
105728func (c *TargetVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
105729	reqHeaders := make(http.Header)
105730	for k, v := range c.header_ {
105731		reqHeaders[k] = v
105732	}
105733	reqHeaders.Set("User-Agent", c.s.userAgent())
105734	if c.ifNoneMatch_ != "" {
105735		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105736	}
105737	var body io.Reader = nil
105738	c.urlParams_.Set("alt", alt)
105739	c.urlParams_.Set("prettyPrint", "false")
105740	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways")
105741	urls += "?" + c.urlParams_.Encode()
105742	req, err := http.NewRequest("GET", urls, body)
105743	if err != nil {
105744		return nil, err
105745	}
105746	req.Header = reqHeaders
105747	googleapi.Expand(req.URL, map[string]string{
105748		"project": c.project,
105749		"region":  c.region,
105750	})
105751	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105752}
105753
105754// Do executes the "compute.targetVpnGateways.list" call.
105755// Exactly one of *TargetVpnGatewayList or error will be non-nil. Any
105756// non-2xx status code is an error. Response headers are in either
105757// *TargetVpnGatewayList.ServerResponse.Header or (if a response was
105758// returned at all) in error.(*googleapi.Error).Header. Use
105759// googleapi.IsNotModified to check whether the returned error was
105760// because http.StatusNotModified was returned.
105761func (c *TargetVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayList, error) {
105762	gensupport.SetOptions(c.urlParams_, opts...)
105763	res, err := c.doRequest("json")
105764	if res != nil && res.StatusCode == http.StatusNotModified {
105765		if res.Body != nil {
105766			res.Body.Close()
105767		}
105768		return nil, &googleapi.Error{
105769			Code:   res.StatusCode,
105770			Header: res.Header,
105771		}
105772	}
105773	if err != nil {
105774		return nil, err
105775	}
105776	defer googleapi.CloseBody(res)
105777	if err := googleapi.CheckResponse(res); err != nil {
105778		return nil, err
105779	}
105780	ret := &TargetVpnGatewayList{
105781		ServerResponse: googleapi.ServerResponse{
105782			Header:         res.Header,
105783			HTTPStatusCode: res.StatusCode,
105784		},
105785	}
105786	target := &ret
105787	if err := gensupport.DecodeResponse(target, res); err != nil {
105788		return nil, err
105789	}
105790	return ret, nil
105791	// {
105792	//   "description": "Retrieves a list of target VPN gateways available to the specified project and region.",
105793	//   "httpMethod": "GET",
105794	//   "id": "compute.targetVpnGateways.list",
105795	//   "parameterOrder": [
105796	//     "project",
105797	//     "region"
105798	//   ],
105799	//   "parameters": {
105800	//     "filter": {
105801	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
105802	//       "location": "query",
105803	//       "type": "string"
105804	//     },
105805	//     "maxResults": {
105806	//       "default": "500",
105807	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
105808	//       "format": "uint32",
105809	//       "location": "query",
105810	//       "minimum": "0",
105811	//       "type": "integer"
105812	//     },
105813	//     "orderBy": {
105814	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
105815	//       "location": "query",
105816	//       "type": "string"
105817	//     },
105818	//     "pageToken": {
105819	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
105820	//       "location": "query",
105821	//       "type": "string"
105822	//     },
105823	//     "project": {
105824	//       "description": "Project ID for this request.",
105825	//       "location": "path",
105826	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105827	//       "required": true,
105828	//       "type": "string"
105829	//     },
105830	//     "region": {
105831	//       "description": "Name of the region for this request.",
105832	//       "location": "path",
105833	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105834	//       "required": true,
105835	//       "type": "string"
105836	//     }
105837	//   },
105838	//   "path": "{project}/regions/{region}/targetVpnGateways",
105839	//   "response": {
105840	//     "$ref": "TargetVpnGatewayList"
105841	//   },
105842	//   "scopes": [
105843	//     "https://www.googleapis.com/auth/cloud-platform",
105844	//     "https://www.googleapis.com/auth/compute",
105845	//     "https://www.googleapis.com/auth/compute.readonly"
105846	//   ]
105847	// }
105848
105849}
105850
105851// Pages invokes f for each page of results.
105852// A non-nil error returned from f will halt the iteration.
105853// The provided context supersedes any context provided to the Context method.
105854func (c *TargetVpnGatewaysListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayList) error) error {
105855	c.ctx_ = ctx
105856	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
105857	for {
105858		x, err := c.Do()
105859		if err != nil {
105860			return err
105861		}
105862		if err := f(x); err != nil {
105863			return err
105864		}
105865		if x.NextPageToken == "" {
105866			return nil
105867		}
105868		c.PageToken(x.NextPageToken)
105869	}
105870}
105871
105872// method id "compute.urlMaps.delete":
105873
105874type UrlMapsDeleteCall struct {
105875	s          *Service
105876	project    string
105877	urlMap     string
105878	urlParams_ gensupport.URLParams
105879	ctx_       context.Context
105880	header_    http.Header
105881}
105882
105883// Delete: Deletes the specified UrlMap resource.
105884// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/delete
105885func (r *UrlMapsService) Delete(project string, urlMap string) *UrlMapsDeleteCall {
105886	c := &UrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105887	c.project = project
105888	c.urlMap = urlMap
105889	return c
105890}
105891
105892// RequestId sets the optional parameter "requestId": An optional
105893// request ID to identify requests. Specify a unique request ID so that
105894// if you must retry your request, the server will know to ignore the
105895// request if it has already been completed.
105896//
105897// For example, consider a situation where you make an initial request
105898// and the request times out. If you make the request again with the
105899// same request ID, the server can check if original operation with the
105900// same request ID was received, and if so, will ignore the second
105901// request. This prevents clients from accidentally creating duplicate
105902// commitments.
105903//
105904// The request ID must be a valid UUID with the exception that zero UUID
105905// is not supported (00000000-0000-0000-0000-000000000000).
105906func (c *UrlMapsDeleteCall) RequestId(requestId string) *UrlMapsDeleteCall {
105907	c.urlParams_.Set("requestId", requestId)
105908	return c
105909}
105910
105911// Fields allows partial responses to be retrieved. See
105912// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105913// for more information.
105914func (c *UrlMapsDeleteCall) Fields(s ...googleapi.Field) *UrlMapsDeleteCall {
105915	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105916	return c
105917}
105918
105919// Context sets the context to be used in this call's Do method. Any
105920// pending HTTP request will be aborted if the provided context is
105921// canceled.
105922func (c *UrlMapsDeleteCall) Context(ctx context.Context) *UrlMapsDeleteCall {
105923	c.ctx_ = ctx
105924	return c
105925}
105926
105927// Header returns an http.Header that can be modified by the caller to
105928// add HTTP headers to the request.
105929func (c *UrlMapsDeleteCall) Header() http.Header {
105930	if c.header_ == nil {
105931		c.header_ = make(http.Header)
105932	}
105933	return c.header_
105934}
105935
105936func (c *UrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
105937	reqHeaders := make(http.Header)
105938	for k, v := range c.header_ {
105939		reqHeaders[k] = v
105940	}
105941	reqHeaders.Set("User-Agent", c.s.userAgent())
105942	var body io.Reader = nil
105943	c.urlParams_.Set("alt", alt)
105944	c.urlParams_.Set("prettyPrint", "false")
105945	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
105946	urls += "?" + c.urlParams_.Encode()
105947	req, err := http.NewRequest("DELETE", urls, body)
105948	if err != nil {
105949		return nil, err
105950	}
105951	req.Header = reqHeaders
105952	googleapi.Expand(req.URL, map[string]string{
105953		"project": c.project,
105954		"urlMap":  c.urlMap,
105955	})
105956	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105957}
105958
105959// Do executes the "compute.urlMaps.delete" call.
105960// Exactly one of *Operation or error will be non-nil. Any non-2xx
105961// status code is an error. Response headers are in either
105962// *Operation.ServerResponse.Header or (if a response was returned at
105963// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105964// to check whether the returned error was because
105965// http.StatusNotModified was returned.
105966func (c *UrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105967	gensupport.SetOptions(c.urlParams_, opts...)
105968	res, err := c.doRequest("json")
105969	if res != nil && res.StatusCode == http.StatusNotModified {
105970		if res.Body != nil {
105971			res.Body.Close()
105972		}
105973		return nil, &googleapi.Error{
105974			Code:   res.StatusCode,
105975			Header: res.Header,
105976		}
105977	}
105978	if err != nil {
105979		return nil, err
105980	}
105981	defer googleapi.CloseBody(res)
105982	if err := googleapi.CheckResponse(res); err != nil {
105983		return nil, err
105984	}
105985	ret := &Operation{
105986		ServerResponse: googleapi.ServerResponse{
105987			Header:         res.Header,
105988			HTTPStatusCode: res.StatusCode,
105989		},
105990	}
105991	target := &ret
105992	if err := gensupport.DecodeResponse(target, res); err != nil {
105993		return nil, err
105994	}
105995	return ret, nil
105996	// {
105997	//   "description": "Deletes the specified UrlMap resource.",
105998	//   "httpMethod": "DELETE",
105999	//   "id": "compute.urlMaps.delete",
106000	//   "parameterOrder": [
106001	//     "project",
106002	//     "urlMap"
106003	//   ],
106004	//   "parameters": {
106005	//     "project": {
106006	//       "description": "Project ID for this request.",
106007	//       "location": "path",
106008	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106009	//       "required": true,
106010	//       "type": "string"
106011	//     },
106012	//     "requestId": {
106013	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106014	//       "location": "query",
106015	//       "type": "string"
106016	//     },
106017	//     "urlMap": {
106018	//       "description": "Name of the UrlMap resource to delete.",
106019	//       "location": "path",
106020	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106021	//       "required": true,
106022	//       "type": "string"
106023	//     }
106024	//   },
106025	//   "path": "{project}/global/urlMaps/{urlMap}",
106026	//   "response": {
106027	//     "$ref": "Operation"
106028	//   },
106029	//   "scopes": [
106030	//     "https://www.googleapis.com/auth/cloud-platform",
106031	//     "https://www.googleapis.com/auth/compute"
106032	//   ]
106033	// }
106034
106035}
106036
106037// method id "compute.urlMaps.get":
106038
106039type UrlMapsGetCall struct {
106040	s            *Service
106041	project      string
106042	urlMap       string
106043	urlParams_   gensupport.URLParams
106044	ifNoneMatch_ string
106045	ctx_         context.Context
106046	header_      http.Header
106047}
106048
106049// Get: Returns the specified UrlMap resource. Gets a list of available
106050// URL maps by making a list() request.
106051// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/get
106052func (r *UrlMapsService) Get(project string, urlMap string) *UrlMapsGetCall {
106053	c := &UrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106054	c.project = project
106055	c.urlMap = urlMap
106056	return c
106057}
106058
106059// Fields allows partial responses to be retrieved. See
106060// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106061// for more information.
106062func (c *UrlMapsGetCall) Fields(s ...googleapi.Field) *UrlMapsGetCall {
106063	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106064	return c
106065}
106066
106067// IfNoneMatch sets the optional parameter which makes the operation
106068// fail if the object's ETag matches the given value. This is useful for
106069// getting updates only after the object has changed since the last
106070// request. Use googleapi.IsNotModified to check whether the response
106071// error from Do is the result of In-None-Match.
106072func (c *UrlMapsGetCall) IfNoneMatch(entityTag string) *UrlMapsGetCall {
106073	c.ifNoneMatch_ = entityTag
106074	return c
106075}
106076
106077// Context sets the context to be used in this call's Do method. Any
106078// pending HTTP request will be aborted if the provided context is
106079// canceled.
106080func (c *UrlMapsGetCall) Context(ctx context.Context) *UrlMapsGetCall {
106081	c.ctx_ = ctx
106082	return c
106083}
106084
106085// Header returns an http.Header that can be modified by the caller to
106086// add HTTP headers to the request.
106087func (c *UrlMapsGetCall) Header() http.Header {
106088	if c.header_ == nil {
106089		c.header_ = make(http.Header)
106090	}
106091	return c.header_
106092}
106093
106094func (c *UrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
106095	reqHeaders := make(http.Header)
106096	for k, v := range c.header_ {
106097		reqHeaders[k] = v
106098	}
106099	reqHeaders.Set("User-Agent", c.s.userAgent())
106100	if c.ifNoneMatch_ != "" {
106101		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106102	}
106103	var body io.Reader = nil
106104	c.urlParams_.Set("alt", alt)
106105	c.urlParams_.Set("prettyPrint", "false")
106106	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
106107	urls += "?" + c.urlParams_.Encode()
106108	req, err := http.NewRequest("GET", urls, body)
106109	if err != nil {
106110		return nil, err
106111	}
106112	req.Header = reqHeaders
106113	googleapi.Expand(req.URL, map[string]string{
106114		"project": c.project,
106115		"urlMap":  c.urlMap,
106116	})
106117	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106118}
106119
106120// Do executes the "compute.urlMaps.get" call.
106121// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
106122// code is an error. Response headers are in either
106123// *UrlMap.ServerResponse.Header or (if a response was returned at all)
106124// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
106125// check whether the returned error was because http.StatusNotModified
106126// was returned.
106127func (c *UrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
106128	gensupport.SetOptions(c.urlParams_, opts...)
106129	res, err := c.doRequest("json")
106130	if res != nil && res.StatusCode == http.StatusNotModified {
106131		if res.Body != nil {
106132			res.Body.Close()
106133		}
106134		return nil, &googleapi.Error{
106135			Code:   res.StatusCode,
106136			Header: res.Header,
106137		}
106138	}
106139	if err != nil {
106140		return nil, err
106141	}
106142	defer googleapi.CloseBody(res)
106143	if err := googleapi.CheckResponse(res); err != nil {
106144		return nil, err
106145	}
106146	ret := &UrlMap{
106147		ServerResponse: googleapi.ServerResponse{
106148			Header:         res.Header,
106149			HTTPStatusCode: res.StatusCode,
106150		},
106151	}
106152	target := &ret
106153	if err := gensupport.DecodeResponse(target, res); err != nil {
106154		return nil, err
106155	}
106156	return ret, nil
106157	// {
106158	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
106159	//   "httpMethod": "GET",
106160	//   "id": "compute.urlMaps.get",
106161	//   "parameterOrder": [
106162	//     "project",
106163	//     "urlMap"
106164	//   ],
106165	//   "parameters": {
106166	//     "project": {
106167	//       "description": "Project ID for this request.",
106168	//       "location": "path",
106169	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106170	//       "required": true,
106171	//       "type": "string"
106172	//     },
106173	//     "urlMap": {
106174	//       "description": "Name of the UrlMap resource to return.",
106175	//       "location": "path",
106176	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106177	//       "required": true,
106178	//       "type": "string"
106179	//     }
106180	//   },
106181	//   "path": "{project}/global/urlMaps/{urlMap}",
106182	//   "response": {
106183	//     "$ref": "UrlMap"
106184	//   },
106185	//   "scopes": [
106186	//     "https://www.googleapis.com/auth/cloud-platform",
106187	//     "https://www.googleapis.com/auth/compute",
106188	//     "https://www.googleapis.com/auth/compute.readonly"
106189	//   ]
106190	// }
106191
106192}
106193
106194// method id "compute.urlMaps.insert":
106195
106196type UrlMapsInsertCall struct {
106197	s          *Service
106198	project    string
106199	urlmap     *UrlMap
106200	urlParams_ gensupport.URLParams
106201	ctx_       context.Context
106202	header_    http.Header
106203}
106204
106205// Insert: Creates a UrlMap resource in the specified project using the
106206// data included in the request.
106207// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/insert
106208func (r *UrlMapsService) Insert(project string, urlmap *UrlMap) *UrlMapsInsertCall {
106209	c := &UrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106210	c.project = project
106211	c.urlmap = urlmap
106212	return c
106213}
106214
106215// RequestId sets the optional parameter "requestId": An optional
106216// request ID to identify requests. Specify a unique request ID so that
106217// if you must retry your request, the server will know to ignore the
106218// request if it has already been completed.
106219//
106220// For example, consider a situation where you make an initial request
106221// and the request times out. If you make the request again with the
106222// same request ID, the server can check if original operation with the
106223// same request ID was received, and if so, will ignore the second
106224// request. This prevents clients from accidentally creating duplicate
106225// commitments.
106226//
106227// The request ID must be a valid UUID with the exception that zero UUID
106228// is not supported (00000000-0000-0000-0000-000000000000).
106229func (c *UrlMapsInsertCall) RequestId(requestId string) *UrlMapsInsertCall {
106230	c.urlParams_.Set("requestId", requestId)
106231	return c
106232}
106233
106234// Fields allows partial responses to be retrieved. See
106235// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106236// for more information.
106237func (c *UrlMapsInsertCall) Fields(s ...googleapi.Field) *UrlMapsInsertCall {
106238	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106239	return c
106240}
106241
106242// Context sets the context to be used in this call's Do method. Any
106243// pending HTTP request will be aborted if the provided context is
106244// canceled.
106245func (c *UrlMapsInsertCall) Context(ctx context.Context) *UrlMapsInsertCall {
106246	c.ctx_ = ctx
106247	return c
106248}
106249
106250// Header returns an http.Header that can be modified by the caller to
106251// add HTTP headers to the request.
106252func (c *UrlMapsInsertCall) Header() http.Header {
106253	if c.header_ == nil {
106254		c.header_ = make(http.Header)
106255	}
106256	return c.header_
106257}
106258
106259func (c *UrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
106260	reqHeaders := make(http.Header)
106261	for k, v := range c.header_ {
106262		reqHeaders[k] = v
106263	}
106264	reqHeaders.Set("User-Agent", c.s.userAgent())
106265	var body io.Reader = nil
106266	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
106267	if err != nil {
106268		return nil, err
106269	}
106270	reqHeaders.Set("Content-Type", "application/json")
106271	c.urlParams_.Set("alt", alt)
106272	c.urlParams_.Set("prettyPrint", "false")
106273	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps")
106274	urls += "?" + c.urlParams_.Encode()
106275	req, err := http.NewRequest("POST", urls, body)
106276	if err != nil {
106277		return nil, err
106278	}
106279	req.Header = reqHeaders
106280	googleapi.Expand(req.URL, map[string]string{
106281		"project": c.project,
106282	})
106283	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106284}
106285
106286// Do executes the "compute.urlMaps.insert" call.
106287// Exactly one of *Operation or error will be non-nil. Any non-2xx
106288// status code is an error. Response headers are in either
106289// *Operation.ServerResponse.Header or (if a response was returned at
106290// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106291// to check whether the returned error was because
106292// http.StatusNotModified was returned.
106293func (c *UrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106294	gensupport.SetOptions(c.urlParams_, opts...)
106295	res, err := c.doRequest("json")
106296	if res != nil && res.StatusCode == http.StatusNotModified {
106297		if res.Body != nil {
106298			res.Body.Close()
106299		}
106300		return nil, &googleapi.Error{
106301			Code:   res.StatusCode,
106302			Header: res.Header,
106303		}
106304	}
106305	if err != nil {
106306		return nil, err
106307	}
106308	defer googleapi.CloseBody(res)
106309	if err := googleapi.CheckResponse(res); err != nil {
106310		return nil, err
106311	}
106312	ret := &Operation{
106313		ServerResponse: googleapi.ServerResponse{
106314			Header:         res.Header,
106315			HTTPStatusCode: res.StatusCode,
106316		},
106317	}
106318	target := &ret
106319	if err := gensupport.DecodeResponse(target, res); err != nil {
106320		return nil, err
106321	}
106322	return ret, nil
106323	// {
106324	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
106325	//   "httpMethod": "POST",
106326	//   "id": "compute.urlMaps.insert",
106327	//   "parameterOrder": [
106328	//     "project"
106329	//   ],
106330	//   "parameters": {
106331	//     "project": {
106332	//       "description": "Project ID for this request.",
106333	//       "location": "path",
106334	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106335	//       "required": true,
106336	//       "type": "string"
106337	//     },
106338	//     "requestId": {
106339	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106340	//       "location": "query",
106341	//       "type": "string"
106342	//     }
106343	//   },
106344	//   "path": "{project}/global/urlMaps",
106345	//   "request": {
106346	//     "$ref": "UrlMap"
106347	//   },
106348	//   "response": {
106349	//     "$ref": "Operation"
106350	//   },
106351	//   "scopes": [
106352	//     "https://www.googleapis.com/auth/cloud-platform",
106353	//     "https://www.googleapis.com/auth/compute"
106354	//   ]
106355	// }
106356
106357}
106358
106359// method id "compute.urlMaps.invalidateCache":
106360
106361type UrlMapsInvalidateCacheCall struct {
106362	s                     *Service
106363	project               string
106364	urlMap                string
106365	cacheinvalidationrule *CacheInvalidationRule
106366	urlParams_            gensupport.URLParams
106367	ctx_                  context.Context
106368	header_               http.Header
106369}
106370
106371// InvalidateCache: Initiates a cache invalidation operation,
106372// invalidating the specified path, scoped to the specified UrlMap.
106373func (r *UrlMapsService) InvalidateCache(project string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *UrlMapsInvalidateCacheCall {
106374	c := &UrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106375	c.project = project
106376	c.urlMap = urlMap
106377	c.cacheinvalidationrule = cacheinvalidationrule
106378	return c
106379}
106380
106381// RequestId sets the optional parameter "requestId": An optional
106382// request ID to identify requests. Specify a unique request ID so that
106383// if you must retry your request, the server will know to ignore the
106384// request if it has already been completed.
106385//
106386// For example, consider a situation where you make an initial request
106387// and the request times out. If you make the request again with the
106388// same request ID, the server can check if original operation with the
106389// same request ID was received, and if so, will ignore the second
106390// request. This prevents clients from accidentally creating duplicate
106391// commitments.
106392//
106393// The request ID must be a valid UUID with the exception that zero UUID
106394// is not supported (00000000-0000-0000-0000-000000000000).
106395func (c *UrlMapsInvalidateCacheCall) RequestId(requestId string) *UrlMapsInvalidateCacheCall {
106396	c.urlParams_.Set("requestId", requestId)
106397	return c
106398}
106399
106400// Fields allows partial responses to be retrieved. See
106401// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106402// for more information.
106403func (c *UrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *UrlMapsInvalidateCacheCall {
106404	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106405	return c
106406}
106407
106408// Context sets the context to be used in this call's Do method. Any
106409// pending HTTP request will be aborted if the provided context is
106410// canceled.
106411func (c *UrlMapsInvalidateCacheCall) Context(ctx context.Context) *UrlMapsInvalidateCacheCall {
106412	c.ctx_ = ctx
106413	return c
106414}
106415
106416// Header returns an http.Header that can be modified by the caller to
106417// add HTTP headers to the request.
106418func (c *UrlMapsInvalidateCacheCall) Header() http.Header {
106419	if c.header_ == nil {
106420		c.header_ = make(http.Header)
106421	}
106422	return c.header_
106423}
106424
106425func (c *UrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
106426	reqHeaders := make(http.Header)
106427	for k, v := range c.header_ {
106428		reqHeaders[k] = v
106429	}
106430	reqHeaders.Set("User-Agent", c.s.userAgent())
106431	var body io.Reader = nil
106432	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
106433	if err != nil {
106434		return nil, err
106435	}
106436	reqHeaders.Set("Content-Type", "application/json")
106437	c.urlParams_.Set("alt", alt)
106438	c.urlParams_.Set("prettyPrint", "false")
106439	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}/invalidateCache")
106440	urls += "?" + c.urlParams_.Encode()
106441	req, err := http.NewRequest("POST", urls, body)
106442	if err != nil {
106443		return nil, err
106444	}
106445	req.Header = reqHeaders
106446	googleapi.Expand(req.URL, map[string]string{
106447		"project": c.project,
106448		"urlMap":  c.urlMap,
106449	})
106450	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106451}
106452
106453// Do executes the "compute.urlMaps.invalidateCache" call.
106454// Exactly one of *Operation or error will be non-nil. Any non-2xx
106455// status code is an error. Response headers are in either
106456// *Operation.ServerResponse.Header or (if a response was returned at
106457// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106458// to check whether the returned error was because
106459// http.StatusNotModified was returned.
106460func (c *UrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106461	gensupport.SetOptions(c.urlParams_, opts...)
106462	res, err := c.doRequest("json")
106463	if res != nil && res.StatusCode == http.StatusNotModified {
106464		if res.Body != nil {
106465			res.Body.Close()
106466		}
106467		return nil, &googleapi.Error{
106468			Code:   res.StatusCode,
106469			Header: res.Header,
106470		}
106471	}
106472	if err != nil {
106473		return nil, err
106474	}
106475	defer googleapi.CloseBody(res)
106476	if err := googleapi.CheckResponse(res); err != nil {
106477		return nil, err
106478	}
106479	ret := &Operation{
106480		ServerResponse: googleapi.ServerResponse{
106481			Header:         res.Header,
106482			HTTPStatusCode: res.StatusCode,
106483		},
106484	}
106485	target := &ret
106486	if err := gensupport.DecodeResponse(target, res); err != nil {
106487		return nil, err
106488	}
106489	return ret, nil
106490	// {
106491	//   "description": "Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap.",
106492	//   "httpMethod": "POST",
106493	//   "id": "compute.urlMaps.invalidateCache",
106494	//   "parameterOrder": [
106495	//     "project",
106496	//     "urlMap"
106497	//   ],
106498	//   "parameters": {
106499	//     "project": {
106500	//       "description": "Project ID for this request.",
106501	//       "location": "path",
106502	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106503	//       "required": true,
106504	//       "type": "string"
106505	//     },
106506	//     "requestId": {
106507	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106508	//       "location": "query",
106509	//       "type": "string"
106510	//     },
106511	//     "urlMap": {
106512	//       "description": "Name of the UrlMap scoping this request.",
106513	//       "location": "path",
106514	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106515	//       "required": true,
106516	//       "type": "string"
106517	//     }
106518	//   },
106519	//   "path": "{project}/global/urlMaps/{urlMap}/invalidateCache",
106520	//   "request": {
106521	//     "$ref": "CacheInvalidationRule"
106522	//   },
106523	//   "response": {
106524	//     "$ref": "Operation"
106525	//   },
106526	//   "scopes": [
106527	//     "https://www.googleapis.com/auth/cloud-platform",
106528	//     "https://www.googleapis.com/auth/compute"
106529	//   ]
106530	// }
106531
106532}
106533
106534// method id "compute.urlMaps.list":
106535
106536type UrlMapsListCall struct {
106537	s            *Service
106538	project      string
106539	urlParams_   gensupport.URLParams
106540	ifNoneMatch_ string
106541	ctx_         context.Context
106542	header_      http.Header
106543}
106544
106545// List: Retrieves the list of UrlMap resources available to the
106546// specified project.
106547// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/list
106548func (r *UrlMapsService) List(project string) *UrlMapsListCall {
106549	c := &UrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106550	c.project = project
106551	return c
106552}
106553
106554// Filter sets the optional parameter "filter": A filter expression that
106555// filters resources listed in the response. The expression must specify
106556// the field name, a comparison operator, and the value that you want to
106557// use for filtering. The value must be a string, a number, or a
106558// boolean. The comparison operator must be either =, !=, >, or <.
106559//
106560// For example, if you are filtering Compute Engine instances, you can
106561// exclude instances named example-instance by specifying name !=
106562// example-instance.
106563//
106564// You can also filter nested fields. For example, you could specify
106565// scheduling.automaticRestart = false to include instances only if they
106566// are not scheduled for automatic restarts. You can use filtering on
106567// nested fields to filter based on resource labels.
106568//
106569// To filter on multiple expressions, provide each separate expression
106570// within parentheses. For example, (scheduling.automaticRestart = true)
106571// (cpuPlatform = "Intel Skylake"). By default, each expression is an
106572// AND expression. However, you can include AND and OR expressions
106573// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
106574// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
106575// true).
106576func (c *UrlMapsListCall) Filter(filter string) *UrlMapsListCall {
106577	c.urlParams_.Set("filter", filter)
106578	return c
106579}
106580
106581// MaxResults sets the optional parameter "maxResults": The maximum
106582// number of results per page that should be returned. If the number of
106583// available results is larger than maxResults, Compute Engine returns a
106584// nextPageToken that can be used to get the next page of results in
106585// subsequent list requests. Acceptable values are 0 to 500, inclusive.
106586// (Default: 500)
106587func (c *UrlMapsListCall) MaxResults(maxResults int64) *UrlMapsListCall {
106588	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
106589	return c
106590}
106591
106592// OrderBy sets the optional parameter "orderBy": Sorts list results by
106593// a certain order. By default, results are returned in alphanumerical
106594// order based on the resource name.
106595//
106596// You can also sort results in descending order based on the creation
106597// timestamp using orderBy="creationTimestamp desc". This sorts results
106598// based on the creationTimestamp field in reverse chronological order
106599// (newest result first). Use this to sort resources like operations so
106600// that the newest operation is returned first.
106601//
106602// Currently, only sorting by name or creationTimestamp desc is
106603// supported.
106604func (c *UrlMapsListCall) OrderBy(orderBy string) *UrlMapsListCall {
106605	c.urlParams_.Set("orderBy", orderBy)
106606	return c
106607}
106608
106609// PageToken sets the optional parameter "pageToken": Specifies a page
106610// token to use. Set pageToken to the nextPageToken returned by a
106611// previous list request to get the next page of results.
106612func (c *UrlMapsListCall) PageToken(pageToken string) *UrlMapsListCall {
106613	c.urlParams_.Set("pageToken", pageToken)
106614	return c
106615}
106616
106617// Fields allows partial responses to be retrieved. See
106618// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106619// for more information.
106620func (c *UrlMapsListCall) Fields(s ...googleapi.Field) *UrlMapsListCall {
106621	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106622	return c
106623}
106624
106625// IfNoneMatch sets the optional parameter which makes the operation
106626// fail if the object's ETag matches the given value. This is useful for
106627// getting updates only after the object has changed since the last
106628// request. Use googleapi.IsNotModified to check whether the response
106629// error from Do is the result of In-None-Match.
106630func (c *UrlMapsListCall) IfNoneMatch(entityTag string) *UrlMapsListCall {
106631	c.ifNoneMatch_ = entityTag
106632	return c
106633}
106634
106635// Context sets the context to be used in this call's Do method. Any
106636// pending HTTP request will be aborted if the provided context is
106637// canceled.
106638func (c *UrlMapsListCall) Context(ctx context.Context) *UrlMapsListCall {
106639	c.ctx_ = ctx
106640	return c
106641}
106642
106643// Header returns an http.Header that can be modified by the caller to
106644// add HTTP headers to the request.
106645func (c *UrlMapsListCall) Header() http.Header {
106646	if c.header_ == nil {
106647		c.header_ = make(http.Header)
106648	}
106649	return c.header_
106650}
106651
106652func (c *UrlMapsListCall) doRequest(alt string) (*http.Response, error) {
106653	reqHeaders := make(http.Header)
106654	for k, v := range c.header_ {
106655		reqHeaders[k] = v
106656	}
106657	reqHeaders.Set("User-Agent", c.s.userAgent())
106658	if c.ifNoneMatch_ != "" {
106659		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106660	}
106661	var body io.Reader = nil
106662	c.urlParams_.Set("alt", alt)
106663	c.urlParams_.Set("prettyPrint", "false")
106664	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps")
106665	urls += "?" + c.urlParams_.Encode()
106666	req, err := http.NewRequest("GET", urls, body)
106667	if err != nil {
106668		return nil, err
106669	}
106670	req.Header = reqHeaders
106671	googleapi.Expand(req.URL, map[string]string{
106672		"project": c.project,
106673	})
106674	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106675}
106676
106677// Do executes the "compute.urlMaps.list" call.
106678// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
106679// status code is an error. Response headers are in either
106680// *UrlMapList.ServerResponse.Header or (if a response was returned at
106681// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106682// to check whether the returned error was because
106683// http.StatusNotModified was returned.
106684func (c *UrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
106685	gensupport.SetOptions(c.urlParams_, opts...)
106686	res, err := c.doRequest("json")
106687	if res != nil && res.StatusCode == http.StatusNotModified {
106688		if res.Body != nil {
106689			res.Body.Close()
106690		}
106691		return nil, &googleapi.Error{
106692			Code:   res.StatusCode,
106693			Header: res.Header,
106694		}
106695	}
106696	if err != nil {
106697		return nil, err
106698	}
106699	defer googleapi.CloseBody(res)
106700	if err := googleapi.CheckResponse(res); err != nil {
106701		return nil, err
106702	}
106703	ret := &UrlMapList{
106704		ServerResponse: googleapi.ServerResponse{
106705			Header:         res.Header,
106706			HTTPStatusCode: res.StatusCode,
106707		},
106708	}
106709	target := &ret
106710	if err := gensupport.DecodeResponse(target, res); err != nil {
106711		return nil, err
106712	}
106713	return ret, nil
106714	// {
106715	//   "description": "Retrieves the list of UrlMap resources available to the specified project.",
106716	//   "httpMethod": "GET",
106717	//   "id": "compute.urlMaps.list",
106718	//   "parameterOrder": [
106719	//     "project"
106720	//   ],
106721	//   "parameters": {
106722	//     "filter": {
106723	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
106724	//       "location": "query",
106725	//       "type": "string"
106726	//     },
106727	//     "maxResults": {
106728	//       "default": "500",
106729	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
106730	//       "format": "uint32",
106731	//       "location": "query",
106732	//       "minimum": "0",
106733	//       "type": "integer"
106734	//     },
106735	//     "orderBy": {
106736	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
106737	//       "location": "query",
106738	//       "type": "string"
106739	//     },
106740	//     "pageToken": {
106741	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
106742	//       "location": "query",
106743	//       "type": "string"
106744	//     },
106745	//     "project": {
106746	//       "description": "Project ID for this request.",
106747	//       "location": "path",
106748	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106749	//       "required": true,
106750	//       "type": "string"
106751	//     }
106752	//   },
106753	//   "path": "{project}/global/urlMaps",
106754	//   "response": {
106755	//     "$ref": "UrlMapList"
106756	//   },
106757	//   "scopes": [
106758	//     "https://www.googleapis.com/auth/cloud-platform",
106759	//     "https://www.googleapis.com/auth/compute",
106760	//     "https://www.googleapis.com/auth/compute.readonly"
106761	//   ]
106762	// }
106763
106764}
106765
106766// Pages invokes f for each page of results.
106767// A non-nil error returned from f will halt the iteration.
106768// The provided context supersedes any context provided to the Context method.
106769func (c *UrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
106770	c.ctx_ = ctx
106771	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
106772	for {
106773		x, err := c.Do()
106774		if err != nil {
106775			return err
106776		}
106777		if err := f(x); err != nil {
106778			return err
106779		}
106780		if x.NextPageToken == "" {
106781			return nil
106782		}
106783		c.PageToken(x.NextPageToken)
106784	}
106785}
106786
106787// method id "compute.urlMaps.patch":
106788
106789type UrlMapsPatchCall struct {
106790	s          *Service
106791	project    string
106792	urlMap     string
106793	urlmap     *UrlMap
106794	urlParams_ gensupport.URLParams
106795	ctx_       context.Context
106796	header_    http.Header
106797}
106798
106799// Patch: Patches the specified UrlMap resource with the data included
106800// in the request. This method supports PATCH semantics and uses the
106801// JSON merge patch format and processing rules.
106802// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/patch
106803func (r *UrlMapsService) Patch(project string, urlMap string, urlmap *UrlMap) *UrlMapsPatchCall {
106804	c := &UrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106805	c.project = project
106806	c.urlMap = urlMap
106807	c.urlmap = urlmap
106808	return c
106809}
106810
106811// RequestId sets the optional parameter "requestId": An optional
106812// request ID to identify requests. Specify a unique request ID so that
106813// if you must retry your request, the server will know to ignore the
106814// request if it has already been completed.
106815//
106816// For example, consider a situation where you make an initial request
106817// and the request times out. If you make the request again with the
106818// same request ID, the server can check if original operation with the
106819// same request ID was received, and if so, will ignore the second
106820// request. This prevents clients from accidentally creating duplicate
106821// commitments.
106822//
106823// The request ID must be a valid UUID with the exception that zero UUID
106824// is not supported (00000000-0000-0000-0000-000000000000).
106825func (c *UrlMapsPatchCall) RequestId(requestId string) *UrlMapsPatchCall {
106826	c.urlParams_.Set("requestId", requestId)
106827	return c
106828}
106829
106830// Fields allows partial responses to be retrieved. See
106831// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106832// for more information.
106833func (c *UrlMapsPatchCall) Fields(s ...googleapi.Field) *UrlMapsPatchCall {
106834	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106835	return c
106836}
106837
106838// Context sets the context to be used in this call's Do method. Any
106839// pending HTTP request will be aborted if the provided context is
106840// canceled.
106841func (c *UrlMapsPatchCall) Context(ctx context.Context) *UrlMapsPatchCall {
106842	c.ctx_ = ctx
106843	return c
106844}
106845
106846// Header returns an http.Header that can be modified by the caller to
106847// add HTTP headers to the request.
106848func (c *UrlMapsPatchCall) Header() http.Header {
106849	if c.header_ == nil {
106850		c.header_ = make(http.Header)
106851	}
106852	return c.header_
106853}
106854
106855func (c *UrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
106856	reqHeaders := make(http.Header)
106857	for k, v := range c.header_ {
106858		reqHeaders[k] = v
106859	}
106860	reqHeaders.Set("User-Agent", c.s.userAgent())
106861	var body io.Reader = nil
106862	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
106863	if err != nil {
106864		return nil, err
106865	}
106866	reqHeaders.Set("Content-Type", "application/json")
106867	c.urlParams_.Set("alt", alt)
106868	c.urlParams_.Set("prettyPrint", "false")
106869	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
106870	urls += "?" + c.urlParams_.Encode()
106871	req, err := http.NewRequest("PATCH", urls, body)
106872	if err != nil {
106873		return nil, err
106874	}
106875	req.Header = reqHeaders
106876	googleapi.Expand(req.URL, map[string]string{
106877		"project": c.project,
106878		"urlMap":  c.urlMap,
106879	})
106880	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106881}
106882
106883// Do executes the "compute.urlMaps.patch" call.
106884// Exactly one of *Operation or error will be non-nil. Any non-2xx
106885// status code is an error. Response headers are in either
106886// *Operation.ServerResponse.Header or (if a response was returned at
106887// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106888// to check whether the returned error was because
106889// http.StatusNotModified was returned.
106890func (c *UrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106891	gensupport.SetOptions(c.urlParams_, opts...)
106892	res, err := c.doRequest("json")
106893	if res != nil && res.StatusCode == http.StatusNotModified {
106894		if res.Body != nil {
106895			res.Body.Close()
106896		}
106897		return nil, &googleapi.Error{
106898			Code:   res.StatusCode,
106899			Header: res.Header,
106900		}
106901	}
106902	if err != nil {
106903		return nil, err
106904	}
106905	defer googleapi.CloseBody(res)
106906	if err := googleapi.CheckResponse(res); err != nil {
106907		return nil, err
106908	}
106909	ret := &Operation{
106910		ServerResponse: googleapi.ServerResponse{
106911			Header:         res.Header,
106912			HTTPStatusCode: res.StatusCode,
106913		},
106914	}
106915	target := &ret
106916	if err := gensupport.DecodeResponse(target, res); err != nil {
106917		return nil, err
106918	}
106919	return ret, nil
106920	// {
106921	//   "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.",
106922	//   "httpMethod": "PATCH",
106923	//   "id": "compute.urlMaps.patch",
106924	//   "parameterOrder": [
106925	//     "project",
106926	//     "urlMap"
106927	//   ],
106928	//   "parameters": {
106929	//     "project": {
106930	//       "description": "Project ID for this request.",
106931	//       "location": "path",
106932	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106933	//       "required": true,
106934	//       "type": "string"
106935	//     },
106936	//     "requestId": {
106937	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106938	//       "location": "query",
106939	//       "type": "string"
106940	//     },
106941	//     "urlMap": {
106942	//       "description": "Name of the UrlMap resource to patch.",
106943	//       "location": "path",
106944	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106945	//       "required": true,
106946	//       "type": "string"
106947	//     }
106948	//   },
106949	//   "path": "{project}/global/urlMaps/{urlMap}",
106950	//   "request": {
106951	//     "$ref": "UrlMap"
106952	//   },
106953	//   "response": {
106954	//     "$ref": "Operation"
106955	//   },
106956	//   "scopes": [
106957	//     "https://www.googleapis.com/auth/cloud-platform",
106958	//     "https://www.googleapis.com/auth/compute"
106959	//   ]
106960	// }
106961
106962}
106963
106964// method id "compute.urlMaps.update":
106965
106966type UrlMapsUpdateCall struct {
106967	s          *Service
106968	project    string
106969	urlMap     string
106970	urlmap     *UrlMap
106971	urlParams_ gensupport.URLParams
106972	ctx_       context.Context
106973	header_    http.Header
106974}
106975
106976// Update: Updates the specified UrlMap resource with the data included
106977// in the request.
106978// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/update
106979func (r *UrlMapsService) Update(project string, urlMap string, urlmap *UrlMap) *UrlMapsUpdateCall {
106980	c := &UrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106981	c.project = project
106982	c.urlMap = urlMap
106983	c.urlmap = urlmap
106984	return c
106985}
106986
106987// RequestId sets the optional parameter "requestId": An optional
106988// request ID to identify requests. Specify a unique request ID so that
106989// if you must retry your request, the server will know to ignore the
106990// request if it has already been completed.
106991//
106992// For example, consider a situation where you make an initial request
106993// and the request times out. If you make the request again with the
106994// same request ID, the server can check if original operation with the
106995// same request ID was received, and if so, will ignore the second
106996// request. This prevents clients from accidentally creating duplicate
106997// commitments.
106998//
106999// The request ID must be a valid UUID with the exception that zero UUID
107000// is not supported (00000000-0000-0000-0000-000000000000).
107001func (c *UrlMapsUpdateCall) RequestId(requestId string) *UrlMapsUpdateCall {
107002	c.urlParams_.Set("requestId", requestId)
107003	return c
107004}
107005
107006// Fields allows partial responses to be retrieved. See
107007// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107008// for more information.
107009func (c *UrlMapsUpdateCall) Fields(s ...googleapi.Field) *UrlMapsUpdateCall {
107010	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107011	return c
107012}
107013
107014// Context sets the context to be used in this call's Do method. Any
107015// pending HTTP request will be aborted if the provided context is
107016// canceled.
107017func (c *UrlMapsUpdateCall) Context(ctx context.Context) *UrlMapsUpdateCall {
107018	c.ctx_ = ctx
107019	return c
107020}
107021
107022// Header returns an http.Header that can be modified by the caller to
107023// add HTTP headers to the request.
107024func (c *UrlMapsUpdateCall) Header() http.Header {
107025	if c.header_ == nil {
107026		c.header_ = make(http.Header)
107027	}
107028	return c.header_
107029}
107030
107031func (c *UrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
107032	reqHeaders := make(http.Header)
107033	for k, v := range c.header_ {
107034		reqHeaders[k] = v
107035	}
107036	reqHeaders.Set("User-Agent", c.s.userAgent())
107037	var body io.Reader = nil
107038	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
107039	if err != nil {
107040		return nil, err
107041	}
107042	reqHeaders.Set("Content-Type", "application/json")
107043	c.urlParams_.Set("alt", alt)
107044	c.urlParams_.Set("prettyPrint", "false")
107045	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
107046	urls += "?" + c.urlParams_.Encode()
107047	req, err := http.NewRequest("PUT", urls, body)
107048	if err != nil {
107049		return nil, err
107050	}
107051	req.Header = reqHeaders
107052	googleapi.Expand(req.URL, map[string]string{
107053		"project": c.project,
107054		"urlMap":  c.urlMap,
107055	})
107056	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107057}
107058
107059// Do executes the "compute.urlMaps.update" call.
107060// Exactly one of *Operation or error will be non-nil. Any non-2xx
107061// status code is an error. Response headers are in either
107062// *Operation.ServerResponse.Header or (if a response was returned at
107063// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107064// to check whether the returned error was because
107065// http.StatusNotModified was returned.
107066func (c *UrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107067	gensupport.SetOptions(c.urlParams_, opts...)
107068	res, err := c.doRequest("json")
107069	if res != nil && res.StatusCode == http.StatusNotModified {
107070		if res.Body != nil {
107071			res.Body.Close()
107072		}
107073		return nil, &googleapi.Error{
107074			Code:   res.StatusCode,
107075			Header: res.Header,
107076		}
107077	}
107078	if err != nil {
107079		return nil, err
107080	}
107081	defer googleapi.CloseBody(res)
107082	if err := googleapi.CheckResponse(res); err != nil {
107083		return nil, err
107084	}
107085	ret := &Operation{
107086		ServerResponse: googleapi.ServerResponse{
107087			Header:         res.Header,
107088			HTTPStatusCode: res.StatusCode,
107089		},
107090	}
107091	target := &ret
107092	if err := gensupport.DecodeResponse(target, res); err != nil {
107093		return nil, err
107094	}
107095	return ret, nil
107096	// {
107097	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
107098	//   "httpMethod": "PUT",
107099	//   "id": "compute.urlMaps.update",
107100	//   "parameterOrder": [
107101	//     "project",
107102	//     "urlMap"
107103	//   ],
107104	//   "parameters": {
107105	//     "project": {
107106	//       "description": "Project ID for this request.",
107107	//       "location": "path",
107108	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107109	//       "required": true,
107110	//       "type": "string"
107111	//     },
107112	//     "requestId": {
107113	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107114	//       "location": "query",
107115	//       "type": "string"
107116	//     },
107117	//     "urlMap": {
107118	//       "description": "Name of the UrlMap resource to update.",
107119	//       "location": "path",
107120	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107121	//       "required": true,
107122	//       "type": "string"
107123	//     }
107124	//   },
107125	//   "path": "{project}/global/urlMaps/{urlMap}",
107126	//   "request": {
107127	//     "$ref": "UrlMap"
107128	//   },
107129	//   "response": {
107130	//     "$ref": "Operation"
107131	//   },
107132	//   "scopes": [
107133	//     "https://www.googleapis.com/auth/cloud-platform",
107134	//     "https://www.googleapis.com/auth/compute"
107135	//   ]
107136	// }
107137
107138}
107139
107140// method id "compute.urlMaps.validate":
107141
107142type UrlMapsValidateCall struct {
107143	s                      *Service
107144	project                string
107145	urlMap                 string
107146	urlmapsvalidaterequest *UrlMapsValidateRequest
107147	urlParams_             gensupport.URLParams
107148	ctx_                   context.Context
107149	header_                http.Header
107150}
107151
107152// Validate: Runs static validation for the UrlMap. In particular, the
107153// tests of the provided UrlMap will be run. Calling this method does
107154// NOT create the UrlMap.
107155// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/validate
107156func (r *UrlMapsService) Validate(project string, urlMap string, urlmapsvalidaterequest *UrlMapsValidateRequest) *UrlMapsValidateCall {
107157	c := &UrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107158	c.project = project
107159	c.urlMap = urlMap
107160	c.urlmapsvalidaterequest = urlmapsvalidaterequest
107161	return c
107162}
107163
107164// Fields allows partial responses to be retrieved. See
107165// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107166// for more information.
107167func (c *UrlMapsValidateCall) Fields(s ...googleapi.Field) *UrlMapsValidateCall {
107168	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107169	return c
107170}
107171
107172// Context sets the context to be used in this call's Do method. Any
107173// pending HTTP request will be aborted if the provided context is
107174// canceled.
107175func (c *UrlMapsValidateCall) Context(ctx context.Context) *UrlMapsValidateCall {
107176	c.ctx_ = ctx
107177	return c
107178}
107179
107180// Header returns an http.Header that can be modified by the caller to
107181// add HTTP headers to the request.
107182func (c *UrlMapsValidateCall) Header() http.Header {
107183	if c.header_ == nil {
107184		c.header_ = make(http.Header)
107185	}
107186	return c.header_
107187}
107188
107189func (c *UrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
107190	reqHeaders := make(http.Header)
107191	for k, v := range c.header_ {
107192		reqHeaders[k] = v
107193	}
107194	reqHeaders.Set("User-Agent", c.s.userAgent())
107195	var body io.Reader = nil
107196	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapsvalidaterequest)
107197	if err != nil {
107198		return nil, err
107199	}
107200	reqHeaders.Set("Content-Type", "application/json")
107201	c.urlParams_.Set("alt", alt)
107202	c.urlParams_.Set("prettyPrint", "false")
107203	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}/validate")
107204	urls += "?" + c.urlParams_.Encode()
107205	req, err := http.NewRequest("POST", urls, body)
107206	if err != nil {
107207		return nil, err
107208	}
107209	req.Header = reqHeaders
107210	googleapi.Expand(req.URL, map[string]string{
107211		"project": c.project,
107212		"urlMap":  c.urlMap,
107213	})
107214	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107215}
107216
107217// Do executes the "compute.urlMaps.validate" call.
107218// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
107219// non-2xx status code is an error. Response headers are in either
107220// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
107221// returned at all) in error.(*googleapi.Error).Header. Use
107222// googleapi.IsNotModified to check whether the returned error was
107223// because http.StatusNotModified was returned.
107224func (c *UrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
107225	gensupport.SetOptions(c.urlParams_, opts...)
107226	res, err := c.doRequest("json")
107227	if res != nil && res.StatusCode == http.StatusNotModified {
107228		if res.Body != nil {
107229			res.Body.Close()
107230		}
107231		return nil, &googleapi.Error{
107232			Code:   res.StatusCode,
107233			Header: res.Header,
107234		}
107235	}
107236	if err != nil {
107237		return nil, err
107238	}
107239	defer googleapi.CloseBody(res)
107240	if err := googleapi.CheckResponse(res); err != nil {
107241		return nil, err
107242	}
107243	ret := &UrlMapsValidateResponse{
107244		ServerResponse: googleapi.ServerResponse{
107245			Header:         res.Header,
107246			HTTPStatusCode: res.StatusCode,
107247		},
107248	}
107249	target := &ret
107250	if err := gensupport.DecodeResponse(target, res); err != nil {
107251		return nil, err
107252	}
107253	return ret, nil
107254	// {
107255	//   "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.",
107256	//   "httpMethod": "POST",
107257	//   "id": "compute.urlMaps.validate",
107258	//   "parameterOrder": [
107259	//     "project",
107260	//     "urlMap"
107261	//   ],
107262	//   "parameters": {
107263	//     "project": {
107264	//       "description": "Project ID for this request.",
107265	//       "location": "path",
107266	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107267	//       "required": true,
107268	//       "type": "string"
107269	//     },
107270	//     "urlMap": {
107271	//       "description": "Name of the UrlMap resource to be validated as.",
107272	//       "location": "path",
107273	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107274	//       "required": true,
107275	//       "type": "string"
107276	//     }
107277	//   },
107278	//   "path": "{project}/global/urlMaps/{urlMap}/validate",
107279	//   "request": {
107280	//     "$ref": "UrlMapsValidateRequest"
107281	//   },
107282	//   "response": {
107283	//     "$ref": "UrlMapsValidateResponse"
107284	//   },
107285	//   "scopes": [
107286	//     "https://www.googleapis.com/auth/cloud-platform",
107287	//     "https://www.googleapis.com/auth/compute"
107288	//   ]
107289	// }
107290
107291}
107292
107293// method id "compute.vpnTunnels.aggregatedList":
107294
107295type VpnTunnelsAggregatedListCall struct {
107296	s            *Service
107297	project      string
107298	urlParams_   gensupport.URLParams
107299	ifNoneMatch_ string
107300	ctx_         context.Context
107301	header_      http.Header
107302}
107303
107304// AggregatedList: Retrieves an aggregated list of VPN tunnels.
107305func (r *VpnTunnelsService) AggregatedList(project string) *VpnTunnelsAggregatedListCall {
107306	c := &VpnTunnelsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107307	c.project = project
107308	return c
107309}
107310
107311// Filter sets the optional parameter "filter": A filter expression that
107312// filters resources listed in the response. The expression must specify
107313// the field name, a comparison operator, and the value that you want to
107314// use for filtering. The value must be a string, a number, or a
107315// boolean. The comparison operator must be either =, !=, >, or <.
107316//
107317// For example, if you are filtering Compute Engine instances, you can
107318// exclude instances named example-instance by specifying name !=
107319// example-instance.
107320//
107321// You can also filter nested fields. For example, you could specify
107322// scheduling.automaticRestart = false to include instances only if they
107323// are not scheduled for automatic restarts. You can use filtering on
107324// nested fields to filter based on resource labels.
107325//
107326// To filter on multiple expressions, provide each separate expression
107327// within parentheses. For example, (scheduling.automaticRestart = true)
107328// (cpuPlatform = "Intel Skylake"). By default, each expression is an
107329// AND expression. However, you can include AND and OR expressions
107330// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
107331// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
107332// true).
107333func (c *VpnTunnelsAggregatedListCall) Filter(filter string) *VpnTunnelsAggregatedListCall {
107334	c.urlParams_.Set("filter", filter)
107335	return c
107336}
107337
107338// MaxResults sets the optional parameter "maxResults": The maximum
107339// number of results per page that should be returned. If the number of
107340// available results is larger than maxResults, Compute Engine returns a
107341// nextPageToken that can be used to get the next page of results in
107342// subsequent list requests. Acceptable values are 0 to 500, inclusive.
107343// (Default: 500)
107344func (c *VpnTunnelsAggregatedListCall) MaxResults(maxResults int64) *VpnTunnelsAggregatedListCall {
107345	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
107346	return c
107347}
107348
107349// OrderBy sets the optional parameter "orderBy": Sorts list results by
107350// a certain order. By default, results are returned in alphanumerical
107351// order based on the resource name.
107352//
107353// You can also sort results in descending order based on the creation
107354// timestamp using orderBy="creationTimestamp desc". This sorts results
107355// based on the creationTimestamp field in reverse chronological order
107356// (newest result first). Use this to sort resources like operations so
107357// that the newest operation is returned first.
107358//
107359// Currently, only sorting by name or creationTimestamp desc is
107360// supported.
107361func (c *VpnTunnelsAggregatedListCall) OrderBy(orderBy string) *VpnTunnelsAggregatedListCall {
107362	c.urlParams_.Set("orderBy", orderBy)
107363	return c
107364}
107365
107366// PageToken sets the optional parameter "pageToken": Specifies a page
107367// token to use. Set pageToken to the nextPageToken returned by a
107368// previous list request to get the next page of results.
107369func (c *VpnTunnelsAggregatedListCall) PageToken(pageToken string) *VpnTunnelsAggregatedListCall {
107370	c.urlParams_.Set("pageToken", pageToken)
107371	return c
107372}
107373
107374// Fields allows partial responses to be retrieved. See
107375// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107376// for more information.
107377func (c *VpnTunnelsAggregatedListCall) Fields(s ...googleapi.Field) *VpnTunnelsAggregatedListCall {
107378	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107379	return c
107380}
107381
107382// IfNoneMatch sets the optional parameter which makes the operation
107383// fail if the object's ETag matches the given value. This is useful for
107384// getting updates only after the object has changed since the last
107385// request. Use googleapi.IsNotModified to check whether the response
107386// error from Do is the result of In-None-Match.
107387func (c *VpnTunnelsAggregatedListCall) IfNoneMatch(entityTag string) *VpnTunnelsAggregatedListCall {
107388	c.ifNoneMatch_ = entityTag
107389	return c
107390}
107391
107392// Context sets the context to be used in this call's Do method. Any
107393// pending HTTP request will be aborted if the provided context is
107394// canceled.
107395func (c *VpnTunnelsAggregatedListCall) Context(ctx context.Context) *VpnTunnelsAggregatedListCall {
107396	c.ctx_ = ctx
107397	return c
107398}
107399
107400// Header returns an http.Header that can be modified by the caller to
107401// add HTTP headers to the request.
107402func (c *VpnTunnelsAggregatedListCall) Header() http.Header {
107403	if c.header_ == nil {
107404		c.header_ = make(http.Header)
107405	}
107406	return c.header_
107407}
107408
107409func (c *VpnTunnelsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
107410	reqHeaders := make(http.Header)
107411	for k, v := range c.header_ {
107412		reqHeaders[k] = v
107413	}
107414	reqHeaders.Set("User-Agent", c.s.userAgent())
107415	if c.ifNoneMatch_ != "" {
107416		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
107417	}
107418	var body io.Reader = nil
107419	c.urlParams_.Set("alt", alt)
107420	c.urlParams_.Set("prettyPrint", "false")
107421	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/vpnTunnels")
107422	urls += "?" + c.urlParams_.Encode()
107423	req, err := http.NewRequest("GET", urls, body)
107424	if err != nil {
107425		return nil, err
107426	}
107427	req.Header = reqHeaders
107428	googleapi.Expand(req.URL, map[string]string{
107429		"project": c.project,
107430	})
107431	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107432}
107433
107434// Do executes the "compute.vpnTunnels.aggregatedList" call.
107435// Exactly one of *VpnTunnelAggregatedList or error will be non-nil. Any
107436// non-2xx status code is an error. Response headers are in either
107437// *VpnTunnelAggregatedList.ServerResponse.Header or (if a response was
107438// returned at all) in error.(*googleapi.Error).Header. Use
107439// googleapi.IsNotModified to check whether the returned error was
107440// because http.StatusNotModified was returned.
107441func (c *VpnTunnelsAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelAggregatedList, error) {
107442	gensupport.SetOptions(c.urlParams_, opts...)
107443	res, err := c.doRequest("json")
107444	if res != nil && res.StatusCode == http.StatusNotModified {
107445		if res.Body != nil {
107446			res.Body.Close()
107447		}
107448		return nil, &googleapi.Error{
107449			Code:   res.StatusCode,
107450			Header: res.Header,
107451		}
107452	}
107453	if err != nil {
107454		return nil, err
107455	}
107456	defer googleapi.CloseBody(res)
107457	if err := googleapi.CheckResponse(res); err != nil {
107458		return nil, err
107459	}
107460	ret := &VpnTunnelAggregatedList{
107461		ServerResponse: googleapi.ServerResponse{
107462			Header:         res.Header,
107463			HTTPStatusCode: res.StatusCode,
107464		},
107465	}
107466	target := &ret
107467	if err := gensupport.DecodeResponse(target, res); err != nil {
107468		return nil, err
107469	}
107470	return ret, nil
107471	// {
107472	//   "description": "Retrieves an aggregated list of VPN tunnels.",
107473	//   "httpMethod": "GET",
107474	//   "id": "compute.vpnTunnels.aggregatedList",
107475	//   "parameterOrder": [
107476	//     "project"
107477	//   ],
107478	//   "parameters": {
107479	//     "filter": {
107480	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
107481	//       "location": "query",
107482	//       "type": "string"
107483	//     },
107484	//     "maxResults": {
107485	//       "default": "500",
107486	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
107487	//       "format": "uint32",
107488	//       "location": "query",
107489	//       "minimum": "0",
107490	//       "type": "integer"
107491	//     },
107492	//     "orderBy": {
107493	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
107494	//       "location": "query",
107495	//       "type": "string"
107496	//     },
107497	//     "pageToken": {
107498	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
107499	//       "location": "query",
107500	//       "type": "string"
107501	//     },
107502	//     "project": {
107503	//       "description": "Project ID for this request.",
107504	//       "location": "path",
107505	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107506	//       "required": true,
107507	//       "type": "string"
107508	//     }
107509	//   },
107510	//   "path": "{project}/aggregated/vpnTunnels",
107511	//   "response": {
107512	//     "$ref": "VpnTunnelAggregatedList"
107513	//   },
107514	//   "scopes": [
107515	//     "https://www.googleapis.com/auth/cloud-platform",
107516	//     "https://www.googleapis.com/auth/compute",
107517	//     "https://www.googleapis.com/auth/compute.readonly"
107518	//   ]
107519	// }
107520
107521}
107522
107523// Pages invokes f for each page of results.
107524// A non-nil error returned from f will halt the iteration.
107525// The provided context supersedes any context provided to the Context method.
107526func (c *VpnTunnelsAggregatedListCall) Pages(ctx context.Context, f func(*VpnTunnelAggregatedList) error) error {
107527	c.ctx_ = ctx
107528	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
107529	for {
107530		x, err := c.Do()
107531		if err != nil {
107532			return err
107533		}
107534		if err := f(x); err != nil {
107535			return err
107536		}
107537		if x.NextPageToken == "" {
107538			return nil
107539		}
107540		c.PageToken(x.NextPageToken)
107541	}
107542}
107543
107544// method id "compute.vpnTunnels.delete":
107545
107546type VpnTunnelsDeleteCall struct {
107547	s          *Service
107548	project    string
107549	region     string
107550	vpnTunnel  string
107551	urlParams_ gensupport.URLParams
107552	ctx_       context.Context
107553	header_    http.Header
107554}
107555
107556// Delete: Deletes the specified VpnTunnel resource.
107557func (r *VpnTunnelsService) Delete(project string, region string, vpnTunnel string) *VpnTunnelsDeleteCall {
107558	c := &VpnTunnelsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107559	c.project = project
107560	c.region = region
107561	c.vpnTunnel = vpnTunnel
107562	return c
107563}
107564
107565// RequestId sets the optional parameter "requestId": An optional
107566// request ID to identify requests. Specify a unique request ID so that
107567// if you must retry your request, the server will know to ignore the
107568// request if it has already been completed.
107569//
107570// For example, consider a situation where you make an initial request
107571// and the request times out. If you make the request again with the
107572// same request ID, the server can check if original operation with the
107573// same request ID was received, and if so, will ignore the second
107574// request. This prevents clients from accidentally creating duplicate
107575// commitments.
107576//
107577// The request ID must be a valid UUID with the exception that zero UUID
107578// is not supported (00000000-0000-0000-0000-000000000000).
107579func (c *VpnTunnelsDeleteCall) RequestId(requestId string) *VpnTunnelsDeleteCall {
107580	c.urlParams_.Set("requestId", requestId)
107581	return c
107582}
107583
107584// Fields allows partial responses to be retrieved. See
107585// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107586// for more information.
107587func (c *VpnTunnelsDeleteCall) Fields(s ...googleapi.Field) *VpnTunnelsDeleteCall {
107588	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107589	return c
107590}
107591
107592// Context sets the context to be used in this call's Do method. Any
107593// pending HTTP request will be aborted if the provided context is
107594// canceled.
107595func (c *VpnTunnelsDeleteCall) Context(ctx context.Context) *VpnTunnelsDeleteCall {
107596	c.ctx_ = ctx
107597	return c
107598}
107599
107600// Header returns an http.Header that can be modified by the caller to
107601// add HTTP headers to the request.
107602func (c *VpnTunnelsDeleteCall) Header() http.Header {
107603	if c.header_ == nil {
107604		c.header_ = make(http.Header)
107605	}
107606	return c.header_
107607}
107608
107609func (c *VpnTunnelsDeleteCall) doRequest(alt string) (*http.Response, error) {
107610	reqHeaders := make(http.Header)
107611	for k, v := range c.header_ {
107612		reqHeaders[k] = v
107613	}
107614	reqHeaders.Set("User-Agent", c.s.userAgent())
107615	var body io.Reader = nil
107616	c.urlParams_.Set("alt", alt)
107617	c.urlParams_.Set("prettyPrint", "false")
107618	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
107619	urls += "?" + c.urlParams_.Encode()
107620	req, err := http.NewRequest("DELETE", urls, body)
107621	if err != nil {
107622		return nil, err
107623	}
107624	req.Header = reqHeaders
107625	googleapi.Expand(req.URL, map[string]string{
107626		"project":   c.project,
107627		"region":    c.region,
107628		"vpnTunnel": c.vpnTunnel,
107629	})
107630	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107631}
107632
107633// Do executes the "compute.vpnTunnels.delete" call.
107634// Exactly one of *Operation or error will be non-nil. Any non-2xx
107635// status code is an error. Response headers are in either
107636// *Operation.ServerResponse.Header or (if a response was returned at
107637// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107638// to check whether the returned error was because
107639// http.StatusNotModified was returned.
107640func (c *VpnTunnelsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107641	gensupport.SetOptions(c.urlParams_, opts...)
107642	res, err := c.doRequest("json")
107643	if res != nil && res.StatusCode == http.StatusNotModified {
107644		if res.Body != nil {
107645			res.Body.Close()
107646		}
107647		return nil, &googleapi.Error{
107648			Code:   res.StatusCode,
107649			Header: res.Header,
107650		}
107651	}
107652	if err != nil {
107653		return nil, err
107654	}
107655	defer googleapi.CloseBody(res)
107656	if err := googleapi.CheckResponse(res); err != nil {
107657		return nil, err
107658	}
107659	ret := &Operation{
107660		ServerResponse: googleapi.ServerResponse{
107661			Header:         res.Header,
107662			HTTPStatusCode: res.StatusCode,
107663		},
107664	}
107665	target := &ret
107666	if err := gensupport.DecodeResponse(target, res); err != nil {
107667		return nil, err
107668	}
107669	return ret, nil
107670	// {
107671	//   "description": "Deletes the specified VpnTunnel resource.",
107672	//   "httpMethod": "DELETE",
107673	//   "id": "compute.vpnTunnels.delete",
107674	//   "parameterOrder": [
107675	//     "project",
107676	//     "region",
107677	//     "vpnTunnel"
107678	//   ],
107679	//   "parameters": {
107680	//     "project": {
107681	//       "description": "Project ID for this request.",
107682	//       "location": "path",
107683	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107684	//       "required": true,
107685	//       "type": "string"
107686	//     },
107687	//     "region": {
107688	//       "description": "Name of the region for this request.",
107689	//       "location": "path",
107690	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107691	//       "required": true,
107692	//       "type": "string"
107693	//     },
107694	//     "requestId": {
107695	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107696	//       "location": "query",
107697	//       "type": "string"
107698	//     },
107699	//     "vpnTunnel": {
107700	//       "description": "Name of the VpnTunnel resource to delete.",
107701	//       "location": "path",
107702	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107703	//       "required": true,
107704	//       "type": "string"
107705	//     }
107706	//   },
107707	//   "path": "{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
107708	//   "response": {
107709	//     "$ref": "Operation"
107710	//   },
107711	//   "scopes": [
107712	//     "https://www.googleapis.com/auth/cloud-platform",
107713	//     "https://www.googleapis.com/auth/compute"
107714	//   ]
107715	// }
107716
107717}
107718
107719// method id "compute.vpnTunnels.get":
107720
107721type VpnTunnelsGetCall struct {
107722	s            *Service
107723	project      string
107724	region       string
107725	vpnTunnel    string
107726	urlParams_   gensupport.URLParams
107727	ifNoneMatch_ string
107728	ctx_         context.Context
107729	header_      http.Header
107730}
107731
107732// Get: Returns the specified VpnTunnel resource. Gets a list of
107733// available VPN tunnels by making a list() request.
107734func (r *VpnTunnelsService) Get(project string, region string, vpnTunnel string) *VpnTunnelsGetCall {
107735	c := &VpnTunnelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107736	c.project = project
107737	c.region = region
107738	c.vpnTunnel = vpnTunnel
107739	return c
107740}
107741
107742// Fields allows partial responses to be retrieved. See
107743// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107744// for more information.
107745func (c *VpnTunnelsGetCall) Fields(s ...googleapi.Field) *VpnTunnelsGetCall {
107746	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107747	return c
107748}
107749
107750// IfNoneMatch sets the optional parameter which makes the operation
107751// fail if the object's ETag matches the given value. This is useful for
107752// getting updates only after the object has changed since the last
107753// request. Use googleapi.IsNotModified to check whether the response
107754// error from Do is the result of In-None-Match.
107755func (c *VpnTunnelsGetCall) IfNoneMatch(entityTag string) *VpnTunnelsGetCall {
107756	c.ifNoneMatch_ = entityTag
107757	return c
107758}
107759
107760// Context sets the context to be used in this call's Do method. Any
107761// pending HTTP request will be aborted if the provided context is
107762// canceled.
107763func (c *VpnTunnelsGetCall) Context(ctx context.Context) *VpnTunnelsGetCall {
107764	c.ctx_ = ctx
107765	return c
107766}
107767
107768// Header returns an http.Header that can be modified by the caller to
107769// add HTTP headers to the request.
107770func (c *VpnTunnelsGetCall) Header() http.Header {
107771	if c.header_ == nil {
107772		c.header_ = make(http.Header)
107773	}
107774	return c.header_
107775}
107776
107777func (c *VpnTunnelsGetCall) doRequest(alt string) (*http.Response, error) {
107778	reqHeaders := make(http.Header)
107779	for k, v := range c.header_ {
107780		reqHeaders[k] = v
107781	}
107782	reqHeaders.Set("User-Agent", c.s.userAgent())
107783	if c.ifNoneMatch_ != "" {
107784		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
107785	}
107786	var body io.Reader = nil
107787	c.urlParams_.Set("alt", alt)
107788	c.urlParams_.Set("prettyPrint", "false")
107789	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
107790	urls += "?" + c.urlParams_.Encode()
107791	req, err := http.NewRequest("GET", urls, body)
107792	if err != nil {
107793		return nil, err
107794	}
107795	req.Header = reqHeaders
107796	googleapi.Expand(req.URL, map[string]string{
107797		"project":   c.project,
107798		"region":    c.region,
107799		"vpnTunnel": c.vpnTunnel,
107800	})
107801	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107802}
107803
107804// Do executes the "compute.vpnTunnels.get" call.
107805// Exactly one of *VpnTunnel or error will be non-nil. Any non-2xx
107806// status code is an error. Response headers are in either
107807// *VpnTunnel.ServerResponse.Header or (if a response was returned at
107808// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107809// to check whether the returned error was because
107810// http.StatusNotModified was returned.
107811func (c *VpnTunnelsGetCall) Do(opts ...googleapi.CallOption) (*VpnTunnel, error) {
107812	gensupport.SetOptions(c.urlParams_, opts...)
107813	res, err := c.doRequest("json")
107814	if res != nil && res.StatusCode == http.StatusNotModified {
107815		if res.Body != nil {
107816			res.Body.Close()
107817		}
107818		return nil, &googleapi.Error{
107819			Code:   res.StatusCode,
107820			Header: res.Header,
107821		}
107822	}
107823	if err != nil {
107824		return nil, err
107825	}
107826	defer googleapi.CloseBody(res)
107827	if err := googleapi.CheckResponse(res); err != nil {
107828		return nil, err
107829	}
107830	ret := &VpnTunnel{
107831		ServerResponse: googleapi.ServerResponse{
107832			Header:         res.Header,
107833			HTTPStatusCode: res.StatusCode,
107834		},
107835	}
107836	target := &ret
107837	if err := gensupport.DecodeResponse(target, res); err != nil {
107838		return nil, err
107839	}
107840	return ret, nil
107841	// {
107842	//   "description": "Returns the specified VpnTunnel resource. Gets a list of available VPN tunnels by making a list() request.",
107843	//   "httpMethod": "GET",
107844	//   "id": "compute.vpnTunnels.get",
107845	//   "parameterOrder": [
107846	//     "project",
107847	//     "region",
107848	//     "vpnTunnel"
107849	//   ],
107850	//   "parameters": {
107851	//     "project": {
107852	//       "description": "Project ID for this request.",
107853	//       "location": "path",
107854	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107855	//       "required": true,
107856	//       "type": "string"
107857	//     },
107858	//     "region": {
107859	//       "description": "Name of the region for this request.",
107860	//       "location": "path",
107861	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107862	//       "required": true,
107863	//       "type": "string"
107864	//     },
107865	//     "vpnTunnel": {
107866	//       "description": "Name of the VpnTunnel resource to return.",
107867	//       "location": "path",
107868	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107869	//       "required": true,
107870	//       "type": "string"
107871	//     }
107872	//   },
107873	//   "path": "{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
107874	//   "response": {
107875	//     "$ref": "VpnTunnel"
107876	//   },
107877	//   "scopes": [
107878	//     "https://www.googleapis.com/auth/cloud-platform",
107879	//     "https://www.googleapis.com/auth/compute",
107880	//     "https://www.googleapis.com/auth/compute.readonly"
107881	//   ]
107882	// }
107883
107884}
107885
107886// method id "compute.vpnTunnels.insert":
107887
107888type VpnTunnelsInsertCall struct {
107889	s          *Service
107890	project    string
107891	region     string
107892	vpntunnel  *VpnTunnel
107893	urlParams_ gensupport.URLParams
107894	ctx_       context.Context
107895	header_    http.Header
107896}
107897
107898// Insert: Creates a VpnTunnel resource in the specified project and
107899// region using the data included in the request.
107900func (r *VpnTunnelsService) Insert(project string, region string, vpntunnel *VpnTunnel) *VpnTunnelsInsertCall {
107901	c := &VpnTunnelsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107902	c.project = project
107903	c.region = region
107904	c.vpntunnel = vpntunnel
107905	return c
107906}
107907
107908// RequestId sets the optional parameter "requestId": An optional
107909// request ID to identify requests. Specify a unique request ID so that
107910// if you must retry your request, the server will know to ignore the
107911// request if it has already been completed.
107912//
107913// For example, consider a situation where you make an initial request
107914// and the request times out. If you make the request again with the
107915// same request ID, the server can check if original operation with the
107916// same request ID was received, and if so, will ignore the second
107917// request. This prevents clients from accidentally creating duplicate
107918// commitments.
107919//
107920// The request ID must be a valid UUID with the exception that zero UUID
107921// is not supported (00000000-0000-0000-0000-000000000000).
107922func (c *VpnTunnelsInsertCall) RequestId(requestId string) *VpnTunnelsInsertCall {
107923	c.urlParams_.Set("requestId", requestId)
107924	return c
107925}
107926
107927// Fields allows partial responses to be retrieved. See
107928// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107929// for more information.
107930func (c *VpnTunnelsInsertCall) Fields(s ...googleapi.Field) *VpnTunnelsInsertCall {
107931	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107932	return c
107933}
107934
107935// Context sets the context to be used in this call's Do method. Any
107936// pending HTTP request will be aborted if the provided context is
107937// canceled.
107938func (c *VpnTunnelsInsertCall) Context(ctx context.Context) *VpnTunnelsInsertCall {
107939	c.ctx_ = ctx
107940	return c
107941}
107942
107943// Header returns an http.Header that can be modified by the caller to
107944// add HTTP headers to the request.
107945func (c *VpnTunnelsInsertCall) Header() http.Header {
107946	if c.header_ == nil {
107947		c.header_ = make(http.Header)
107948	}
107949	return c.header_
107950}
107951
107952func (c *VpnTunnelsInsertCall) doRequest(alt string) (*http.Response, error) {
107953	reqHeaders := make(http.Header)
107954	for k, v := range c.header_ {
107955		reqHeaders[k] = v
107956	}
107957	reqHeaders.Set("User-Agent", c.s.userAgent())
107958	var body io.Reader = nil
107959	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpntunnel)
107960	if err != nil {
107961		return nil, err
107962	}
107963	reqHeaders.Set("Content-Type", "application/json")
107964	c.urlParams_.Set("alt", alt)
107965	c.urlParams_.Set("prettyPrint", "false")
107966	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels")
107967	urls += "?" + c.urlParams_.Encode()
107968	req, err := http.NewRequest("POST", urls, body)
107969	if err != nil {
107970		return nil, err
107971	}
107972	req.Header = reqHeaders
107973	googleapi.Expand(req.URL, map[string]string{
107974		"project": c.project,
107975		"region":  c.region,
107976	})
107977	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107978}
107979
107980// Do executes the "compute.vpnTunnels.insert" call.
107981// Exactly one of *Operation or error will be non-nil. Any non-2xx
107982// status code is an error. Response headers are in either
107983// *Operation.ServerResponse.Header or (if a response was returned at
107984// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107985// to check whether the returned error was because
107986// http.StatusNotModified was returned.
107987func (c *VpnTunnelsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107988	gensupport.SetOptions(c.urlParams_, opts...)
107989	res, err := c.doRequest("json")
107990	if res != nil && res.StatusCode == http.StatusNotModified {
107991		if res.Body != nil {
107992			res.Body.Close()
107993		}
107994		return nil, &googleapi.Error{
107995			Code:   res.StatusCode,
107996			Header: res.Header,
107997		}
107998	}
107999	if err != nil {
108000		return nil, err
108001	}
108002	defer googleapi.CloseBody(res)
108003	if err := googleapi.CheckResponse(res); err != nil {
108004		return nil, err
108005	}
108006	ret := &Operation{
108007		ServerResponse: googleapi.ServerResponse{
108008			Header:         res.Header,
108009			HTTPStatusCode: res.StatusCode,
108010		},
108011	}
108012	target := &ret
108013	if err := gensupport.DecodeResponse(target, res); err != nil {
108014		return nil, err
108015	}
108016	return ret, nil
108017	// {
108018	//   "description": "Creates a VpnTunnel resource in the specified project and region using the data included in the request.",
108019	//   "httpMethod": "POST",
108020	//   "id": "compute.vpnTunnels.insert",
108021	//   "parameterOrder": [
108022	//     "project",
108023	//     "region"
108024	//   ],
108025	//   "parameters": {
108026	//     "project": {
108027	//       "description": "Project ID for this request.",
108028	//       "location": "path",
108029	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108030	//       "required": true,
108031	//       "type": "string"
108032	//     },
108033	//     "region": {
108034	//       "description": "Name of the region for this request.",
108035	//       "location": "path",
108036	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108037	//       "required": true,
108038	//       "type": "string"
108039	//     },
108040	//     "requestId": {
108041	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108042	//       "location": "query",
108043	//       "type": "string"
108044	//     }
108045	//   },
108046	//   "path": "{project}/regions/{region}/vpnTunnels",
108047	//   "request": {
108048	//     "$ref": "VpnTunnel"
108049	//   },
108050	//   "response": {
108051	//     "$ref": "Operation"
108052	//   },
108053	//   "scopes": [
108054	//     "https://www.googleapis.com/auth/cloud-platform",
108055	//     "https://www.googleapis.com/auth/compute"
108056	//   ]
108057	// }
108058
108059}
108060
108061// method id "compute.vpnTunnels.list":
108062
108063type VpnTunnelsListCall struct {
108064	s            *Service
108065	project      string
108066	region       string
108067	urlParams_   gensupport.URLParams
108068	ifNoneMatch_ string
108069	ctx_         context.Context
108070	header_      http.Header
108071}
108072
108073// List: Retrieves a list of VpnTunnel resources contained in the
108074// specified project and region.
108075func (r *VpnTunnelsService) List(project string, region string) *VpnTunnelsListCall {
108076	c := &VpnTunnelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108077	c.project = project
108078	c.region = region
108079	return c
108080}
108081
108082// Filter sets the optional parameter "filter": A filter expression that
108083// filters resources listed in the response. The expression must specify
108084// the field name, a comparison operator, and the value that you want to
108085// use for filtering. The value must be a string, a number, or a
108086// boolean. The comparison operator must be either =, !=, >, or <.
108087//
108088// For example, if you are filtering Compute Engine instances, you can
108089// exclude instances named example-instance by specifying name !=
108090// example-instance.
108091//
108092// You can also filter nested fields. For example, you could specify
108093// scheduling.automaticRestart = false to include instances only if they
108094// are not scheduled for automatic restarts. You can use filtering on
108095// nested fields to filter based on resource labels.
108096//
108097// To filter on multiple expressions, provide each separate expression
108098// within parentheses. For example, (scheduling.automaticRestart = true)
108099// (cpuPlatform = "Intel Skylake"). By default, each expression is an
108100// AND expression. However, you can include AND and OR expressions
108101// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
108102// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
108103// true).
108104func (c *VpnTunnelsListCall) Filter(filter string) *VpnTunnelsListCall {
108105	c.urlParams_.Set("filter", filter)
108106	return c
108107}
108108
108109// MaxResults sets the optional parameter "maxResults": The maximum
108110// number of results per page that should be returned. If the number of
108111// available results is larger than maxResults, Compute Engine returns a
108112// nextPageToken that can be used to get the next page of results in
108113// subsequent list requests. Acceptable values are 0 to 500, inclusive.
108114// (Default: 500)
108115func (c *VpnTunnelsListCall) MaxResults(maxResults int64) *VpnTunnelsListCall {
108116	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
108117	return c
108118}
108119
108120// OrderBy sets the optional parameter "orderBy": Sorts list results by
108121// a certain order. By default, results are returned in alphanumerical
108122// order based on the resource name.
108123//
108124// You can also sort results in descending order based on the creation
108125// timestamp using orderBy="creationTimestamp desc". This sorts results
108126// based on the creationTimestamp field in reverse chronological order
108127// (newest result first). Use this to sort resources like operations so
108128// that the newest operation is returned first.
108129//
108130// Currently, only sorting by name or creationTimestamp desc is
108131// supported.
108132func (c *VpnTunnelsListCall) OrderBy(orderBy string) *VpnTunnelsListCall {
108133	c.urlParams_.Set("orderBy", orderBy)
108134	return c
108135}
108136
108137// PageToken sets the optional parameter "pageToken": Specifies a page
108138// token to use. Set pageToken to the nextPageToken returned by a
108139// previous list request to get the next page of results.
108140func (c *VpnTunnelsListCall) PageToken(pageToken string) *VpnTunnelsListCall {
108141	c.urlParams_.Set("pageToken", pageToken)
108142	return c
108143}
108144
108145// Fields allows partial responses to be retrieved. See
108146// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108147// for more information.
108148func (c *VpnTunnelsListCall) Fields(s ...googleapi.Field) *VpnTunnelsListCall {
108149	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108150	return c
108151}
108152
108153// IfNoneMatch sets the optional parameter which makes the operation
108154// fail if the object's ETag matches the given value. This is useful for
108155// getting updates only after the object has changed since the last
108156// request. Use googleapi.IsNotModified to check whether the response
108157// error from Do is the result of In-None-Match.
108158func (c *VpnTunnelsListCall) IfNoneMatch(entityTag string) *VpnTunnelsListCall {
108159	c.ifNoneMatch_ = entityTag
108160	return c
108161}
108162
108163// Context sets the context to be used in this call's Do method. Any
108164// pending HTTP request will be aborted if the provided context is
108165// canceled.
108166func (c *VpnTunnelsListCall) Context(ctx context.Context) *VpnTunnelsListCall {
108167	c.ctx_ = ctx
108168	return c
108169}
108170
108171// Header returns an http.Header that can be modified by the caller to
108172// add HTTP headers to the request.
108173func (c *VpnTunnelsListCall) Header() http.Header {
108174	if c.header_ == nil {
108175		c.header_ = make(http.Header)
108176	}
108177	return c.header_
108178}
108179
108180func (c *VpnTunnelsListCall) doRequest(alt string) (*http.Response, error) {
108181	reqHeaders := make(http.Header)
108182	for k, v := range c.header_ {
108183		reqHeaders[k] = v
108184	}
108185	reqHeaders.Set("User-Agent", c.s.userAgent())
108186	if c.ifNoneMatch_ != "" {
108187		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108188	}
108189	var body io.Reader = nil
108190	c.urlParams_.Set("alt", alt)
108191	c.urlParams_.Set("prettyPrint", "false")
108192	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels")
108193	urls += "?" + c.urlParams_.Encode()
108194	req, err := http.NewRequest("GET", urls, body)
108195	if err != nil {
108196		return nil, err
108197	}
108198	req.Header = reqHeaders
108199	googleapi.Expand(req.URL, map[string]string{
108200		"project": c.project,
108201		"region":  c.region,
108202	})
108203	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108204}
108205
108206// Do executes the "compute.vpnTunnels.list" call.
108207// Exactly one of *VpnTunnelList or error will be non-nil. Any non-2xx
108208// status code is an error. Response headers are in either
108209// *VpnTunnelList.ServerResponse.Header or (if a response was returned
108210// at all) in error.(*googleapi.Error).Header. Use
108211// googleapi.IsNotModified to check whether the returned error was
108212// because http.StatusNotModified was returned.
108213func (c *VpnTunnelsListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelList, error) {
108214	gensupport.SetOptions(c.urlParams_, opts...)
108215	res, err := c.doRequest("json")
108216	if res != nil && res.StatusCode == http.StatusNotModified {
108217		if res.Body != nil {
108218			res.Body.Close()
108219		}
108220		return nil, &googleapi.Error{
108221			Code:   res.StatusCode,
108222			Header: res.Header,
108223		}
108224	}
108225	if err != nil {
108226		return nil, err
108227	}
108228	defer googleapi.CloseBody(res)
108229	if err := googleapi.CheckResponse(res); err != nil {
108230		return nil, err
108231	}
108232	ret := &VpnTunnelList{
108233		ServerResponse: googleapi.ServerResponse{
108234			Header:         res.Header,
108235			HTTPStatusCode: res.StatusCode,
108236		},
108237	}
108238	target := &ret
108239	if err := gensupport.DecodeResponse(target, res); err != nil {
108240		return nil, err
108241	}
108242	return ret, nil
108243	// {
108244	//   "description": "Retrieves a list of VpnTunnel resources contained in the specified project and region.",
108245	//   "httpMethod": "GET",
108246	//   "id": "compute.vpnTunnels.list",
108247	//   "parameterOrder": [
108248	//     "project",
108249	//     "region"
108250	//   ],
108251	//   "parameters": {
108252	//     "filter": {
108253	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
108254	//       "location": "query",
108255	//       "type": "string"
108256	//     },
108257	//     "maxResults": {
108258	//       "default": "500",
108259	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
108260	//       "format": "uint32",
108261	//       "location": "query",
108262	//       "minimum": "0",
108263	//       "type": "integer"
108264	//     },
108265	//     "orderBy": {
108266	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
108267	//       "location": "query",
108268	//       "type": "string"
108269	//     },
108270	//     "pageToken": {
108271	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
108272	//       "location": "query",
108273	//       "type": "string"
108274	//     },
108275	//     "project": {
108276	//       "description": "Project ID for this request.",
108277	//       "location": "path",
108278	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108279	//       "required": true,
108280	//       "type": "string"
108281	//     },
108282	//     "region": {
108283	//       "description": "Name of the region for this request.",
108284	//       "location": "path",
108285	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108286	//       "required": true,
108287	//       "type": "string"
108288	//     }
108289	//   },
108290	//   "path": "{project}/regions/{region}/vpnTunnels",
108291	//   "response": {
108292	//     "$ref": "VpnTunnelList"
108293	//   },
108294	//   "scopes": [
108295	//     "https://www.googleapis.com/auth/cloud-platform",
108296	//     "https://www.googleapis.com/auth/compute",
108297	//     "https://www.googleapis.com/auth/compute.readonly"
108298	//   ]
108299	// }
108300
108301}
108302
108303// Pages invokes f for each page of results.
108304// A non-nil error returned from f will halt the iteration.
108305// The provided context supersedes any context provided to the Context method.
108306func (c *VpnTunnelsListCall) Pages(ctx context.Context, f func(*VpnTunnelList) error) error {
108307	c.ctx_ = ctx
108308	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
108309	for {
108310		x, err := c.Do()
108311		if err != nil {
108312			return err
108313		}
108314		if err := f(x); err != nil {
108315			return err
108316		}
108317		if x.NextPageToken == "" {
108318			return nil
108319		}
108320		c.PageToken(x.NextPageToken)
108321	}
108322}
108323
108324// method id "compute.zoneOperations.delete":
108325
108326type ZoneOperationsDeleteCall struct {
108327	s          *Service
108328	project    string
108329	zone       string
108330	operation  string
108331	urlParams_ gensupport.URLParams
108332	ctx_       context.Context
108333	header_    http.Header
108334}
108335
108336// Delete: Deletes the specified zone-specific Operations resource.
108337// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/delete
108338func (r *ZoneOperationsService) Delete(project string, zone string, operation string) *ZoneOperationsDeleteCall {
108339	c := &ZoneOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108340	c.project = project
108341	c.zone = zone
108342	c.operation = operation
108343	return c
108344}
108345
108346// Fields allows partial responses to be retrieved. See
108347// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108348// for more information.
108349func (c *ZoneOperationsDeleteCall) Fields(s ...googleapi.Field) *ZoneOperationsDeleteCall {
108350	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108351	return c
108352}
108353
108354// Context sets the context to be used in this call's Do method. Any
108355// pending HTTP request will be aborted if the provided context is
108356// canceled.
108357func (c *ZoneOperationsDeleteCall) Context(ctx context.Context) *ZoneOperationsDeleteCall {
108358	c.ctx_ = ctx
108359	return c
108360}
108361
108362// Header returns an http.Header that can be modified by the caller to
108363// add HTTP headers to the request.
108364func (c *ZoneOperationsDeleteCall) Header() http.Header {
108365	if c.header_ == nil {
108366		c.header_ = make(http.Header)
108367	}
108368	return c.header_
108369}
108370
108371func (c *ZoneOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
108372	reqHeaders := make(http.Header)
108373	for k, v := range c.header_ {
108374		reqHeaders[k] = v
108375	}
108376	reqHeaders.Set("User-Agent", c.s.userAgent())
108377	var body io.Reader = nil
108378	c.urlParams_.Set("alt", alt)
108379	c.urlParams_.Set("prettyPrint", "false")
108380	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}")
108381	urls += "?" + c.urlParams_.Encode()
108382	req, err := http.NewRequest("DELETE", urls, body)
108383	if err != nil {
108384		return nil, err
108385	}
108386	req.Header = reqHeaders
108387	googleapi.Expand(req.URL, map[string]string{
108388		"project":   c.project,
108389		"zone":      c.zone,
108390		"operation": c.operation,
108391	})
108392	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108393}
108394
108395// Do executes the "compute.zoneOperations.delete" call.
108396func (c *ZoneOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
108397	gensupport.SetOptions(c.urlParams_, opts...)
108398	res, err := c.doRequest("json")
108399	if err != nil {
108400		return err
108401	}
108402	defer googleapi.CloseBody(res)
108403	if err := googleapi.CheckResponse(res); err != nil {
108404		return err
108405	}
108406	return nil
108407	// {
108408	//   "description": "Deletes the specified zone-specific Operations resource.",
108409	//   "httpMethod": "DELETE",
108410	//   "id": "compute.zoneOperations.delete",
108411	//   "parameterOrder": [
108412	//     "project",
108413	//     "zone",
108414	//     "operation"
108415	//   ],
108416	//   "parameters": {
108417	//     "operation": {
108418	//       "description": "Name of the Operations resource to delete.",
108419	//       "location": "path",
108420	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108421	//       "required": true,
108422	//       "type": "string"
108423	//     },
108424	//     "project": {
108425	//       "description": "Project ID for this request.",
108426	//       "location": "path",
108427	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108428	//       "required": true,
108429	//       "type": "string"
108430	//     },
108431	//     "zone": {
108432	//       "description": "Name of the zone for this request.",
108433	//       "location": "path",
108434	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108435	//       "required": true,
108436	//       "type": "string"
108437	//     }
108438	//   },
108439	//   "path": "{project}/zones/{zone}/operations/{operation}",
108440	//   "scopes": [
108441	//     "https://www.googleapis.com/auth/cloud-platform",
108442	//     "https://www.googleapis.com/auth/compute"
108443	//   ]
108444	// }
108445
108446}
108447
108448// method id "compute.zoneOperations.get":
108449
108450type ZoneOperationsGetCall struct {
108451	s            *Service
108452	project      string
108453	zone         string
108454	operation    string
108455	urlParams_   gensupport.URLParams
108456	ifNoneMatch_ string
108457	ctx_         context.Context
108458	header_      http.Header
108459}
108460
108461// Get: Retrieves the specified zone-specific Operations resource.
108462// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/get
108463func (r *ZoneOperationsService) Get(project string, zone string, operation string) *ZoneOperationsGetCall {
108464	c := &ZoneOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108465	c.project = project
108466	c.zone = zone
108467	c.operation = operation
108468	return c
108469}
108470
108471// Fields allows partial responses to be retrieved. See
108472// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108473// for more information.
108474func (c *ZoneOperationsGetCall) Fields(s ...googleapi.Field) *ZoneOperationsGetCall {
108475	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108476	return c
108477}
108478
108479// IfNoneMatch sets the optional parameter which makes the operation
108480// fail if the object's ETag matches the given value. This is useful for
108481// getting updates only after the object has changed since the last
108482// request. Use googleapi.IsNotModified to check whether the response
108483// error from Do is the result of In-None-Match.
108484func (c *ZoneOperationsGetCall) IfNoneMatch(entityTag string) *ZoneOperationsGetCall {
108485	c.ifNoneMatch_ = entityTag
108486	return c
108487}
108488
108489// Context sets the context to be used in this call's Do method. Any
108490// pending HTTP request will be aborted if the provided context is
108491// canceled.
108492func (c *ZoneOperationsGetCall) Context(ctx context.Context) *ZoneOperationsGetCall {
108493	c.ctx_ = ctx
108494	return c
108495}
108496
108497// Header returns an http.Header that can be modified by the caller to
108498// add HTTP headers to the request.
108499func (c *ZoneOperationsGetCall) Header() http.Header {
108500	if c.header_ == nil {
108501		c.header_ = make(http.Header)
108502	}
108503	return c.header_
108504}
108505
108506func (c *ZoneOperationsGetCall) doRequest(alt string) (*http.Response, error) {
108507	reqHeaders := make(http.Header)
108508	for k, v := range c.header_ {
108509		reqHeaders[k] = v
108510	}
108511	reqHeaders.Set("User-Agent", c.s.userAgent())
108512	if c.ifNoneMatch_ != "" {
108513		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108514	}
108515	var body io.Reader = nil
108516	c.urlParams_.Set("alt", alt)
108517	c.urlParams_.Set("prettyPrint", "false")
108518	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}")
108519	urls += "?" + c.urlParams_.Encode()
108520	req, err := http.NewRequest("GET", urls, body)
108521	if err != nil {
108522		return nil, err
108523	}
108524	req.Header = reqHeaders
108525	googleapi.Expand(req.URL, map[string]string{
108526		"project":   c.project,
108527		"zone":      c.zone,
108528		"operation": c.operation,
108529	})
108530	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108531}
108532
108533// Do executes the "compute.zoneOperations.get" call.
108534// Exactly one of *Operation or error will be non-nil. Any non-2xx
108535// status code is an error. Response headers are in either
108536// *Operation.ServerResponse.Header or (if a response was returned at
108537// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108538// to check whether the returned error was because
108539// http.StatusNotModified was returned.
108540func (c *ZoneOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108541	gensupport.SetOptions(c.urlParams_, opts...)
108542	res, err := c.doRequest("json")
108543	if res != nil && res.StatusCode == http.StatusNotModified {
108544		if res.Body != nil {
108545			res.Body.Close()
108546		}
108547		return nil, &googleapi.Error{
108548			Code:   res.StatusCode,
108549			Header: res.Header,
108550		}
108551	}
108552	if err != nil {
108553		return nil, err
108554	}
108555	defer googleapi.CloseBody(res)
108556	if err := googleapi.CheckResponse(res); err != nil {
108557		return nil, err
108558	}
108559	ret := &Operation{
108560		ServerResponse: googleapi.ServerResponse{
108561			Header:         res.Header,
108562			HTTPStatusCode: res.StatusCode,
108563		},
108564	}
108565	target := &ret
108566	if err := gensupport.DecodeResponse(target, res); err != nil {
108567		return nil, err
108568	}
108569	return ret, nil
108570	// {
108571	//   "description": "Retrieves the specified zone-specific Operations resource.",
108572	//   "httpMethod": "GET",
108573	//   "id": "compute.zoneOperations.get",
108574	//   "parameterOrder": [
108575	//     "project",
108576	//     "zone",
108577	//     "operation"
108578	//   ],
108579	//   "parameters": {
108580	//     "operation": {
108581	//       "description": "Name of the Operations resource to return.",
108582	//       "location": "path",
108583	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108584	//       "required": true,
108585	//       "type": "string"
108586	//     },
108587	//     "project": {
108588	//       "description": "Project ID for this request.",
108589	//       "location": "path",
108590	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108591	//       "required": true,
108592	//       "type": "string"
108593	//     },
108594	//     "zone": {
108595	//       "description": "Name of the zone for this request.",
108596	//       "location": "path",
108597	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108598	//       "required": true,
108599	//       "type": "string"
108600	//     }
108601	//   },
108602	//   "path": "{project}/zones/{zone}/operations/{operation}",
108603	//   "response": {
108604	//     "$ref": "Operation"
108605	//   },
108606	//   "scopes": [
108607	//     "https://www.googleapis.com/auth/cloud-platform",
108608	//     "https://www.googleapis.com/auth/compute",
108609	//     "https://www.googleapis.com/auth/compute.readonly"
108610	//   ]
108611	// }
108612
108613}
108614
108615// method id "compute.zoneOperations.list":
108616
108617type ZoneOperationsListCall struct {
108618	s            *Service
108619	project      string
108620	zone         string
108621	urlParams_   gensupport.URLParams
108622	ifNoneMatch_ string
108623	ctx_         context.Context
108624	header_      http.Header
108625}
108626
108627// List: Retrieves a list of Operation resources contained within the
108628// specified zone.
108629// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/list
108630func (r *ZoneOperationsService) List(project string, zone string) *ZoneOperationsListCall {
108631	c := &ZoneOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108632	c.project = project
108633	c.zone = zone
108634	return c
108635}
108636
108637// Filter sets the optional parameter "filter": A filter expression that
108638// filters resources listed in the response. The expression must specify
108639// the field name, a comparison operator, and the value that you want to
108640// use for filtering. The value must be a string, a number, or a
108641// boolean. The comparison operator must be either =, !=, >, or <.
108642//
108643// For example, if you are filtering Compute Engine instances, you can
108644// exclude instances named example-instance by specifying name !=
108645// example-instance.
108646//
108647// You can also filter nested fields. For example, you could specify
108648// scheduling.automaticRestart = false to include instances only if they
108649// are not scheduled for automatic restarts. You can use filtering on
108650// nested fields to filter based on resource labels.
108651//
108652// To filter on multiple expressions, provide each separate expression
108653// within parentheses. For example, (scheduling.automaticRestart = true)
108654// (cpuPlatform = "Intel Skylake"). By default, each expression is an
108655// AND expression. However, you can include AND and OR expressions
108656// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
108657// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
108658// true).
108659func (c *ZoneOperationsListCall) Filter(filter string) *ZoneOperationsListCall {
108660	c.urlParams_.Set("filter", filter)
108661	return c
108662}
108663
108664// MaxResults sets the optional parameter "maxResults": The maximum
108665// number of results per page that should be returned. If the number of
108666// available results is larger than maxResults, Compute Engine returns a
108667// nextPageToken that can be used to get the next page of results in
108668// subsequent list requests. Acceptable values are 0 to 500, inclusive.
108669// (Default: 500)
108670func (c *ZoneOperationsListCall) MaxResults(maxResults int64) *ZoneOperationsListCall {
108671	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
108672	return c
108673}
108674
108675// OrderBy sets the optional parameter "orderBy": Sorts list results by
108676// a certain order. By default, results are returned in alphanumerical
108677// order based on the resource name.
108678//
108679// You can also sort results in descending order based on the creation
108680// timestamp using orderBy="creationTimestamp desc". This sorts results
108681// based on the creationTimestamp field in reverse chronological order
108682// (newest result first). Use this to sort resources like operations so
108683// that the newest operation is returned first.
108684//
108685// Currently, only sorting by name or creationTimestamp desc is
108686// supported.
108687func (c *ZoneOperationsListCall) OrderBy(orderBy string) *ZoneOperationsListCall {
108688	c.urlParams_.Set("orderBy", orderBy)
108689	return c
108690}
108691
108692// PageToken sets the optional parameter "pageToken": Specifies a page
108693// token to use. Set pageToken to the nextPageToken returned by a
108694// previous list request to get the next page of results.
108695func (c *ZoneOperationsListCall) PageToken(pageToken string) *ZoneOperationsListCall {
108696	c.urlParams_.Set("pageToken", pageToken)
108697	return c
108698}
108699
108700// Fields allows partial responses to be retrieved. See
108701// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108702// for more information.
108703func (c *ZoneOperationsListCall) Fields(s ...googleapi.Field) *ZoneOperationsListCall {
108704	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108705	return c
108706}
108707
108708// IfNoneMatch sets the optional parameter which makes the operation
108709// fail if the object's ETag matches the given value. This is useful for
108710// getting updates only after the object has changed since the last
108711// request. Use googleapi.IsNotModified to check whether the response
108712// error from Do is the result of In-None-Match.
108713func (c *ZoneOperationsListCall) IfNoneMatch(entityTag string) *ZoneOperationsListCall {
108714	c.ifNoneMatch_ = entityTag
108715	return c
108716}
108717
108718// Context sets the context to be used in this call's Do method. Any
108719// pending HTTP request will be aborted if the provided context is
108720// canceled.
108721func (c *ZoneOperationsListCall) Context(ctx context.Context) *ZoneOperationsListCall {
108722	c.ctx_ = ctx
108723	return c
108724}
108725
108726// Header returns an http.Header that can be modified by the caller to
108727// add HTTP headers to the request.
108728func (c *ZoneOperationsListCall) Header() http.Header {
108729	if c.header_ == nil {
108730		c.header_ = make(http.Header)
108731	}
108732	return c.header_
108733}
108734
108735func (c *ZoneOperationsListCall) doRequest(alt string) (*http.Response, error) {
108736	reqHeaders := make(http.Header)
108737	for k, v := range c.header_ {
108738		reqHeaders[k] = v
108739	}
108740	reqHeaders.Set("User-Agent", c.s.userAgent())
108741	if c.ifNoneMatch_ != "" {
108742		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108743	}
108744	var body io.Reader = nil
108745	c.urlParams_.Set("alt", alt)
108746	c.urlParams_.Set("prettyPrint", "false")
108747	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations")
108748	urls += "?" + c.urlParams_.Encode()
108749	req, err := http.NewRequest("GET", urls, body)
108750	if err != nil {
108751		return nil, err
108752	}
108753	req.Header = reqHeaders
108754	googleapi.Expand(req.URL, map[string]string{
108755		"project": c.project,
108756		"zone":    c.zone,
108757	})
108758	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108759}
108760
108761// Do executes the "compute.zoneOperations.list" call.
108762// Exactly one of *OperationList or error will be non-nil. Any non-2xx
108763// status code is an error. Response headers are in either
108764// *OperationList.ServerResponse.Header or (if a response was returned
108765// at all) in error.(*googleapi.Error).Header. Use
108766// googleapi.IsNotModified to check whether the returned error was
108767// because http.StatusNotModified was returned.
108768func (c *ZoneOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
108769	gensupport.SetOptions(c.urlParams_, opts...)
108770	res, err := c.doRequest("json")
108771	if res != nil && res.StatusCode == http.StatusNotModified {
108772		if res.Body != nil {
108773			res.Body.Close()
108774		}
108775		return nil, &googleapi.Error{
108776			Code:   res.StatusCode,
108777			Header: res.Header,
108778		}
108779	}
108780	if err != nil {
108781		return nil, err
108782	}
108783	defer googleapi.CloseBody(res)
108784	if err := googleapi.CheckResponse(res); err != nil {
108785		return nil, err
108786	}
108787	ret := &OperationList{
108788		ServerResponse: googleapi.ServerResponse{
108789			Header:         res.Header,
108790			HTTPStatusCode: res.StatusCode,
108791		},
108792	}
108793	target := &ret
108794	if err := gensupport.DecodeResponse(target, res); err != nil {
108795		return nil, err
108796	}
108797	return ret, nil
108798	// {
108799	//   "description": "Retrieves a list of Operation resources contained within the specified zone.",
108800	//   "httpMethod": "GET",
108801	//   "id": "compute.zoneOperations.list",
108802	//   "parameterOrder": [
108803	//     "project",
108804	//     "zone"
108805	//   ],
108806	//   "parameters": {
108807	//     "filter": {
108808	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
108809	//       "location": "query",
108810	//       "type": "string"
108811	//     },
108812	//     "maxResults": {
108813	//       "default": "500",
108814	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
108815	//       "format": "uint32",
108816	//       "location": "query",
108817	//       "minimum": "0",
108818	//       "type": "integer"
108819	//     },
108820	//     "orderBy": {
108821	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
108822	//       "location": "query",
108823	//       "type": "string"
108824	//     },
108825	//     "pageToken": {
108826	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
108827	//       "location": "query",
108828	//       "type": "string"
108829	//     },
108830	//     "project": {
108831	//       "description": "Project ID for this request.",
108832	//       "location": "path",
108833	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108834	//       "required": true,
108835	//       "type": "string"
108836	//     },
108837	//     "zone": {
108838	//       "description": "Name of the zone for request.",
108839	//       "location": "path",
108840	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108841	//       "required": true,
108842	//       "type": "string"
108843	//     }
108844	//   },
108845	//   "path": "{project}/zones/{zone}/operations",
108846	//   "response": {
108847	//     "$ref": "OperationList"
108848	//   },
108849	//   "scopes": [
108850	//     "https://www.googleapis.com/auth/cloud-platform",
108851	//     "https://www.googleapis.com/auth/compute",
108852	//     "https://www.googleapis.com/auth/compute.readonly"
108853	//   ]
108854	// }
108855
108856}
108857
108858// Pages invokes f for each page of results.
108859// A non-nil error returned from f will halt the iteration.
108860// The provided context supersedes any context provided to the Context method.
108861func (c *ZoneOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
108862	c.ctx_ = ctx
108863	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
108864	for {
108865		x, err := c.Do()
108866		if err != nil {
108867			return err
108868		}
108869		if err := f(x); err != nil {
108870			return err
108871		}
108872		if x.NextPageToken == "" {
108873			return nil
108874		}
108875		c.PageToken(x.NextPageToken)
108876	}
108877}
108878
108879// method id "compute.zones.get":
108880
108881type ZonesGetCall struct {
108882	s            *Service
108883	project      string
108884	zone         string
108885	urlParams_   gensupport.URLParams
108886	ifNoneMatch_ string
108887	ctx_         context.Context
108888	header_      http.Header
108889}
108890
108891// Get: Returns the specified Zone resource. Gets a list of available
108892// zones by making a list() request.
108893// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/get
108894func (r *ZonesService) Get(project string, zone string) *ZonesGetCall {
108895	c := &ZonesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108896	c.project = project
108897	c.zone = zone
108898	return c
108899}
108900
108901// Fields allows partial responses to be retrieved. See
108902// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108903// for more information.
108904func (c *ZonesGetCall) Fields(s ...googleapi.Field) *ZonesGetCall {
108905	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108906	return c
108907}
108908
108909// IfNoneMatch sets the optional parameter which makes the operation
108910// fail if the object's ETag matches the given value. This is useful for
108911// getting updates only after the object has changed since the last
108912// request. Use googleapi.IsNotModified to check whether the response
108913// error from Do is the result of In-None-Match.
108914func (c *ZonesGetCall) IfNoneMatch(entityTag string) *ZonesGetCall {
108915	c.ifNoneMatch_ = entityTag
108916	return c
108917}
108918
108919// Context sets the context to be used in this call's Do method. Any
108920// pending HTTP request will be aborted if the provided context is
108921// canceled.
108922func (c *ZonesGetCall) Context(ctx context.Context) *ZonesGetCall {
108923	c.ctx_ = ctx
108924	return c
108925}
108926
108927// Header returns an http.Header that can be modified by the caller to
108928// add HTTP headers to the request.
108929func (c *ZonesGetCall) Header() http.Header {
108930	if c.header_ == nil {
108931		c.header_ = make(http.Header)
108932	}
108933	return c.header_
108934}
108935
108936func (c *ZonesGetCall) doRequest(alt string) (*http.Response, error) {
108937	reqHeaders := make(http.Header)
108938	for k, v := range c.header_ {
108939		reqHeaders[k] = v
108940	}
108941	reqHeaders.Set("User-Agent", c.s.userAgent())
108942	if c.ifNoneMatch_ != "" {
108943		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108944	}
108945	var body io.Reader = nil
108946	c.urlParams_.Set("alt", alt)
108947	c.urlParams_.Set("prettyPrint", "false")
108948	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}")
108949	urls += "?" + c.urlParams_.Encode()
108950	req, err := http.NewRequest("GET", urls, body)
108951	if err != nil {
108952		return nil, err
108953	}
108954	req.Header = reqHeaders
108955	googleapi.Expand(req.URL, map[string]string{
108956		"project": c.project,
108957		"zone":    c.zone,
108958	})
108959	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108960}
108961
108962// Do executes the "compute.zones.get" call.
108963// Exactly one of *Zone or error will be non-nil. Any non-2xx status
108964// code is an error. Response headers are in either
108965// *Zone.ServerResponse.Header or (if a response was returned at all) in
108966// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
108967// whether the returned error was because http.StatusNotModified was
108968// returned.
108969func (c *ZonesGetCall) Do(opts ...googleapi.CallOption) (*Zone, error) {
108970	gensupport.SetOptions(c.urlParams_, opts...)
108971	res, err := c.doRequest("json")
108972	if res != nil && res.StatusCode == http.StatusNotModified {
108973		if res.Body != nil {
108974			res.Body.Close()
108975		}
108976		return nil, &googleapi.Error{
108977			Code:   res.StatusCode,
108978			Header: res.Header,
108979		}
108980	}
108981	if err != nil {
108982		return nil, err
108983	}
108984	defer googleapi.CloseBody(res)
108985	if err := googleapi.CheckResponse(res); err != nil {
108986		return nil, err
108987	}
108988	ret := &Zone{
108989		ServerResponse: googleapi.ServerResponse{
108990			Header:         res.Header,
108991			HTTPStatusCode: res.StatusCode,
108992		},
108993	}
108994	target := &ret
108995	if err := gensupport.DecodeResponse(target, res); err != nil {
108996		return nil, err
108997	}
108998	return ret, nil
108999	// {
109000	//   "description": "Returns the specified Zone resource. Gets a list of available zones by making a list() request.",
109001	//   "httpMethod": "GET",
109002	//   "id": "compute.zones.get",
109003	//   "parameterOrder": [
109004	//     "project",
109005	//     "zone"
109006	//   ],
109007	//   "parameters": {
109008	//     "project": {
109009	//       "description": "Project ID for this request.",
109010	//       "location": "path",
109011	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109012	//       "required": true,
109013	//       "type": "string"
109014	//     },
109015	//     "zone": {
109016	//       "description": "Name of the zone resource to return.",
109017	//       "location": "path",
109018	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109019	//       "required": true,
109020	//       "type": "string"
109021	//     }
109022	//   },
109023	//   "path": "{project}/zones/{zone}",
109024	//   "response": {
109025	//     "$ref": "Zone"
109026	//   },
109027	//   "scopes": [
109028	//     "https://www.googleapis.com/auth/cloud-platform",
109029	//     "https://www.googleapis.com/auth/compute",
109030	//     "https://www.googleapis.com/auth/compute.readonly"
109031	//   ]
109032	// }
109033
109034}
109035
109036// method id "compute.zones.list":
109037
109038type ZonesListCall struct {
109039	s            *Service
109040	project      string
109041	urlParams_   gensupport.URLParams
109042	ifNoneMatch_ string
109043	ctx_         context.Context
109044	header_      http.Header
109045}
109046
109047// List: Retrieves the list of Zone resources available to the specified
109048// project.
109049// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/list
109050func (r *ZonesService) List(project string) *ZonesListCall {
109051	c := &ZonesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109052	c.project = project
109053	return c
109054}
109055
109056// Filter sets the optional parameter "filter": A filter expression that
109057// filters resources listed in the response. The expression must specify
109058// the field name, a comparison operator, and the value that you want to
109059// use for filtering. The value must be a string, a number, or a
109060// boolean. The comparison operator must be either =, !=, >, or <.
109061//
109062// For example, if you are filtering Compute Engine instances, you can
109063// exclude instances named example-instance by specifying name !=
109064// example-instance.
109065//
109066// You can also filter nested fields. For example, you could specify
109067// scheduling.automaticRestart = false to include instances only if they
109068// are not scheduled for automatic restarts. You can use filtering on
109069// nested fields to filter based on resource labels.
109070//
109071// To filter on multiple expressions, provide each separate expression
109072// within parentheses. For example, (scheduling.automaticRestart = true)
109073// (cpuPlatform = "Intel Skylake"). By default, each expression is an
109074// AND expression. However, you can include AND and OR expressions
109075// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
109076// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
109077// true).
109078func (c *ZonesListCall) Filter(filter string) *ZonesListCall {
109079	c.urlParams_.Set("filter", filter)
109080	return c
109081}
109082
109083// MaxResults sets the optional parameter "maxResults": The maximum
109084// number of results per page that should be returned. If the number of
109085// available results is larger than maxResults, Compute Engine returns a
109086// nextPageToken that can be used to get the next page of results in
109087// subsequent list requests. Acceptable values are 0 to 500, inclusive.
109088// (Default: 500)
109089func (c *ZonesListCall) MaxResults(maxResults int64) *ZonesListCall {
109090	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
109091	return c
109092}
109093
109094// OrderBy sets the optional parameter "orderBy": Sorts list results by
109095// a certain order. By default, results are returned in alphanumerical
109096// order based on the resource name.
109097//
109098// You can also sort results in descending order based on the creation
109099// timestamp using orderBy="creationTimestamp desc". This sorts results
109100// based on the creationTimestamp field in reverse chronological order
109101// (newest result first). Use this to sort resources like operations so
109102// that the newest operation is returned first.
109103//
109104// Currently, only sorting by name or creationTimestamp desc is
109105// supported.
109106func (c *ZonesListCall) OrderBy(orderBy string) *ZonesListCall {
109107	c.urlParams_.Set("orderBy", orderBy)
109108	return c
109109}
109110
109111// PageToken sets the optional parameter "pageToken": Specifies a page
109112// token to use. Set pageToken to the nextPageToken returned by a
109113// previous list request to get the next page of results.
109114func (c *ZonesListCall) PageToken(pageToken string) *ZonesListCall {
109115	c.urlParams_.Set("pageToken", pageToken)
109116	return c
109117}
109118
109119// Fields allows partial responses to be retrieved. See
109120// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109121// for more information.
109122func (c *ZonesListCall) Fields(s ...googleapi.Field) *ZonesListCall {
109123	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109124	return c
109125}
109126
109127// IfNoneMatch sets the optional parameter which makes the operation
109128// fail if the object's ETag matches the given value. This is useful for
109129// getting updates only after the object has changed since the last
109130// request. Use googleapi.IsNotModified to check whether the response
109131// error from Do is the result of In-None-Match.
109132func (c *ZonesListCall) IfNoneMatch(entityTag string) *ZonesListCall {
109133	c.ifNoneMatch_ = entityTag
109134	return c
109135}
109136
109137// Context sets the context to be used in this call's Do method. Any
109138// pending HTTP request will be aborted if the provided context is
109139// canceled.
109140func (c *ZonesListCall) Context(ctx context.Context) *ZonesListCall {
109141	c.ctx_ = ctx
109142	return c
109143}
109144
109145// Header returns an http.Header that can be modified by the caller to
109146// add HTTP headers to the request.
109147func (c *ZonesListCall) Header() http.Header {
109148	if c.header_ == nil {
109149		c.header_ = make(http.Header)
109150	}
109151	return c.header_
109152}
109153
109154func (c *ZonesListCall) doRequest(alt string) (*http.Response, error) {
109155	reqHeaders := make(http.Header)
109156	for k, v := range c.header_ {
109157		reqHeaders[k] = v
109158	}
109159	reqHeaders.Set("User-Agent", c.s.userAgent())
109160	if c.ifNoneMatch_ != "" {
109161		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109162	}
109163	var body io.Reader = nil
109164	c.urlParams_.Set("alt", alt)
109165	c.urlParams_.Set("prettyPrint", "false")
109166	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones")
109167	urls += "?" + c.urlParams_.Encode()
109168	req, err := http.NewRequest("GET", urls, body)
109169	if err != nil {
109170		return nil, err
109171	}
109172	req.Header = reqHeaders
109173	googleapi.Expand(req.URL, map[string]string{
109174		"project": c.project,
109175	})
109176	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109177}
109178
109179// Do executes the "compute.zones.list" call.
109180// Exactly one of *ZoneList or error will be non-nil. Any non-2xx status
109181// code is an error. Response headers are in either
109182// *ZoneList.ServerResponse.Header or (if a response was returned at
109183// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109184// to check whether the returned error was because
109185// http.StatusNotModified was returned.
109186func (c *ZonesListCall) Do(opts ...googleapi.CallOption) (*ZoneList, error) {
109187	gensupport.SetOptions(c.urlParams_, opts...)
109188	res, err := c.doRequest("json")
109189	if res != nil && res.StatusCode == http.StatusNotModified {
109190		if res.Body != nil {
109191			res.Body.Close()
109192		}
109193		return nil, &googleapi.Error{
109194			Code:   res.StatusCode,
109195			Header: res.Header,
109196		}
109197	}
109198	if err != nil {
109199		return nil, err
109200	}
109201	defer googleapi.CloseBody(res)
109202	if err := googleapi.CheckResponse(res); err != nil {
109203		return nil, err
109204	}
109205	ret := &ZoneList{
109206		ServerResponse: googleapi.ServerResponse{
109207			Header:         res.Header,
109208			HTTPStatusCode: res.StatusCode,
109209		},
109210	}
109211	target := &ret
109212	if err := gensupport.DecodeResponse(target, res); err != nil {
109213		return nil, err
109214	}
109215	return ret, nil
109216	// {
109217	//   "description": "Retrieves the list of Zone resources available to the specified project.",
109218	//   "httpMethod": "GET",
109219	//   "id": "compute.zones.list",
109220	//   "parameterOrder": [
109221	//     "project"
109222	//   ],
109223	//   "parameters": {
109224	//     "filter": {
109225	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
109226	//       "location": "query",
109227	//       "type": "string"
109228	//     },
109229	//     "maxResults": {
109230	//       "default": "500",
109231	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
109232	//       "format": "uint32",
109233	//       "location": "query",
109234	//       "minimum": "0",
109235	//       "type": "integer"
109236	//     },
109237	//     "orderBy": {
109238	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
109239	//       "location": "query",
109240	//       "type": "string"
109241	//     },
109242	//     "pageToken": {
109243	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
109244	//       "location": "query",
109245	//       "type": "string"
109246	//     },
109247	//     "project": {
109248	//       "description": "Project ID for this request.",
109249	//       "location": "path",
109250	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109251	//       "required": true,
109252	//       "type": "string"
109253	//     }
109254	//   },
109255	//   "path": "{project}/zones",
109256	//   "response": {
109257	//     "$ref": "ZoneList"
109258	//   },
109259	//   "scopes": [
109260	//     "https://www.googleapis.com/auth/cloud-platform",
109261	//     "https://www.googleapis.com/auth/compute",
109262	//     "https://www.googleapis.com/auth/compute.readonly"
109263	//   ]
109264	// }
109265
109266}
109267
109268// Pages invokes f for each page of results.
109269// A non-nil error returned from f will halt the iteration.
109270// The provided context supersedes any context provided to the Context method.
109271func (c *ZonesListCall) Pages(ctx context.Context, f func(*ZoneList) error) error {
109272	c.ctx_ = ctx
109273	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
109274	for {
109275		x, err := c.Do()
109276		if err != nil {
109277			return err
109278		}
109279		if err := f(x); err != nil {
109280			return err
109281		}
109282		if x.NextPageToken == "" {
109283			return nil
109284		}
109285		c.PageToken(x.NextPageToken)
109286	}
109287}
109288